Briefings in Bioinformatics2021 | 药物挖掘分子设计--生成模型综述

news2024/10/7 6:46:48

 原文标题:Molecular design in drug discovery: a comprehensive review of deep generative models

论文地址:Molecular design in drug discovery: a comprehensive review of deep generative models | Briefings in Bioinformatics | Oxford Academic

基于smiles的模型和基于图的模型的综述。

一、分子表征(SMILES & Graph)

SMILES的缺点:(1)不能捕捉分子结构的相似性。两个相似结构之间的微小变化可能会导致SMILES字符串有很大的不同,从生成模型中学习到的潜在空间并不平滑。(2) SMILES字符串是非唯一的,一个分子可以被编码成多个SMILES表示。

数据库:其中ZINC、ChEMBL、PubChem和DrugBank使用最多。

二、Deep molecular generative models

1、SMILES-based Model

基于序列的方法可以进一步分为基于变分编码器(VAE)、生成对抗网络(GANs)和基于循环神经网络(RNNs)的模型。

VAE-based generative models

VAE分子生成的潜在空间是潜在操作的,如控制特定性质,训练过程是稳定的。然而,训练集的重构限制了在未知化学空间中的探索能力。在没有额外约束的情况下,VAE模型产生无效分子的概率很高

【Automatic chemical design using a data-driven continuous representation of molecules】:使用核密度估计来学习捕获分子的相关特征。然后在维度上学习连续的潜在空间,优化分子的特定性质,允许使用强大的基于梯度的方法来有效地指导搜索。加入多层感知器和编码器的联合训练任务,保证了分子性质的预测能力。

【Grammar variational autoencoder】:将SMILES的语法生成规则纳入模型。它表明可以使用上下文无关语法将离散数据直接表示为解析树。解码器通过按顺序学习这些规则来生成有效的输出。考虑到解析树,该模型可以扩展到其他没有上下文的文本表示学习。

【Syntax-directed variational autoencoder for molecule generation】:提出GVAE缺乏语义,生成的环键必须紧密等结构信息。然而,在GVAE中增加额外的结构约束可能会造成不必要的计算和时间浪费。

GANs-based generative models

【latentGAN:A de novo molecular generation method using latent vector based generative adversarial network】:autoencoder and GAN的结合。

RNNs-based generative models

语言模型从语法和语义两方面自动提取信息。由于SMILES的序列表示,自然语言处理任务与分子生成的类比是可行的

【Generating focused molecule libraries for drug discovery with recurrent neural networks.】:通过重新训练模型生成聚焦分子库(见图2.3)。大规模数据集的采样确保了分子的多样性,微调增加了聚焦特性。

【QBMG: quasi-biogenic molecule generator with deep recurrent neural network】:建立了包含立体化学性质的准生物源化合物库。除了添加迁移学习外,利用计算模型CLM ,结合之前的三种优化方法(数据增强、温度采样和迁移学习),在化学空间的指定区域设计新分子。

【Generative molecular design in low data regimes】:分子描述符被纳入基于rnn的模型,这比传统方法更有针对性。

【Randomized smiles strings improve the quality of molecular generative models】:用20亿次替换的方法进行了研究,并探索了GDB-13中SMILES符号的三种不同变体(规范的、随机的和深度的)来证明‘与随机化SMILES相比,规范SMILES形式创建有效和语义结构的大型化学空间的能力较低。’

【SMILES-based deep generative scaffold decorator for de-novo drug design】:利用切片算法获得具有随机化SMILES表示的支架集。然后部分构建的分子被装饰在一个附着物上一次或多次

基于smiles的模型激增,但仍然存在一些亟待解决的问题:不仅面临着有效性的问题,而且SMILES的非结构化性质使得两个相似的分子在很大程度上有很大的不同。将有效性约束强制纳入解码器是昂贵的,这需要设计具有更多结构信息的新表示。

2、Graph-based models

VAE-based generative models

最具代表性的是junction tree variational autoencoder, JT -VAE:通过分解训练集的分子,得到了环、官能团和原子等子结构。与之前逐节点生成图相比,整个过程分为两个阶段,首先将有效支架及其排列表示为树,然后通过在交叉组件之间添加边将整个树集成到图中。

这种设计有三个关键的局限性。首先,由于具有相同junction tree的两个分子可能对应着明显不同的属性,所以使用JT VAE进行性能优化更加困难。其次,在生成过程中不考虑节点的顺序排列,造成耗时。在一些可能的节点排列下的最终序列可以映射到同一个图中。第三,由于现实中药物分子的复杂性,一个子结构中小于20个原子是不现实的。

【Learning multimodal graph-to-graph translation for molecule optimization.】分子优化任务视为图到图的转换,目的是学习两个域之间的多模型映射。

将多种属性整合到一个分子中是一个挑战,原因有两个:(1)在现实中缺乏符合所有约束条件的分子,如效力、安全性和期望的属性;(2)在添加所有属性约束条件时,成功率和新颖性表现不佳。

【Constrained graph variational autoencoders for molecule design,CGVAE】纳入了两种类型的相关性,包括一些已知的规则,如价规则为硬规则,环应变(不利于循环)为软规则。保持CGVAE的相关性,将其转化为语义上有效的SMILES。值得注意的是,具有相似性质的分子实际上在节点和边的大小上存在差异,而GraphVAE等分子图生成模型并没有考虑到这一点。

【NEVAE: A deep generative model for molecular graphs.】提出了不同跳数的neae聚合特征。同时,neae生成的图在节点层面具有排列不变性,并考虑了空间位置对属性的影响。

GANs-based generative models

【Mol-CycleGAN: a generative model for molecular optimization】:数据集分为两部分,一部分不配备目标属性(即卤素基团,芳香族环数,活性)用于训练,另一部分则相反,用于测试。框架为:(1)数据集:集合X(例如,CN组)和Y(例如,CF3组);(2)映射:G: X→Y和F: Y→X)周期一致性损失:鼓励F(G(X))≈X和G(F(Y))≈Y)指标:给定属性的优化值,如logP。为缺乏配对样本的实际情况下的分子优化提供了新的思路。受MolCycleGAN的启发,可以将分子优化视为机器翻译或图翻译的问题。

RNNs-based generative models

【Learning deep generative models of graphs,GraphNet】是第一个基于rnn的任意图模型,它建立在消息传递神经网络(MPNN)的框架上,在已有的图中添加一个新的原子或键。更具体地说,(1)选择是否添加原子,(2)计算现有图上的概率,以确定是否添加新边,(3)计算图中某个节点连接的概率。

【Multi-objective de novo drug design with conditional graph generative model】:探索了基于图卷积网络(graph convolutional networks, GCN)的MolMP和MolRNN与GraphNet的生成类似,都是通过在已有的子图上迭代地添加节点和边来生成分子。将额外的约束转换为不需要强化学习的可用条件代码提供了更高的灵活性,并输出了更具多样性的分子。

【Generating realistic graphs with deep auto-regressive models,GraphRNN】是一种基于图和边层的层次模型,旨在捕获节点和边的联合概率。图的生成过程被看作是不同节点顺序下邻接向量的序列。通过引入宽度优先搜索(BFS)节点排序来具备可伸缩性。随后,从GraphRNN扩展了一些分子生成的工作。

【MolecularRNN: Generating realistic molecular graphs with optimized properties 】:在GraphRNN的基础上,添加与其相关的节点和边特征向量。模型中插入基于价格的剔除抽样,以确保有效分子率100%。它体现了大数据集预训练与策略梯度算法调优相结合的特点和优势。借助于强化学习,在惩罚logP系数和QED方面优于JT VAE、GCPN和ORGAN。

Flow-based generative models

基于流的生成模型借助流的归一化,明确地学习由可逆变换组成的数据分布。该流以初始变量为输入,通过反复使用变量变换规则将其转换为具有各向同性高斯分布的变量,这类似于VAE编码器中的推理过程。

现有的基于图的模型大致可以分为两种类型,一种是顺序迭代过程,另一种是一次性生成。具体地说,它们可以划分为逐个原子、基于子图(片段)的模型。

【GraphNVP: An invertible flow model for generating molecular graphs】:第一个基于流的分子图生成模型,提高了分子的唯一性。

【Graph residual flow for molecular graph generation,GRF】:在减少参数数量的情况下,性能几乎相当。不幸的是,GraphNVP和GRF模型在生成有效分子方面表现不佳。

【GraphAF: a flow-based autoregressive model for molecular graph generation】:受自回归和少数基于流的模型的启发,提出了一种基于流的自回归序列模型,优于当代最先进的模型图卷积策略网络,并通过结合价性检查生成100%有效分子。

【MoFlow: an invertible flow model for generating molecular graphs】通过一种新的图条件流,通过Glow的变体和具有给定键的原子生成键,提出了一种新的有效性修正方法,即递归地删除上一阶键,保持最大有效分量。

【MolGrow: A graph normalizing flow for hierarchical molecular generation.】利用模型的潜在变量进行了性能约束优化,递归地将一个节点分成两个,生成分子结构,可以看作是即插即用模块。

从现在来看,论文中的方法都是比较老的方法,大部分是2020年之前的方法。但是参考性相对较大。更多最新的文章可以查看最新的分子生成优化综述:Drug Discov. Today2022 | Deep learning methods for molecular representation and property prediction_羊飘的博客-CSDN博客_smiles编码转换到onehot

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/73529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

35_DMA基本原理

目录 DMA简介 DMA框图 STM32的DMA有一下一些特征 DMA1控制器 DMA处理 数据方向 仲裁器 DMA通道 可编程的数据量 指针增量 循环模式 存储器到存储器模式 通道传输数据量 中断 通道配置过程 DMA简介 DMA全称Direct Memroy Access, 既直接存储器访问。 DMA传输将…

重编内核导致ubuntu有线连接不出现的问题

网卡是intel的i225v 千兆网卡,系统为ubuntu18.0.4,原始内核为5.4.0-135-generic,但是重新编译出错,不知道少了什么东西,也没去深究,重新下载了5.9.0的内核;结果重新编译内核重启有线网卡就不能用…

2.MyBatis环境搭建

数据准备 CREATE TABLE user (id int(11) NOT NULL,username varchar(30) NOT NULL,sex varchar(1) NOT NULL,birthday varchar(10) NOT NULL,address varchar(100) NOT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8;insert into user values(1,"steven&qu…

ADI Blackfin DSP处理器-BF533的开发详解2:开发环境的搭建

软硬件开发环境的搭建 纯流程化的东西,没什么技术含量,照着做就行了。 开发板和仿真器进行物理链接,也就是插上JTAG头。 特别特别特别注意,仿真器和开发板均不上电的情况下插JTAG头,不要带电插JTAG头,你…

ORB-SLAM2 ---- Frame::GetFeaturesInArea函数

目录 1.函数用处 2.步骤 3.code 4.函数解释 4.1 函数思想 4.2 代码解释 1.函数用处 找到在 以为中心,半径为的圆形内且金字塔层级在的特征点。 2.步骤 Step 1 计算半径为r圆左右上下边界所在的网格列和行的id Step 2 遍历圆形区域内的所有网格&#xff0c…

代码随想录Day44|完全背包、518.零钱兑换II、377.组合总和IV

文章目录完全背包518.零钱兑换II377.组合总和IV完全背包 文章链接:代码随想录 (programmercarl.com) 背包最大重量为4。 物品为:如果求组合数就是外层for循环遍历物品,内层for遍历背包。 如果求排列数就是外层for遍历背包,内层for循环遍历…

Linux多线程C++版(九) 线程同步和互斥-----线程信号量

目录1.基本概念2.信号量创建和销毁3.信号量加和减操作4.代码理解信号量5.信号量实例银行账户取款----实现互斥6.信号量实例计算和取结果----实现线程同步1.基本概念 信号量从本质上是一个非负整数计数器,是共享资源的的数目,通常被用来控制对共享资源的…

[附源码]JAVA毕业设计同学录网站(系统+LW)

[附源码]JAVA毕业设计同学录网站(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&#…

从源码出发剖解正则表达式

✨✨hello,愿意点进来的小伙伴们,你们好呐! 🐻🐻系列专栏:【JavaSE】 🐲🐲本篇内容:详解正则表达式 🐯🐯作者简介:一名现大二的三非编程小白&…

[ MySQL ] 使用Navicat进行MySQL数据库备份 / 还原(备份.nb3文件方式)

本文主要讲解如何用Navicat(Navicat Premium ,或者Navicat for mysql)进行MySQL备份和恢复数据库。 本文主要大纲为:使用Navicat备份工具方式进行备份和还原,其中包括还原自身数据库和还原到其他目标库。 文章目录一、…

Jenkins 中 shell 脚本执行失败却不自行退出

Jenkins 中 执行 shell 脚本时,有时候 shell 执行失败了,或者判断结果是错误的,但是 Jenkins 执行完成后确提示成功 success 。 此时,可以通过条件判断来解决这个问题,让 Jenkins 强制退出并提示执行失败 failed 。 …

Tensorflow笔记

Tensorflow笔记基础概念计算图Eager Execution(即刻执行)eager模式下计算梯度基本使用tf.app加载flag(tf.app.flags)启动( tf.app.run )基础概念 计算图 Tensor(张量),在Tensorflow中可以理解…

畅聊两小时后谈谈chatGPT体验感受

文章目录背景注册聊天实录基于自然语言的SQL翻译shell解析k8s回答其他类型我的问题为何这么接近人类的回答?回答是离线的吗?背景 最近几周不管是T还是微信公众号,大家都在疯玩这个东西。 我姑且将这个应用叫小C吧。我和小C愉快的聊了几个小…

ComponentOne Studio Enterprise 2022

ComponentOne Studio Enterprise 2022 添加了Microsoft.NET 7支持。 FlexGrid for.NET MAUI预览版-您现在可以使用以前使用的相同.NET数据网格,只是它是为MAUI本机开发的,因此您不必学习多种移动开发平台。 WinForms 2022 v3中的新功能 增强的.NET 6控件…

Android系统属性文件浅析

Android的属性文件是Android系统攻防中重要的一环,属性中的一些只读字段(以ro开头)通常会被当作大厂的指纹而加入检测,于是如何mock和检测mock成了安全中举足轻重的知识。属性的检测有几种方案: 通过java标准接口的Build类读取通过shell的getprop [属性key]的方式读取通过sh…

Python作业题:函数和代码复用

本次练习题涉及到的知识点: Python中函数的定义和使用传入函数的参数个数不固定的使用语法lambda函数的使用语法Python异常处理的相关语法 1.关于函数的描述,错误的选项是(A)。 解析:Python使用保留字def定义一个函…

聚类算法OPTICS的理解及实现

前言 前面给大家介绍到了聚类算法中比较经典的 DBSCAN 算法,对于数据量小而且相对比较密集、密度相似的数据集来说,是比较合适的。那么接下来给大家介绍它的改进版 OPTICS (Ordering points to identify the clustering structure),针对 DBS…

4年外包终上岸,我只能说这类公司以后能不去就不去

我大学学的是计算机专业,毕业的时候,对于找工作比较迷茫,也不知道当时怎么想的,一头就扎进了一家外包公司,一干就是4年。现在终于跳槽到了互联网公司了,我想说的是,但凡有点机会,千万…

vue使用axios+element上传文件

引言 springboot后端接口类型:post,其它接口信息如下图 后端接口的实现 代码示例 post 请求头改成’Content-Type’: ‘multipart/form-data’用new FormData() 方式去传对象数据 axios封装请求 import request from /utils/request export function up…

线性表-顺序表

线性表 线性表是最基本、最简单、也是最常用的一种数据结构。一个线性表是n个具有相同特性的数据元素的有限序列。 前驱元素:若A元素在B元素的前面,则称A为B的前驱元素后继元素:若B元素在A元素的后面,则称B为A的后继元素 线性表…