当前位置: 首页 > 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…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

WebRTC调研

WebRTC是什么&#xff0c;为什么&#xff0c;如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud&#xff08;一&#xff09;Springcloud五大组件&#xff08;二&#xff09;服务注册和发现1、Eureka2、Nacos &#xff08;三&#xff09;负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...

LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考

目录 lua脚本 记录流水 记录流水的作用 流水什么时候删除 我们在做库存扣减的时候&#xff0c;显示基于Lua脚本和Redis实现的预扣减 这样可以在秒杀扣减的时候保证操作的原子性和高效性 lua脚本 // ... 已有代码 ...Overridepublic InventoryResponse decrease(Inventor…...

VSCode 没有添加Windows右键菜单

关键字&#xff1a;VSCode&#xff1b;Windows右键菜单&#xff1b;注册表。 文章目录 前言一、工程环境二、配置流程1.右键文件打开2.右键文件夹打开3.右键空白处打开文件夹 三、测试总结 前言 安装 VSCode 时没有注意&#xff0c;实际使用的时候发现 VSCode 在 Windows 菜单栏…...