Briefings in Bioinformatics2021 | DLGN+:基于GAN和强化学习的分子从头双目标性质生成

news2025/1/11 12:49:45

论文标题:De novo generation of dual-target ligands using adversarial training and reinforcement learning

论文地址:https://academic.oup.com/bib/article/22/6/bbab333/6354720

代码:https://github.com/lllfq/DLGN

一、模型结构

RNN + GAN +  Reinforcement Learning

1、Recurrent neural network

通过使用SMILES编码,可以将分子表示为对应于原子、键和循环的符号序列,该编码能够捕获分子图的拓扑结构,在每个SMILES的开始和结束处插入一个开始令牌<BOS>和一个结束令牌<EOS>。

作为生成器Generator:LSTM,该神经网络由输入层、300个神经元的embedding层、每层1024个神经元的LSTM层和512个神经元的全连接层组成,最后一层的输出被输入到另一个完全连接的层,该层具有34个(我们任务中的SMILES字母表的大小)神经元和一个softmax激活函数,该函数为每个时间步骤生成所有可能令牌的概率分布。

作为判别器Discriminator:GRU,两个判别器都由一个输入层、一个包含100个神经元的embedding层、两个每层包含300个神经元的GRU和一个包含300个神经元的全连接层组成。最后一层的输出被输入到另一个具有一个神经元和一个sigmoid激活函数的完全连接层,该层输出输入SMILES为真实数据的可能性。

2、GAN

在D的指导下,训练G从D中生成能够使接收到的概率分数最大化的数据,生成的数据与真实数据高度相似。这两个模型轮流训练,遵循极大极小对抗博弈:

3、Reinforcement learning

RNN框架中的SMILES生成器可以被视为强化学习设置中的随机策略,然后可以通过策略梯度[41]进行更新。在强化学习中,给定一个环境状态s∈S,策略将选择a∈A,其中A是包括所有可能被选择的动作的动作空间。然后在此操作的影响下更新状态。这些状态转换过程连续地交替进行,直到任务结束。从这个角度来看,时间步t中的状态st是当前生成的令牌X(1:t),可以表示为ht, 下处动作a(t+1)是下一个token xt+1,它是从f (ht)采样出来的. 给定开始令牌BOS的隐藏状态为初始状态s0,将采取操作并重复更新状态,直到对结束令牌EOS进行采样。一个动作轨迹,即一个分子微笑,然后在这个过程中产生。策略被训练为最大化所有可能轨迹X的期望回报:

因此,有梯度更新为:

在对抗训练中生成器的训练步骤中,为了鼓励生成器生成能够欺骗鉴别器的数据,轨迹X的奖励R(X)为鉴别器D提供的估计为真实D(X)的概率。

4、Dual-target ligand generative network

Ptarget A(x)上的对目标A具有生物活性的小分子数据集和另一个分布在Ptarget B(x)上的对目标B具有生物活性的分子数据集。假设双目标分子位于这两个分布Pdual(x)的交叉点。在此,我们提出DLGN从两个没有相互分子的生物活性化合物数据集中学习潜在的双靶点分子分布Pdual(x)。

在对抗性训练和强化学习设置之后,引入了两个基于RNN的鉴别器DA和DB,来引导生成器G搜索Pdual(x)中的潜在分子。DA和DB以生成器G生成的SMILES为负样本,各自的生物活性化合物数据集为正样本进行训练。

除了DA(X)、DB(X)的和外,还将DA(X) 、DB(X)的差值的绝对值作为正则化项纳入奖励函数中:

有了这个奖励函数作为指导,生成器将学会生成能够同时最大化两个鉴别器的正向概率分数的分子。

三、实验

多巴胺受体D2 (DRD2)和5-羟色胺受体1A (HTR1A)与精神分裂症和重度抑郁症有关,在临床和临床前观察中,对这两种受体具有部分激动剂(拮抗剂)活性的化合物是有效的双靶点抗精神病药物。利用DLGN设计了针对DRD2和HTR1A的生物活性分子,作为新的抗精神病药物候选物

1、Baselines

RationaleRL、CMolRNN

2、Datasets

ChEMBL、ExCAPE-DB

选择ChEMBL对DLGN进行预训练,学习生物活性化学空间的基本语法。将escape-db中对DRD2和HTR1A活性值(IC50、EC50、Kd、Ki)<0.1 μM的分子分别作为各自的生物活性化合物库。使用DRD2数据集和HTR1A数据集通过对抗学习和强化学习来训练DLGN。

ChEMBL数据集中有344 184个生物活性分子,DRD2有2156个生物活性分子,HTR1A有2787个生物活性分子

3、Training DLGN

首先使用Teacher's forcing在ChEMBL数据集上预训练一个先验生成器,它使用字符串中先前的地面真相令牌,而不是之前网络预测的令牌作为输入,并在每一步最大化下一个ground-truth令牌的预测概率。然后使用DRD2和HTR1A训练数据集,通过DLGN框架对这个先验生成器进行微调,以设计针对两个相应目标的生物活性分子。

4、MOSES benchmarking

根据一种常用的化学信息学方法,具有相似化学结构的分子在大多数情况下具有相似的生物活性。如果生成的分子的化学结构与DRD2生物活性数据集和HTR1A生物活性数据集相似,那么这些生成的分子可能对DRD2和HTR1A都具有相似的生物活性

由于基于图形的生成模型在分子设计方面的优势,RationaleRL和CMolRNN的有效性值都接近于1,而DLGN的有效性较低,这是由于SMILES中一个令牌的微小变化可能导致很大的变化,甚至导致生成的分子无效。由RationaleRL生成的分子在所有结构相似性指标中得分最低。总体而言,DLGN在结构相似性度量方面表现最好。

5、Distribution of physicochemical property

LogP、QED和SAscore

DLGN生成的分子的性质分布更接近于两个测试数据集的性质分布。此外,与RationaleRL和CMolRNN相比,DLGN生成的分子数量更多,QED值更高,SA分数更低,logP值合适,但这三个特性与DLGN的奖励函数无关。

6、Ablation study

仅使用DDRD2和DHTR1A训练的生成器生成的分子显然与相应的生物活性测试集具有最高的结构相似性,但与其他生物活性测试集的结构相似性最低。另一方面,使用奖励函数DDRD2 + DHTR1A训练的生成器在DRD2和HTR1A之间具有平衡的结构相似性得分:DRD2和HTR1A之间的每个结构度量的差异很小。与使用奖励函数DDRD2 + DHTR1A训练的生成器相比,使用DLGN奖励函数训练的生成器几乎在每个指标上都得到了进一步的改进。

7、Evaluation by bioactive SVM models

重新使用两个SVM分类器来分别估计生成的分子是否对DRD2或HTR1A具有生物活性。如果生成的分子同时被DRD2 SVM和HTR1A SVM分类为生物活性,则该化合物很可能是双靶点候选分子。我们应用先验生成器、DLGN、RationleRL和CMolRNN分别生成10000个有效化合物。然后我们使用两个支持向量机对其进行评估,并将两个支持向量机预测的生成分子的概率绘制在平面直角坐标系中(图3和图4),以便更直观地观察。

8、Compare generated library with FDA approved drug

从DrugBank收集了所有fda批准的小分子药物(总共2621种),以及DRD2\HTR1A训练集中也存在的分子。

然后利用DLGN生成10000个有效的、独特的、新颖的分子。我们基于2048位半径3 ECFP计算每个生成的分子与FDA批准的所有药物之间的Tanimoto相似性,然后挑选出前50对来研究其药理作用。下面得分子相似且为新分子。

对比实验:

 

确实论文的思想值得学习,模型结构简单,有很多可借鉴之处。

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

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

相关文章

数学基础从高一开始3、集合的基本运算

目录 复习内容&#xff1a; 并集的概念 你能用符号语言和图形语言表示并集这个集合吗? 例1:求并集 例2&#xff1a;求并集 符号解析&#xff1a; 例3&#xff1a; 交集的概念 例4&#xff1a; 例5&#xff1a; 例6&#xff1a; 思考题&#xff1a; 作业&#xff…

20221209在Ubuntu22.04下读取苹果分区APFS的步骤

20221209在Ubuntu22.04下读取苹果分区APFS的步骤 缘起&#xff1a;公司的新来的美工要清理MAC电脑。 由于忘记管理员密码&#xff1f;于是备份文件&#xff0c;重装系统&#xff01; 于是通过固态硬盘盒子将2TB的M2接口的固态硬盘SSD格式化为APFS&#xff0c;这样MAC电脑就可…

2022下半年软考成绩即将公布,预约查分提醒,查分快人一步

距离2022下半年考试已经过去一个多月了&#xff0c;大家都在焦急的等待软考成绩查询。根据往年情况来看&#xff0c;软考成绩查询时间并不是固定的一个时间点&#xff0c;不过可以大致预测下应该是在12月中/下旬左右开放成绩查询&#xff0c;具体情况以官方公告为准。 历年软考…

玩以太坊链上项目的必备技能(类型-引用类型-Solidity之旅三)

在前文我们讲述了值类型&#xff0c;也就说再修改值类型的时候&#xff0c;每次都有一个独立的副本&#xff0c;如&#xff1a;string 类型的状态变量&#xff0c;其值是无法修改&#xff0c;而是拷贝出一份该状态的变量&#xff0c;将新值存起来。对于处理稍微复杂地值类型时&…

2022最新性能测试面试题(带答案)

一、性能测试开展过程&#xff1a; 答&#xff1a;第一步&#xff1a;找产品沟通哪些接口需要压测&#xff0c;需要达到什么样的预期值(TPS和响应时间) 第二步&#xff1a;编写测试计划&#xff0c;人员、时间周期、工具 第三步&#xff1a;环境搭建 第四步&#xff1a;造数…

计算机操作系统

并行和并发的区别与联系&#xff1f; 【并发】 多个任务交替执行 计算机在运行过程中&#xff0c;有很多指令会涉及 I/O 操作&#xff0c;而 I/O 操作又是相当耗时的&#xff0c;速度远远低于 CPU&#xff0c;这导致 CPU 经常处于空闲状态&#xff0c;只能等待 I/O 操作完成后…

springboot项目如何启用arthas

Arthas 是Alibaba开源的Java诊断工具&#xff0c;深受开发者喜爱。当你遇到以下类似问题而束手无策时&#xff0c;Arthas可以帮助你解决&#xff1a; 这个类从哪个 jar 包加载的&#xff1f;为什么会报各种类相关的 Exception&#xff1f;我改的代码为什么没有执行到&#xff…

HTML网页设计:爱护动物题材——保护动物大象(6页) HTML网页设计结课作业 web课程设计网页规划与设计 网页设计成品DW静态网页

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

scConverter 文档转换 DLL / SDK

scConverter 转换 DLL / SDK scConverter 是一个DLL&#xff0c;可以将PDF、DWF、Gerber、CGM、TIFF、CALS、PLT、PNG和JPEG文件转换为大量输出格式。可用的输出格式列表包括Adob​​e PDF、PDF/A、DXF、DWF、CALS、TIFF、PLT和PNG。您将在下面找到所有可用输入和输出格式的完整…

R语言用向量自回归(VAR)进行经济数据脉冲响应研究分析

自从Sims&#xff08;1980&#xff09;发表开创性的论文以来&#xff0c;向量自回归模型已经成为宏观经济研究中的关键工具。最近我们被客户要求撰写关于向量自回归&#xff08;VAR&#xff09;的研究报告&#xff0c;包括一些图形和统计输出。这篇文章介绍了VAR分析的基本概念…

Java高级——后端编译与优化

后端编译与优化解释器和编译器编译器即时编译器分层编译热点代码热点探测计数器编译过程查看及分析即时编译结果提前编译器jaotc的提前编译后端编译优化总览优化演示方法内联&#xff08;最重要的优化技术之一&#xff09;逃逸分析&#xff08;最前沿的优化技术之一&#xff09…

15. 过拟合和欠拟合

1. 过拟合和欠拟合 当数据比较简单时&#xff0c;使用模型容量低的模型更好&#xff0c;否则使用高的会出现过拟合。如果是复杂的数据用到简单模型上会出现欠拟合&#xff0c;用到复杂模型上是正常的。 2. 模型容量 模型容量&#xff1a;拟合各种函数的能力 低容量的模型难以…

Springboot+Easyexcel:导出excel表格

常规导出 常规导出excel有两种&#xff0c;个人比较推荐第一种&#xff1a; 1、新建一个导出数据的实体类&#xff0c;用ExcelProperty()注解标明excel中列的中文名称&#xff1b;如果实体的类某些列不想导出&#xff0c;可以使用ExcelIgnore进行忽略就可以了。 2、使用easyexc…

彻底理解Python中浅拷贝和深拷贝的区别

目录 前言 1. 浅拷贝和深拷贝的概念 2. is和的区别 3. 赋值操作 4. copy模块里面的copy()方法 5. copy模块里面的deepcopy()方法 6.字典自带的copy方法 7.切片表达式拷贝 前言 Python 的所有变量其实都是指向内存中的对象的一个指针&#xff0c;这确实和之前学过的强类…

JDBC基本使用(第一个jdbc程序)

在web开发中&#xff0c;不可避免的地要使用数据库来存储和管理数据。为了在java语言中提供数据库访问的支持&#xff0c;Sun公司于1996年提供了一套访问数据的标准Java类库&#xff0c;即JDBC。 JDBC的全称是Java数据库连接(Java Database connect)&#xff0c;它是一套用于执…

Web3中文|AI机器人ChatGPT如何看待DeFi?

如果还没有玩过OpenAI最新的聊天机器人ChatGPT&#xff0c;那您真的应该体验一下。 从电影推介到编程查询&#xff0c;ChatGPT几乎可以对您向它提出的任何提示做出类似人类的逻辑响应。这种新奇的感觉就像乔布斯第一次滑动解锁iPhone屏幕时那样。 与加密货币一样&#xff0c;…

nacos配置在代码中如何引用

1、在代码的模块服务中安装nacos 配置依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>2、在nacos配置中心中进行服务配置 注意不是模块名&#…

LeetCode刷题复盘笔记—一文搞懂动态规划之213. 打家劫舍 II问题(动态规划系列第十八)

今日主要总结一下动态规划完全背包的一道题目&#xff0c;213. 打家劫舍 II 题目&#xff1a;213. 打家劫舍 II Leetcode题目地址 题目描述&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一…

电力系统短期负荷预测(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

莲花-第10届蓝桥杯Scratch选拔赛真题精选

[导读]&#xff1a;超平老师计划推出Scratch蓝桥杯真题解析100讲&#xff0c;这是超平老师解读Scratch蓝桥真题系列的第99讲。 蓝桥杯选拔赛每一届都要举行4~5次&#xff0c;和省赛、国赛相比&#xff0c;题目要简单不少&#xff0c;再加上篇幅有限&#xff0c;因此我精挑细选…