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

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

什么是EULA和DPA

文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...