热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nat.Mach.Intell.|利用条件循环神经网络生成特定性质分子

作者|陆丰庆今天给大家介绍瑞士知名药企阿斯利康和伯尔尼大学的EsbenJannikBjerrum团队在NatureMachineIntelligence上的一篇论文。该研究提出基于

作者 | 陆丰庆


Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子

今天给大家介绍瑞士知名药企阿斯利康和伯尔尼大学的 Esben Jannik Bjerrum团队在Nature Machine Intelligence上的一篇论文。该研究提出基于分子SMILES表示的条件循环神经网络,输入目标性质,模型可直接生成具有对应性质的分子。

1

背景

机器学习对生物和化学领域有着深远影响,其可被用于生物活性预测,分子性质预测,医疗诊断等。然而,反向分子设计,即生成具有特定结构和物理化学性质的分子,对于机器学习仍是一项挑战。

生成式机器学习模型不需要明确的设计规则就可以在目标空间中进行采样,这类模型学习数据的分布,并生成符合这种分布的新数据。近些年来,生成式深度学习模型在新药设计领域迅速发展,被用于生成具有特定性质的分子。由于分子线性输入规范(SMILES)可将分子以字符串形式表达,有一部分自回归式生成模型利用循环神经网络对SMILES表达式进行序列建模和预训练,以生成满足基本物化性质的分子,随后结合迁移学习或强化学习技术将生成分子引导至具有目标属性的化学空间。此外,有研究人员将目标分子的化学性质和图结构进行编码,作为条件变分自编码器和条件对抗生成网络的输入条件,生成对应分子。Esben Jannik Bjerrum团队基于分子的SMILES表达和循环神经网络,提出了条件式生成模型。输入目标性质,模型将直接生成具有对应性质的分子。实验表明输入条件可操纵循环神经网络生成目标化学空间中的分子,例如对特定蛋白质结构有生物活性的分子。

2

方法

2.1 数据集

作者使用两个开源分子数据库:ChEMBL和ExCAPE-DB。其中ChEMBL被用于训练条件循环神经网络,而ExCAPE-DB中靶向多巴胺受体(DRD2)的分子被用于训练基于支持向量机的QSAR分类模型进而检验生成模型能否通过输入条件来生成对DRD2有生物活性的分子。

2.2 SMILES数据增强和向量化

使用同一实体的多个表示形式(数据增强)已被提出作为一种策略,以在少量数据的情况下训练并获得可泛化的模型。作者利用SMILES字符串的非单义性实现数据增强,即利用多个有效的SMILES字符串表示同一个分子,该方法通过从一个分子中不同的非氢原子为起始字符构建不同的SMILES字符串。在每个SMILES字符串的第一个字符前和最后一个字符后分别插入起始符^和终止符$后,将每个SMILES字符串进行one-hot编码。在one-hot编码格式中,每种字符都有一个固定长度(长度大小为SMILES字符串的token表大小)的唯一向量表示,每个SMILES字符串将被转化为一个二维向量,一个维度对应着token表长度,另一个维度对应着该SMILES字符串的长度。

2.3 条件循环神经网络

作者构建了基于不同分子描述符的条件循环神经网络:

(1)基于物理化学分子描述符——PhysChem Based(PCB)模型,如图1(A)所示。该模型将脂水分配系数 log P、拓扑极性表面积 TPSA、分子重量 MW、氢键供体数 HBD、氢键受体数 HBA、类药性评分 QED 和 DRD2 QSAR分类器的评分为输入条件。

(2)基于分子指纹——FingerPrint Based(FPB)模型,如图1(B)所示。该模型以分子的2048位Morgan FingerPrint编码为输入条件。

Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子

图1 

基于不同条件的条件循环神经网络 (A)基于物理化学性质的模型(PCB)接受由RDKIT Python库计算的六个分子描述符与由QSAR预测的具有生物活性的概率。(B)基于指纹的模型(FPB)接受由RDKIT计算的2048bit Morgan指纹向量。在训练过程中,二者都使用Teacher’s Forcing方法训练,且使用数据增强后的ChEMBL SMILES字符串为训练集。(C)在推理过程,输入条件并以起始符^为起点,反复生成字符直至终止符$被采样。

输入条件向量后,首先使用具有六层全连接层,每层256个神经元,以ReLU为**函数的神经网络将条件向量转换为循环神经网络中每层网络的hidden state或cell state。随后由三层各自含有256个LSTM神经元组成的单向循环神经网络进行训练和推理。最后一层循环神经网络的输出向量经过一个含有35个神经元的单层神经网络,经过SoftMax**函数后,得到下一个字符的概率分布。训练时,两种cRNN模型使用Teacher’s Forcing方法进行训练, 即从训练集中选择分子,计算其描述符或指纹作为输入条件;在cRNN训练过程中,将该分子SMILES字符串顺序输入,以最小化下一个字符的预测概率分布和真实值的交叉熵为目标。生成分子时,以目标描述符或指纹作为输入条件;输入起始符^,计算下一个字符的概率分布并采样,将被采样的字符作为下一个输入字符;如此反复,直至采样到终止符$。

3

实验

3.1 基准模型

实验中,作者旨在生成对DRD2具有生物活性的分子,采用两个基准模型进行对比:(1)Prior Model:在ChEMBL上训练的循环神经网络(2)TL Model:采用迁移学习策略,在ChEMBL上进行预训练,随后在对DRD2具有生物活性的分子数据集上训练的循环神经网络。两个基准模型与条件循环神经网络具有相同的网络结构,且将网络的hidden state或cell state置零。

3.2 数据集负对数似然分布

Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子

图2  由Prior model,TL Model,FPB Model和PCB Model采样出每个数据集中所有分子SMILES的负对数似然分布。

作者通过计算负对数似然(NLL)来估计模型生成数据集中某一分子的概率,该值越小说明生成该分子的概率越大。图2表明PFB和PCB模型在四个数据集上分别有最低和第二低的负对数似然分布,这说明在二者与基准模型相比,有更大可能生成数据集中的分子。同时也说明,PFB模型所用的2048-bit Morgan Finger相比PCB模型的7-bit 物理化学性质描述符,输入条件含有更多分子信息,这促使cRNN有更大可能性生成对应结构的分子。

3.3 生成DRD2活性分子

Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子

图3 从DRD2测试集中随机挑选两个分子作为conditional seed(中心),以其结构指纹为条件,利用FPB模型生成分子(虚线内);以其物理化学描述符为条件,利用PCB模型生成分子(虚线外)。

Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子

图4 (A)由FPB和PCB模型生成的分子与conditional seed分子的骨架相似性分布(B)由FPB和PCB模型生成的分子对DRD2的生物活性分布。

图3展示了从DRD2测试集中随机挑选活性分子作为conditional seed,利用FPB和PCB模型生成的分子。由结果可见,因为Morgan Finger包含了大量的分子结构信息,利用FPB生成的分子与conditional seed在结构上极其相似,大多拥有相同的分子骨架。另一方面,PCB模型的输入条件仅仅为物理化学性质,生成的分子在结构上更具多样性。图4说明PCB模型与FPB模型相比,生成的分子与seed具有较小的骨架相似性;然而,两个模型生成的分子对DRD2的生物活性有相似的分布。

3.4 PCB模型生成特定性质分子

Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子

图5 10个conditional seed分子的物化性质(红线)和生成分子的物化性质(蓝点)

PCB模型的一大优势是可以直接操控生成分子的物理化学性质。图5展示了从DRD2测试集中随机选取10个分子作为conditional seed,分别生成256个分子SMILES的物理化学性质分布。可见,除了QED,其他生成分子的属性与目标属性有较小方差。

Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子

图6 变化某一性质同时保持其他性质不变。生成分子的性质(蓝点)与目标性质(红线)大体一致。

图6表明PCB模型可以单独改变生成分子的某一性质,而保持其他性质不变。总体上,除了QED,生成分子的性质与目标性质有较小差距。然而,这是可预期的,因为QED是其他五个性质的加权和。若单独改变QED大小,可能无法满足其他目标性质,如图6中箭头所示;若单独改变某一性质,而保持QED不变,则可能导致其他性质也发生改变。

4

总结

作者提出了以分子描述符为输入条件的条件循环神经网络,实验表明该模型与在ChEMBL上训练的循环神经网络和在DRD2上迁移学习的循环神经网络相比,更有可能生成对DRD2有生物活性的分子。由于分子指纹包含分子的结构信息,FPB模型生成的分子与conditional seed有极高的结构相似性。相反,PCB模型可直接生成更多样化的具有目标属性的分子。

参考资料

Kotsias, P., Arús-Pous, J., Chen, H. et al. Direct steering of de novo molecular generation with descriptor conditional recurrent neural networks. Nat Mach Intell 2, 254–265 (2020). https://doi.org/10.1038/s42256-020-0174-5

Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子


推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
author-avatar
NAVETEX
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有