当前位置: 首页 > news >正文

ACS Cent. Sci 2018 | 数据驱动的分子连续表征的自动化学设计

原文标题:Automatic Chemical Design Using a Data-Driven Continuous Representation of Molecules

代码:https://github.com/aspuru-guzik-group/chemical_vae

原文链接:https://pubs.acs.org/doi/10.1021/acscentsci.7b00572

Automatic Chemical Design Using a Data-Driven Continuous Representation of Molecules

一、Autoencoder Architecture.

编码器RNN可以与解码器RNN配对以执行序列到序列的学习,还用卷积网络进行了字符串编码的实验,并观察到性能的提高。这可以通过重复的、平移不变的子串的存在来解释,这些子串对应于化学子结构,例如环和官能团。

基于smiles的文本编码对ZINC和QM9分别使用了35个不同字符和22个不同字符的子集。为了便于计算,将字符串编码为ZINC的最大长度为120个字符,QM9的最大长度为34个字符。较短的字符串用相同长度的空格填充。只使用规范化的SMILES进行训练,以避免处理等效的SMILES表示。

VAE深度网络的结构如下: 对于用于ZINC数据集的自编码器,编码器分别使用滤波器大小为9,9,10和9,9,11卷积核的三个1D卷积层,后面是一个宽度为196的全连接层。解码器输入到三层门控循环单元(GRU)网络中,隐藏维数为488。

对于QM9数据集所使用的模型,编码器使用了3个一维卷积层,滤波器大小分别为2,2,1和5,5,4个卷积核,然后是一个宽度为156的全连接层。三个递归神经网络层各有500个神经元的隐藏维度。

潜在空间中的同一点可能解码成不同的SMILES字符串,这取决于用于采样字符的随机种子。输出GRU层有一个额外的输入,对应于从前一个时间步的softmax输出中采样的字符,并使用teacher forcing进行训练,增加了生成的SMILES字符串的准确性,这导致训练数据之外的潜在点的有效SMILES字符串的比例更高,但也使训练变得更加困难,因为解码器显示出忽略(变分)编码并完全依赖输入序列的倾向。29个epoch后,按sigmoid schedule退火,共运行120个epoch

对于属性预测,使用两个全连接(1000个神经元)层来预测潜在表示的属性,dropout为0.20。为了简单地塑造潜在空间,使用了一个较小的MLP作为属性预测器,该MLP由3层67个神经元组成,训练dropout为0.15。对于在ZINC数据集上训练的算法,目标属性包括logP、QED、SAS。性能预测损失与变分损失同时退火。TensorFlow开发

二、RESULTS AND DISCUSSION

1、Representation of Molecules in Latent Space.

图2a显示了从训练集外随机选择的5000个ZINC分子编码时每个维度的核密度估计。核密度估计显示了数据点沿潜在空间各维的分布。虽然数据点在每个单独维度上的分布显示出略有不同的平均值和标准差,但由于变分正则化器,所有分布都是正态分布。

图2b显示了将fda批准的药物分子样本的潜在表征解码为几个不同分子的概率。对于大多数潜在点,一个突出的分子被解码,许多其他轻微的变化以较低的频率出现。当这些生成的SMILES被重新编码到潜在空间时,最常见的解码也往往是与原始点欧几里得距离最小的那个,这表明潜在空间确实捕获了与分子相关的特征。

图2c显示了潜伏空间中接近布洛芬的一些分子。这些结构变得不那么类似于增加潜在空间的距离。当距离接近训练集中分子的平均距离时,变化更加明显,最终类似于可能从训练集中采样的随机分子。
图2d显示了两个随机药物分子之间的球面插值,显示了两者之间的平滑过渡。连续的潜空间允许分子内插,通过在它们的潜表示之间遵循最短的欧几里得路径。在探索高维空间时,重要的是要注意欧几里得距离可能不能直接映射到分子相似性的概念在高维空间中,大多数独立的正态分布随机变量的质量不是在平均值附近,而是在平均值周围的一个环中两点之间的线性插值可能会经过一个低概率区域,为了使采样保持在高概率区域,使用球面插值35 (slerp)。对于slerp,两点之间的路径是位于n维球体表面上的圆弧。

表1将训练集中的化学性质分布与遗传算法生成的分子和变分自编码器生成的分子进行比较。该过程使用锌数据集中的1000个随机分子进行播种,并在10次迭代中生成。对于使用变分自编码器生成的分子,我们收集了从相同的1000个种子分子编码的潜在空间点进行400次解码尝试生成的所有分子的集合。比较logP、SA和QED。

与遗传算法生成的分子集相比,使用VAE生成的分子显示出与原始数据集更相似的化学性质。

2、Property Prediction of Molecules.

训练了MLP和AE来预测每个分子的潜在表征,图3显示了属性值到潜在值的映射。PCA降维。值高的分子位于一个区域,值低的分子位于另一个区域。

虽然添加性质预测的主要目的是组织潜在空间,但观察属性预测器模型与其他属性预测标准模型的比较是很有趣的。为了与其他方法进行更公平的比较,我们将感知器的大小增加到两层,每层有1000个神经元。表2比较了常用的分子embedding和模型与VAE的性能。

3、Optimization of Molecules via Properties.

从联合训练的自编码器中对潜在空间中的分子进行优化,以进行属性预测。为了创建一个更平滑的环境来执行优化,使用高斯过程模型来建模属性预测器模型。训练高斯过程的2000个分子被选择为最大限度地多样化。在潜在空间中进行优化,以找到一个最大化目标分子

选择优化的目标是5 × QED - SA,其中QED为药物相似性的定量估计,38,SAS为合成可及性评分这一目标代表了一个粗略的估计,即找到最像药物的分子,也很容易合成。

图4a显示了使用高斯过程(GP)模型对潜在空间表示的优化始终导致分子具有更高的百分位数。

图4b显示了二维PCA表示中从起始分子到最终分子的一次优化路径,最终分子位于高目标值区域。

图4c显示了使用高斯插值沿此优化路径解码的分子。

在使用1000个分子训练的GP模型上执行此优化,可以得到稍宽的分子范围,如图4a所示。由于训练集较小,GP的预测能力较低,在潜在空间中进行优化时,GP会优化到几个局部最小值,而不是全局优化。在难以完全描述分子中所需的所有特征的情况下,使用这种局部优化方法来获得更大的潜在分子多样性可能会更好。

由于文章比较老,当时2017年投稿的,VAE还是火的时候,想法很好,加一个MLP约束分子的潜在分布。

相关文章:

ACS Cent. Sci 2018 | 数据驱动的分子连续表征的自动化学设计

原文标题:Automatic Chemical Design Using a Data-Driven Continuous Representation of Molecules 代码:https://github.com/aspuru-guzik-group/chemical_vae 原文链接:https://pubs.acs.org/doi/10.1021/acscentsci.7b00572 Automatic…...

安卓Termux搭建web服务器【公网远程手机Android服务器】

文章目录 概述1.搭建apache2.安装cpolar内网穿透3.公网访问配置4.固定公网地址5.添加站点 概述 Termux是一个Android终端仿真应用程序,用于在 Android 手机上搭建一个完整的Linux 环境,能够实现Linux下的许多基本操作,不需要root权限Termux就…...

【大数据之Hive】二、Hive安装

Hive安装部署(最小化部署) 安装部署Hive(最小化只用于本机测试环境中,不可用于生产环境),并运行。 步骤: (1)把apache-hive-3.1.3-bin.tar.gz解压到/opt/module/目录下&…...

三大特性之多态

文章目录 静态的多态动态的多态虚函数虚函数的重写(覆盖)利用虚函数重写实现多态重写的两个例外1.协变2.析构函数的函数名不同 C11的override和final 重载,重写(覆盖),重定义(隐藏)抽…...

单调队列优化dp

文章目录 单调队列优化dp烽火传递修剪草坪绿色通道琪露诺旅行问题Watching Fireworks is Fun瑰丽华尔兹股票交易 单调队列优化dp 文章首发于我的个人博客:欢迎大佬们来逛逛 单调队列优化dp的建模形式:这是窗口右滑动的情况 对于窗口左滑动的也是同理。…...

【低压配电漏电继电器660V/LLJ-100H/AC220V 中性点漏电保护 JOSEF】

LLJ-F(S)系列漏电继电器 系列型号: LLJ-10F(S)漏电继电器LLJ-15F(S)漏电继电器LLJ-16F(S)漏电继电器 LLJ-25F(S)漏电继电器LLJ-30F(S)漏电继电器LLJ-32F(S)漏电继电器 LLJ-60F(S)漏电继电器LLJ-63F(S)漏电继电器LLJ-80F(S)漏电继电器 LLJ-100F(S)漏电继电器LLJ-120…...

[数据结构习题]栈——中心对称链

[数据结构习题]栈——中心对称链 👉知识点导航💎:【数据结构】栈和队列 👉[王道数据结构]习题导航💎: p a g e 70.4 page70.4 page70.4 本节为栈和链表综合练习题 题目描述: 🎇思路…...

AMD Software Adrenalin Edition 23.5.1驱动发布,快速获取驱动

AMD新驱动赶在五月天发布!AMD Software Adrenalin Edition 23.5.1驱动 ,为部分游戏带来支持,以及为重要的软件带来修复。驱动人生带大家一览AMD WHQL 23.5.1驱动的优化内容。 游戏方面,AMD WHQL 23.5.1主要为游戏《指环王&#x…...

Visual Studio内引用Lua解释器,编译Lua源码,执行Lua脚本

前言 本篇在讲什么 在Visual Studio中引入lua的解释器 使用C调用Lua文件 本篇适合什么 适合初学Lua的小白 适合需要C/C和lua结合开发的人 本篇需要什么 对Lua语法有简单认知 对C/C语法有简单认知 依赖Lua5.1的环境 依赖VS 2017编辑器 本篇的特色 具有全流程的图文…...

【赏】C语言迷宫游戏设计如何解决屏幕严重刷屏问题同时实现运行时间的显示

要解决屏幕严重刷屏问题,可以参考以下方法: 在每次刷新前清空屏幕,使用system("cls")命令来实现清屏。 只在需要更新的地方进行刷新,而不是整个屏幕都重新绘制。在此代码中,只需要在用户输入移动指令后更新电子鼠的位置即可,不用每次循环都重新画整个迷宫。同时…...

Spring Boot如何实现接口文档自动生成

Spring Boot如何实现接口文档自动生成 在开发Web应用程序时,接口文档是非常重要的一环,它可以帮助我们快速了解API的功能和使用方法,同时也是与其他开发人员和团队协作的重要工具。然而,手动编写和维护接口文档是一项繁琐的工作&…...

二进制概述-0day漏洞利用原理(1)

二进制利用基本原理,Lord PE的使用,凡是资源性的物质且可表达的皆可利用。 往期文章: 漏洞概述-0day漏洞利用原理(0)_luozhonghua2000的博客-CSDN博客 PE 文件格式 PE (Portable Exec utable) 是 Win32 平台下可执行文件遵守的数据格式。常见的可执行文件(如“*.exe”文件…...

加密与解密 调试篇 动态调试技术 (二)-常见断点

目录 常见的断点 1.INT 3 断点 检测 绕过 2.硬件断点 原理 我们给出硬件中断的例子 删除硬件断点 3.内存断点 原理 例子 删除 区别 总结 4.内存访问一次性断点 5.消息断点 例子 删除 6.条件断点 (1)按寄存器条件中断 (2&…...

【JavaScript】拾遗(5.25)

文章目录 1. JavaScript2.HTML嵌入JS的第一种方式:行间事件3.HTML嵌入JS的第二种方式:脚本块的方式4. HTML嵌入JS的第三种方式:外部式(外链式)5. 局部变量和全局变量6. 函数7.事件8.回调函数8.1 注册事件8.2 代码的执行顺序 1. JavaScript JavaScript是一门脚本语言。&#xf…...

QMI8658 - 姿态传感器学习笔记 - Ⅲ

文章目录 1.复位1.1 上电复位:1.2 推荐工作条件 2. 校准(COD)2.1 校准步骤2.2 校准注意事项:2.3 校准状态指示2.4 校准参数更新 3. 自检3.1 加速度计自检3.2 陀螺仪自检 4. Ctrl94.1 写Ctrl94.2 读Ctrl94.3 Ctrl9详细命令说明 5. 中断5.1 同步采样模式5.…...

PHP+vue二手车交易信息网站系统

原来二手车网站由于二手车网站制度的不完善,许多城市的二手车网站市场都很少,而且欺诈行文较严重,肆意提高价格,隐瞒汽车所存在的故障问题,人们买卖二手车还是经过朋友帮忙介绍的途径来实现。这就导致了很多人的想卖车…...

NTM中attr的用法

代码1 attrs class CopyTaskParams(object):name attrib(default"copy-task")controller_size attrib(default100, convertint)controller_layers attrib(default1,convertint)num_heads attrib(default1, convertint)sequence_width attrib(default8, convert…...

【python资料】pandas的条件查询

一、说明 在使用Pandas的DataFrame进行数据挖掘的时候,需要形形色色的条件查询,但是这些查询的基本语法是啥,查询的灵活性如何,本文将对他们进行详细列出,便于以后查阅。 二、Pandas条件查询方法 2.1 简单条件查询 1、…...

中间件(三)- Kafka(二)

Kafka 6. 高效读写&Zookeeper作用6.1 Kafka的高效读写6.2 Kafka中zookeeper的作用 7. 事务7.1 Producer事务7.2 Consumer事务 8. API生产者流程9. 通过python调用kafka9.1 安装插件9.2 生产者(Producer)与消费者(Consumer)9.3…...

DAY01_MySQL基础数据类型navicat使用DDL\DML\DQL语句练习

目录 1 数据库相关概念1.1 数据库1.2 数据库管理系统1.3 常见的数据库管理系统1.4 SQL 2 MySQL2.1 MySQL安装2.1.1 安装步骤 2.2 MySQL配置2.2.1 添加环境变量2.2.2 MySQL登录2.2.3 退出MySQL 2.3 MySQL数据模型2.4 MySQL目录结构2.5 MySQL一些命令2.5.1 修改默认账户密码2.5.2…...

数据安全复合治理框架和模型解读(0)

数据治理,数据安全治理行业在发展,在实践,所以很多东西是实践出来的,哪有什么神仙理论指导,即使有也是一家之说,但为了提高企业投产比,必要的认知是必须的,当前和未来更需要专业和创新。数据安全治理要充分考虑现实数据场景,强化业务安全与数据安全治理,统一来治理,…...

Java程序设计入门教程--逻辑运算符和位运算符

目录 逻辑运算符 位运算符 逻辑运算符 逻辑运算符就是表示逻辑关系的运算符。下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假。 逻辑运算符表 操作符 描述 例子 && 当且仅当两个操作数都为真,条件才为真。 &…...

接口测试简介以及接口测试用例设计思路

接口测试简介 1.什么是接口 接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能进行传输的&#x…...

C++ Qt项目实战:构建高效的代码管理器

C Qt项目实战:构建高效的代码管理器 一、项目概述(Introduction)1.1 项目背景(Project Background)1.2 项目目标(Project Goals)1.3 项目应用场景(Project Application Scenarios&am…...

【JavaScript 递归】判断两个对象的键值是否完全一致,支持深层次查询,教你玩转JavaScript脚本语言

博主:東方幻想郷 Or _LJaXi 专栏分类:JavaScript | 脚本语言 JavaScript 递归 - 判断两个对象的键值 🌕 起因🌓 代码流程⭐ 第一步 判断两个对象的长度是否一致⭐ 第二步 循环 obj 进行判断两个对象⭐ 第三步 递归条件判断两个对象…...

卷积、相关、匹配滤波、脉冲压缩以及模糊函数

文章目录 【 1. 卷积 】1.1 连续卷积1.2 离散卷积【 2.相关 】2.1 自相关2.2 互相关【 3.匹配滤波 】3.1 滤波器模型3.2 有色噪声-匹配滤波器3.3 白噪声-匹配滤波器3.3.1 原始-白噪声-匹配滤波器3.3.2 简化-白噪声-匹配滤波器3.4 动目标的匹配滤波【 4.脉冲压缩】4.1 时域脉冲压…...

C# 栈(Stack)

目录 一、概述 二、基本的用法 1.入栈 2.出栈 Pop 方法 Peek 方法 3.判断元素是否存在 4.获取 Stack 的长度 5.遍历 Stack 6.清空容器 7.Stack 泛型类 三、结束 一、概述 栈表示对象的简单后进先出 (LIFO) 非泛型集合。 Stack 和 List 一样是一种储存容器&#x…...

网络流量监控及流量异常检测

当今的企业面临着许多挑战,尤其是在监控其网络基础设施方面,需要确保随着网络规模和复杂性的增长,能够全面了解网络的运行状况和安全性。为了消除对网络性能的任何压力,组织应该采取的一项重要行动是使用随组织一起扩展的工具监控…...

六.热修复

文章目录 前言什么是热修复?如何进行热修复?热修复需要解决的问题 1.Android常用的热修复解决方案2.ClassLoader类加载机制2.1 Android类加载器2.2 双亲委托机制2.3 类查找流程 3.插桩式热修复运行期修复落地3.1 什么是字节码插桩?3.2 ASM3.3…...

2000万的行数在2023年仍然是 MySQL 表的有效软限制吗?

谣言 互联网上有传言说我们应该避免在单个 MySQL 表中有超过 2000 万行。否则,表的性能会下降,当它超过软限制时,你会发现 SQL 查询比平时慢得多。这些判断是在多年前使用HDD硬盘存储时做出的。我想知道在2023年对于基于SSD的MySQL数据库来说…...