【JMC】SMILES‑based deep generative scafold decorator for de‑novo drug design
SMILES-based deep generative scaffold decorator for de-novo drug design
基于SMILES的利用Fragment的分子生成模型
https://github.com/undeadpixel/reinvent-scaffold-decorator
1.背景
深度生成模型因其可以从有限的数量中生成新数据,目前已成功应用于生成文本、图像、视频等领域。令人关注的是,其在药物发现领域的重要作用,使得许多新方法可用于探索化学空间,例如RNN,VAE,GAN等。在这些模型中,常用两种方式来表示分子数据,一类是利用SMILES字符串,一类是利用分子图。基于SMILES字符串的模型因为SMILES字符串的简单结构可以使得模型更快的进行训练,并且2019年Josep Arús‑Pous等人提出的在分子生成模型中引入Randomized SMILES可以大大改善生成结果,使得模型的收敛效果更好,过拟合较少。但是由于SMILES本身语法的限制,其结构不允许从骨架(scaffold,即具有明确连接点的部分构建的分子,譬如去除一个化合物的所有取代基)中生成分子,当然在之前的研究中有学者利用双向RNN从两侧完善一个SMILES,可是这样使得连接点的个数局限于两个,另外虽然图神经网络可在无限定连接点的情况下装饰骨架,但是由于本身的实验性结构,从而要求在实验中进行大量的训练和采样。
作者提出了一种可以基于SMILES生成模型通过骨架生成分子的架构,该架构可以分两步生成分子,并且可以生成训练集,以帮助模型针对各种骨架进行泛化。此外,骨架和装饰器可以进一步过滤,只允许具有特定属性的骨架和装饰器。作者表明,通过过滤使装饰器模型能够学习有关如何装饰骨架的特定信息。
2.框架概括
整个分子生成过程可分为两个步骤:骨架生成器(scaffold generator)和装饰器(decorator)。生成器是基于Randomized SMILES的RNN,装饰器为编码器-解码器体系结构,其编码器是一个双向RNN,解码器是一个单向RNN。SMILES语法使用标记“[*]”进行了扩展,该标记由部分化学软件库支持,作为部分构建的分子中的连接点。
首先,由骨架生成器生成SMILES对应的fragment或者手动输入fragment生成Randomized SMILES,
之后将骨架输入到装饰器模型中,这里训练了两个装饰器,①、一个装饰器一次仅装饰一个连接点,②、另一个装饰器一次装饰所有连接点。在第一种情况下,模型会装饰骨架的SMILES字符串中的第一个连接点,然后将生成的装饰重新连接到骨架上,并将半构建的分子反馈到装饰器中。重复该过程,直到装饰了所有连接点。半装饰分子的随机SMILES表示在每个步骤都会改变,因此会移动SMILES字符串中连接点的相对位置。这个过程允许在装饰带有n个连接点的分子时考虑所有可能的排序。第二种情况装饰所有连接点时和第一种相似,但仅通过一步,使用“|”字符作为分隔按SMILES字符串中出现的顺序生成所有装饰。
3.训练集生成
装饰器模型需要训练集,其中每个item都包括骨架及其装饰,这里不是选择已经创建的化合物(例如专利数据),而是通过详尽地对分子数据库中的所有分子彻底删除c个非环键进行切片来创建数据集,将产生的碎片分为骨架和装饰。从分子切片中,如果不存在连接点数=c的片段,则将组合丢弃。这些item中的每一个("骨架装饰元组”)都由骨架和与其具有同样连接点的装饰组成。下图为DRD2拮抗剂桂利嗪切片的三种可能组合。
4.实验
(1)在DRD2上生成预测活性分子
骨架装饰器的主要目的是尽可能有意义地装饰任何输入骨架。在第一个实验中,一个小型数据集由4211个多巴胺受体D2(DRD2)活性调节剂组成,用于训练装饰器模型(多步和单步)。然后,这些模型在不同的骨架上进行了测试,这些骨架与训练集数据相似。从每个骨架中获得一系列分子,然后使用活性预测模型(APM)将其与随机装饰的分子进行比较。
首先通过除去具有五个随机选择的骨架的所有元组以及从具有这些骨架的152个分子中的任何一个获得的所有元组,来提取由5532个骨架装饰元组组成的验证集。
使用多步装饰器模型对五个选定的骨架进行多次装饰,从上表可以看出,总共产生14,300个独特的分子,其中包括验证集中存在的63个分子(占41.4%),预测的活性分子的百分比始终低于从装饰的分子中获得的百分比。
从使用训练集中的骨架训练的分子生成模型中采样然后使用多步骨架装饰模型进行多次装饰。结果表明,预测为有活性的生成分子的比例通常很高,从45.4%增至98.9%(表2)。但是最重要的是,装饰分子始终比ChEMBL和训练集诱导剂具有更高的预测活性分子比。
另外,通过单步结构模型装饰骨架结果表明,单步结构模型能够从验证集中生成152个分子中的90个(59.2%)。尽管比多步模型更好,但其实多步模型和单步模型之间的比较必须相对进行,因为多步体系结构采样过程的性质不允许控制要采样的分子数量。
作者在此实验中对生成分子相似性也做了研究,从训练集中的分子样本,两个骨架集和两个诱导剂集产生的分子样本中,分别计算出四个数值:分子质,cLogP, SA得分和QED,得出用装饰模型生成的分子比诱导剂更倾向于遵循训练集分布。
(2)用合成化学感知模型装饰骨架
在第二个实验中,通过使用仅由符合合成化学RECAP规则的键连接的装饰和类药骨架进行训练的装饰器模型,ChEMBL数据库得到使用和过滤。。与之前的实验一样,两组骨架:一组仅存在于验证集中的42个骨架,以及一组由生成模型生成的不在ChEMBL数据集的40个骨架。使用多步装饰器模型对两组骨架进行多次装饰,每个骨架平均总共可产生12294和11504个不同的分子。验证集件骨架上装饰的分子占35.4%,结果略低于DRD2实验中的结果。
上图验证了生成的分子的质量。结果表明装饰模型能够创建分子,这些分子除了在连接点上满足RECAP规则外,还具有类药物性,并且可以在任何骨架下合成。
另外,还使用与多步装饰器相同的超参数和训练集对单步装饰器模型进行了训练,装饰了相同的骨架组,当计算上一节中所述的值时,下表可以看出整体性能稍差。
5.总结
- 作者提出了一种新的基于SMILES的分子生成模型,该模型可以从骨架生成分子。
- 除此之外,还定义了一种算法,通过穷尽地切片分子的无环键并获得所有可能的组合,将任意分子集处理为由骨架装饰元组组成的集合。
- 此外,它是一种数据增强技术,可以很容易地与随机SMILES结合使用小型分子集获得更好的结果,该模型可以直接与各种已提出的技术结合,例如强化学习和迁移学习,以进一步指导分子的产生。
感觉他这种切分方式很重要
J. Cheminform. | 基于SMILES的利用骨架的分子生成模型 - 知乎
相关文章:
【JMC】SMILES‑based deep generative scafold decorator for de‑novo drug design
SMILES-based deep generative scaffold decorator for de-novo drug design 基于SMILES的利用Fragment的分子生成模型 https://github.com/undeadpixel/reinvent-scaffold-decorator 1.背景 深度生成模型因其可以从有限的数量中生成新数据,目前已成功应用于生成…...
全链路异步,让你的 SpringCloud 性能优化10倍+
背景 随着业务的发展,微服务应用的流量越来越大,使用到的资源也越来越多。 在微服务架构下,大量的应用都是 SpringCloud 分布式架构,这种架构,总体是全链路同步模式。 同步编程模式不仅造成了资源的极大浪费&#x…...
131.《router v 5 与 react-router v 6》
文章目录1.什么是路由2.路由分类3.react-router-dom的理解4. react-router-dom相关API5.其他6. react-router5 路由基本使用1.效果2.代码App.js一级路由home.js下的二级路由7.路由传参的三种方式8.react-router6 基本使用1.一级路由2.二级路由3.hooksuseRoutesuseParamsuseSear…...
2023第十届北京老年产业博览会/中国养老护理人才培育计划
CBIAIE北京老博会,打造2023年度唯具参展价值的老年行业盛会; 北京老博会:2011年,我国首场以“老年产业”为主题,一场专注于老年福祉、健康的国际型行业发展盛会,中国(北京)国际老年…...
STM32F407VET6 / BLACK_F407VE开发板间隔0.5秒不断重启
有一块 STM32F407VET6 的故障开发板, 之前的问题是经常无法烧录, 必须reset之后才能连接, 具体查看这篇 STM32F407VET6烧录出现flash download failed target dll has been cancelled. 并且程序运行一段时间后会halt. 这块开发板后来一直搁箱底吃灰了几年. 最近打算把这片 STM…...
什么是圈复杂度
圈复杂度是一种软件度量指标,用于度量程序中的控制流程的复杂性。它是通过计算程序中独立路径的数量来确定的。简单来说,圈复杂度是指在一个函数或模块中有多少个独立的路径,也就是说,有多少个不同的输入序列可以导致不同的执行路…...
Hbase 数据迁移
Hbase 数据迁移 可选方案对比 l 已验证方案操作说明: n Export&import u 导出命令及示例 hbase org.apache.hadoop.hbase.mapreduce.Export “表名” 文件路径 导出至本地文件系统: ./bin/hbase org.apache.hadoop.hbase.mapreduce.Export ‘defa…...
Docker consul的容器服务更新与发现
一、Consul概述(1)什么是服务注册与发现服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分…...
数据库关系模型
关系模型简述 形象地说,一个关系就是一个table。 关系模型就是处理table的,它由三个部分组成: 描述DB各种数据的基本结构形式;描述table与table之间所可能发生的各种操作;描述这些操作所应遵循的约束条件࿱…...
你是真的“C”——详解指针知识
你是真的“C”——详解指针知识😎前言🙌1、 指针是什么?🙌2、指针和指针类型🙌2 、1指针-整数2 、 2指针的解引用3、 野指针🙌3、 1野指针成因3、 2如何规避野指针4、指针运算🙌4、1 指针-整数4…...
React/ReactNative面试攻略(偏RN)
useMemo Vs useCallBackuseMemo第一个参数返回的是值,useCallBack返回的是函数useMemo和useCallBack第二个参数都是依赖项useMemo避免组件非依赖项更新时参数的计算useCallback避免父组件非依赖项更新时造成子组件的重复渲染React.memo 使用场景纯prue组件ÿ…...
Leetcode-每日一题1234. 替换子串得到平衡字符串(滑动窗口 + 哈希表)
题目链接:https://leetcode.cn/problems/replace-the-substring-for-balanced-string/description/ 思路 题目意思 这题意思是一个只含有[Q, W, E, R] 四个字符的字符串s且长度一定是 4的倍数, 需要你通过替换子串,使他变成一个「平衡字符…...
linux命令小结-查看日志命令
一、查看日志命令cat查看文件 vi编辑后可以用cat进行查看保存是否成功1)cat -n alert_monitor.log2)cat -n alert_monitor.log | tail -n 100 | head -n 20 //查询100行之后的日志,且在100行之后里再查前20条日志more 可以通过回撤键翻页mor…...
Java知识点细节简易汇总——(8)枚举和注解+Java面向对象高级作业
一、枚举 自定义枚举 当我们使用 enum 关键字开发一个枚举类时,默认会继承 Enum 类, 而且是一个 final 类[如何证明],老师使用 javap 工具来演示传统的 public static final Season2 SPRING new Season2(“春天”, “温暖”); 简化成 SPRING(“春天”, “温暖”)…...
快速上手JVM- Java Virtual Machine面试不用慌
一、JVM的定义 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,J…...
安警官的IP地址是怎样定位到莽村附近的?
要说最近大火的电视剧非《狂飙》莫属。电视剧《狂飙》自开播以来,一举超过《三体》《去有风的地方》等先播电视剧,收视率一路“狂飙”,牢牢占据近期的收视冠军。 在剧中,张译扮演一名坚持公平、正义与理想的人民警察“安欣”&…...
STL中重要容器vector总结
你要尽全力保护你的梦想。那些嘲笑你的人,他们必定会失败,他们想把你变成和他们一样的人。如果你有梦想的话,就要努力去实现。 ——《当幸福来敲门》引言:C中STL里面的容器用法很巧妙,可以解决很多复杂的模型ÿ…...
11_会话原理与实现流程
1、会话的基本知识 # 会话## 1.会话是什么?客户端与服务器之间的对话交流## 2.为什么需要会话?-http 协议是无状态的(六亲不认)-同一用户多次访问同一网站,对网站来说,每次都是全新的-网站不能识别用户身份…...
Java测试——junit的使用(2)
排序 我们同一个类下的多个用例的执行顺序是不确定的,如果需要指定固定的顺序,则需要在类上加这个注解 TestMethodOrder(MethodOrderer.OrderAnnotation.class)然后在想要第一个执行的用例上加上 Order(1)第二个执行的用例上注解: Order(…...
数据库(六): MySQL的主从复制和读写分离
文章目录一、为什么要使用主从复制和读写分离二、主从复制的原理三、如何实现主从复制3.1 master配置3.2 slave配置3.3 测试主从复制四、读写分离五、缺点一、为什么要使用主从复制和读写分离 注意到主从复制和读写分离一般是一起使用的。目的很简单,就是提高数据库…...
编程思想-0x00架构
产生架构的原因? 1、代码均摊 将不同的代码进行分块,然后简历联系,低耦合、高内聚; 原则上:合理的App架构应该是合理分配每个类、结构体、方法、变量的存在都应该遵循单一职责的原则 2、便于测试 测试确保代码质量&…...
QCon演讲实录(上):多云环境下应用管理与交付实践
作者:阿里云大数据基础工程技术团队——郭耀星 大家上午好!我是来自阿里云大数据基础工程技术团队的郭耀星,花名雪尧。今天我很高兴能够来到QCon,与大家分享我的经验和心得。在当前的多云环境中,作为运维支撑团队&…...
async thunk 解决 API 调用的依赖问题
async thunk 解决 API 调用的依赖问题 一句话节省看下面一堆内容的时间就是: async thunk 中可以使用 async/await 锁住其他的 action 操作 一般 API 之间存在三种情况: A 和 B 之间没有依赖关系 这样的情况下,A 和 B 可以各调用各的&#x…...
java 黑马头条 day3 实名认证分布式事务问题 seata
1 完善实名认证功能 1.1 实名认证分布式事务问题 1.1.1 问题分析 在昨天的实名认证代码中,审核完毕后添加 id5的演示异常,重新使用postman进行测试, 会发现 出现异常后 本地方法因为有 Transactional注解 对ap_user ap_user_realname的操作会回滚 而…...
测试开发之Django实战示例 第七章 创建电商网站
第七章 创建电商网站在上一章里,创建了用户关注系统和行为流应用,还学习了使用Django的信号功能与使用Redis数据库存储图片浏览次数和排名。这一章将学习如何创建一个基础的电商网站。本章将学习创建商品品类目录,通过session实现购物车功能。…...
【C++之容器篇】造轮子:list的模拟实现与使用
目录前言一、关于list1. 简介2. 成员类型二、默认成员函数1. 构造函数1. list()2. list(size_t n,const T& val T())和list(InputIterator first,InputIterator last)2. 拷贝构造函数3. 析构函数4. 赋值运算符重载函数三、迭代器1. 普通对象的正向迭代器2. const对象的正向…...
自动驾驶:决策规划算法岗位面经分享
本专栏分享 计算机小伙伴秋招春招找工作的面试经验和面试的详情知识点 专栏首页: 主要分享计算机算法类在面试互联网公司时候一些真实的经验 人情况是985本硕,硕士研究方向是强化学习在移动机器人路径规划中的应用,一段自动驾驶中小厂实习经历,秋招找的大都是机器人和自动驾…...
2.7、进程调度的时机、切换与过程、方式
1、进程调度的时机 进程调度\color{red}进程调度进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机 进程在操作系统内核程序临界区\color{red}操作系统内核程序临界区操作系统内核程序临界区中不能\color{red}不能…...
工程管理系统源码+项目说明+功能描述+前后端分离 + 二次开发
工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…...
ESP32S3系列--SPI从机驱动详解(一)
一、目的 在之前的博文中《ESP32S3系列--SPI主机驱动详解(一)》、《ESP32S3系列--SPI主机驱动详解(二)》我们详细讲解了ESP32S3上的SPI外设如何工作在主机模式并通过代码的形式帮助大家理解。 本篇我们将介绍SPI外设工作在从机模式下的使用知识点。 二、介绍 参考资料 http…...
dw做网站怎么上线/网络游戏排行榜百度风云榜
数控机床–是数字控制机床是一种装有程序控制系统的自动化机床。 数控机床与普通机床的主要区别在于:数控机床带有数控系统(程序控制系统),可以通过编制程序来实现自动化加工。而普通机床没有该特性。 一、数控机床对零件的加工…...
网站后期维护包括/邯郸网站优化
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/42965779 ,本文出自:【张鸿洋的博客】1、概述哈,记得以前写过Android SurfaceView实战 打造抽奖转盘 , 同属于SurfaceView系列,基本可以…...
.net 网站开发架构/深圳谷歌推广公司
与往常一样,升级或初始化一个新集群的用户将获得更好的性能(例如,更好的并行索引扫描、合并 join 和不相关的子查询,更快的聚合、远程服务器上更加智能的 join 和聚合),这些都开箱即用,但本文中…...
冠县网站建设电话/高端大气网站建设
利用jenkins的远程构建功能,我们可以使用任何脚本,甚至定制一个Web页来控制Job的执行,但是远程构建你如果直接使用的话,老是需要登录才能执行,如何避免登录?稍微折腾了一下,调通了。 1、点击右上…...
荣耀手机商城官方网站荣耀60pro/seo公司推广宣传
有一些很古老的教程,一般都是走编译安装路线的,本文是教你不需要编译,而且随时都可以跟随 CentOS 升级 Proftpd 到最新版本,以避免可能的漏洞攻击。利用 Proftpd 现成的配置以及设置好的各种模块,可以实现 sftp 和 ssh…...
wordpress批量增加用户/北京百度推广代理
这几天在修改canal, 连接mysql和maria接收到的event有所区别 拿一个简单的insert sql来举例 mysql 会有以下几个event写入到binlog里 1.ANONYMOUS_GTID_LOG_EVENT2.QUERY_EVENTheader { version: 1 logfileName: "20170105-162017-bin.000001" logfileOffset: 192…...