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

山东大学开发可解释深度学习算法 RetroExplainer,4 步识别有机物的逆合成路线

逆合成旨在找到一系列合适的反应物,以高效合成目标产物。这是解决有机合成路线的重要方法,也是有机合成路线设计的最简单、最基本的方法。
早期的逆合成研究多依赖编程,随后这一工作被 AI 接替。然而,现有的逆合成方法多关注单步逆合成,可解释性差,且无法兼顾分子的短程信息和长程信息,性能受限。
为此,山东大学的魏乐义和电子科技大学的邹权课题组共同开发了 RetroExplainer。这一可解释的深度学习算法,可以 4 步识别有机物的逆合成路线,给出易得的反应物。RetroExplainer 有望为有机化学逆合成研究提供强力工具。

作者 | 雪菜

编辑 | 三羊

有机化学逆合成 (Retrosynthesis) 旨在找到一系列合适的反应物,以高效合成目标产物。这一过程是计算机辅助合成中不可或缺的基础性工作。

在这里插入图片描述

图 1:叔丁醇的逆合成路线

上世纪 60 年代,Corey 等人尝试通过编程进行逆合成分析,并开发了有机化学模拟合成 (OCSS) 软件。然而,随着数据量的增加,这一工作很快被 AI 接手。其中,深度学习 (Deep Learning) 模型被寄予厚望,也产出了相当的成果。

早期的 AI 逆合成研究中,研究者往往基于反应模板从产物倒推到反应物,即基于模板的逆合成。其中,基于多层感知器的分子指纹 (Molecular Fingerprints) 常被用于产物的编码和模板的选择。

随后,研究人员开始探寻无模板和半模板的合成方法,主要包括:

1、基于序列的逆合成;

2、基于图表的逆合成。

二者的主要区别在于分子的表现形式。前者用线性化的字符串表示分子,如 SMILES 规范;而后者会使用分子图模型表示分子,主要包括反应中心 (RC, Reaction Center) 的预测和合成子 (Synthon) 的完成。

在这里插入图片描述

图 2:部分物质的 SMILES 表达式

虽然现有的逆合成方法已经取得了重大进展,但仍存在 3 个内源性问题

1、基于序列的逆合成会遗漏分子信息,而基于图表的逆合成会忽视分子的序列信息和长程特征。两种方法在特征学习中都会受到限制,性能很难再提升;

2、基于深度学习的逆合成方法可解释性很差。虽然基于模板的逆合成能给出易懂的合成路线,但算法的决策机制依然很模糊,模型的可重复性和可行性有待考虑;

3、现有方法多聚焦于单步逆合成。这种方法看似可以给出合理的反应物,然而这些反应物可能很难购买,或是需要复杂的后处理。因此,多步逆合成在实际的化学合成中可能更具意义。

为此,山东大学的魏乐义和电子科技大学的邹权课题组共同开发了 RetroExplainer。这一算法能够基于深度学习进行逆合成预测,同时兼顾算法的可解释性和可行性。RetroExplainer 在几乎 12 个基准数据集中的表现优于其他算法,提出的合成路线中 86.9% 的反应得到了文献的验证。这一成果已发表于「Nature Communications」。

在这里插入图片描述

这一成果已发表于「Nature Communications」

论文链接:

https://www.nature.com/articles/s41467-023-41698-5

关注公众号,后台回复「逆合成」获取完整论文 PDF

实验过程

算法构建模块 + 子网格

整个逆合成分析过程包括 4 步:分子的图表编码、多任务学习、决策、多步合成路线预测。

RetroExplainer 主要包括 4 个模块:多感知多尺度图 Transformer (MSMS-GT)、动态自适应多任务学习 (DAMT)、可解释的决策模块及路线预测模块。

在这里插入图片描述

图 3:RetroExplainer 及其模块示意图

a:RetroExplainer 流程示意图;

b:MSMS-GT 架构;

c:DAMT 算法示意图;

d:与反应机制类似的决策过程。

MSMS-GT 通过化学键嵌入和原子的拓扑嵌入捕获重要的化学信息。编码后的信息通过多头注意力 (Multi-Head Attention) 机制融合成分子向量。

在 DAMT 模块中,分子信息被同时输入至反应中心预测 (RCP)、离去基团匹配 (LGM, Leaving Group Match) 和离去基团连接 (LGC, Leaving Group Connect) 子网格中。

RCP 会识别化学键和原子相邻氢原子数量的变化,LGM 会将产物中的离去基团与数据库中的匹配,LGC 会将离去基团和产物残基相连。

决策模块会基于 5 个逆合成动作和决策曲线的能量分数 (E, Energy Score),将产物转换为反应物,反向模拟分子组装过程。

最终,使用启发式树搜索算法找到高效的产物合成路线,同时确保反应物的可得性。

性能对比USPTO 基准数据集

为验证 RetroExplainer 的性能,研究人员基于美国专利及商标局 (USPTO) 收录的化学反应,与其他 21 种逆合成算法进行了对比,评价指标为 top-k 准确率。

在这里插入图片描述

表 1:RetroExplainer 与其他算法的性能对比 (USPTO-50K)

可以看到,基于 USPTO-50K 数据集,在 8 项评价指标中,RetroExplainer 有 5 项优于其他算法,其平均准确率位列第一。虽然 RetroExplainer 在 top-10 准确率中不及 LocalRetro,但二者的差距仅 1%。

为消除相似分子带来的影响,研究人员用谷本相似性 (Tanimoto Similarity) 对数据进行了重划分,并与 R-SMILE、LocalRetro 这两种准确率最高的算法进行了对比。

在这里插入图片描述

图 4:RetroExplainer 与 R-SMILES 和 LocalRetro在不同数据集的性能对比

结果中可以看到,RetroExplainer 在大多数数据集中有更好的表现,体现了其稳定性和适应性。

随后,研究人员在更大规模的 USPTO-MIT 和 USPTO-FULL 数据集进行了算法性能对比。RetroExplainer 各项指标均优于其他算法,且与其他算法差距更大,说明 RetroExplainer 在大规模的数据分析中更有潜力。

在这里插入图片描述

表 2:RetroExplainer 与其他算法的性能对比(USPTO-MIT 及 USPTO-FULL)

可解释性决策可视化

受双分子亲核取代反应 (SN2) 的启发,研究人员基于深度学习引导的分子组装设计了可解释的逆合成预测过程。决策过程包括 6 个阶段:原产物 §、离去基团匹配 (S-LGM)、初始化 (IT)、离去基团连接 (S-LGC)、反应中心化学键变化 (S-RCP)、氢原子数变化 (HC)。

基于每个阶段对最终决策的贡献,DAMT 的子网格会为每个阶段生成一个能量分数 (E)。

具体流程如下:

1、P 阶段将各阶段的 E 初始化为 0;

2、S-LGM 阶段,根据 LGM 模块的预测概率,选择离去基团;

3、将 S-LGM 阶段选择的离去基团的 E 与 RCP、LGM 模块预测的响应事件概率相加,得到 IT 阶段的能量;

4、S-LGC 和 S-RCP 阶段,基于动态规划算法,扩展搜索树中的所有可能节点。选择概率大于预设阈值的事件,同时将 E 固定;

5、调整每个原子的氢原子数和形式电荷,确保得到的分子图符合化合价规则,并计算最终 E。

在这里插入图片描述

图 5:RetroExplainer 的决策过程

a:RetroExplainer 对 2 个预测结果的搜索线路;

b:排名前 12 预测路线的决策曲线;

c:6 种代表合成路线的结构变化过程。

基于 E 的变化绘制决策曲线,就能对 RetroExplainer 的决策过程进行分析,找出 RetroExplainer 的预测错误。

如图所示,产物的正确合成路线应为胺的脱保护反应,然而 RetroExplainer 将其排在第 6,排名第 1 的是 C-N 偶联反应。分析发现,HC 阶段中 RetroExplainer 倾向于增加胺的氢原子数,导致了这一差别,说明 RetroExplainer 在 HC 阶段对相似结构的分子可能存在同样的误判。

通过对比 RetroExplainer 排名第 1 和第 2 的反应,研究人员发现 E 可能与反应的难度有关。虽然反应 1 中 I:33 和 C:26 的连接不利于能量的减少,然而在 C:26 处连接一个氢原子需要前一反应 13 倍的能量。同时 I:33 的引入,弱化了 C-N 偶联反应面临的选择性问题。

同时,空间位阻也会对 RetroExplainer 的预测结果产生影响。对比排名第 4 和第 21 的反应,它们的分子结构一致,但离去基团连在了对称的 N 上,导致了 E 的差别。

路径规划多步预测合成路线

为提高 RetroExplainer 预测的实际性,研究人员将其与 Retro 算法相结合,将后者的单步预测,替换为多步预测。

以支气管扩张剂普罗托醇 (Protokylol) 为例,RetroExplainer 为这一产物设计了 4 步的合成路线。随后,研究人员对这 4 步反应进行了文献调研,以探究其可行性。

在这里插入图片描述

图 6:RetroExplainer 提出的 4 步合成普罗托醇的路线

图中蓝色文本是参考文献中记录的相似反应,红色部分为 RetroExplainer 的决策过程。

虽然很多反应没有找到完全一致的参考,但他们找到了相似的高产率反应。此外,RetroExplainer 为 101 个案例设计了 176 个实验,其中 153 个可以在 SciFinder 中找到相似的反应。

上述结果说明,RetroExplainer 对逆合成的预测优于目前其他算法。同时,RetroExplainer 决策透明,具有可解释性,且对反应进行多步规划,可行性更强。RetroExplainer 有望为有机化学逆合成研究提供强力工具。

性能 vs. 可解释性,矛盾的 AI

可解释性 (Explainability) 是在各个场景应用 AI 的关键因素。随着 AI 在无人驾驶、医疗诊断、金融保险等行业的不断发展,AI 的决策过程显得愈发重要,也面临着越来越多的实践、社会乃至法律问题。

同时,可解释性能够帮助用户理解、维护和使用 AI,发现并理解 AI 应用领域的新概念。可解释性还体现了结果的可行性,并告诉用户这一决策的收益是最大的。

在这里插入图片描述

图 7:问题解决过程中的解释环节

然而,模型性能和模型的可解释性是困扰 ScienceAI 的一个很大问题,如果模型性能好、具有很好的跨测试集鲁棒性,那可能用高维深度特征效果会更好,但它不具备任何物理意义,也就是我们常说的「偏科研的可解释性大都很差」。

相反,如果用好解释的特征,虽然在物理上非常具有可解释性,但是实际模型表现会有很大的数据依赖性,换一个数据集模型性能就会下降。

二者的矛盾到现在都还没有一个很好的方式统一,但在本研究中,研究人员将 AI 的决策过程分步可视化,让使用者清晰地了解到各种预测结果在各阶段的得分变化,理解了 AI 的决策过程,也便于开发者进行模型的优化。

随着可解释 AI 的不断发展,人们对于 AI 的理解会更加深入,AI 的决策过程也会更加易懂。未来,人机之间的互动将不断增加,交互门槛进一步降低,AI 将在更多场景中投入使用,让生活更加便捷智能。

参考链接:

[1]http://www.chem.ucla.edu/~harding/IGOC/R/retrosynthesis.html

[2]https://zh.wikipedia.org/zh-cn/简化分子线性输入规范

[3]https://wires.onlinelibrary.wiley.com/doi/10.1002/widm.1391

相关文章:

山东大学开发可解释深度学习算法 RetroExplainer,4 步识别有机物的逆合成路线

逆合成旨在找到一系列合适的反应物,以高效合成目标产物。这是解决有机合成路线的重要方法,也是有机合成路线设计的最简单、最基本的方法。 早期的逆合成研究多依赖编程,随后这一工作被 AI 接替。然而,现有的逆合成方法多关注单步逆…...

使用antv x6注册vue组件报错,TypeError: Object(...) is not a function (teleport.js:3:23)

typeError: Object(…) is not a function at …/…/…/node_modules/.pnpm/antvx6-vue-shape2.1.1_antvx62.15.2vue2.7.10/node_modules/antv/x6-vue-shape/es/teleport.js (teleport.js:3:23) 点击定位到报错的位置为 reactive应该是vue 2.7.*版本才有的 由于项目在index.ht…...

Python开发利器KeymouseGo,开源的就是香

1、介绍 在日常工作中,经常会遇到一些重复性的工作,不管是点击某个按钮、写文字,打印,还是复制粘贴拷贝资料之类的,需要进行大量的重复操作。按键精灵大家想必都听说过,传统的方式,可以下载个按…...

什么是 Node.js

目标 什么是 Node.js,有什么用,为何能独立执行 JS 代码,演示安装和执行 JS 文件内代码 讲解 Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码,因为这个特点,它可以用来编写服务器后端的应用…...

08-flex布局

flex布局 1.定位布局- 定位流分类1.1.静态定位1.2.相对定位1.3.绝对定位1.4.固定定位1.5.粘滞定位1.6.z-index - 1.1.静态定位( Static positioning)- 1.2.什么是相对定位?( Relative positioning )- 相对定位注意点- 相对定位应…...

HTML5和HTML的区别

HTML5的概念分为广义和狭义两种。 狭义的概念HTML5是指HTML语言的第5个版本,而HTML是指5之前的版本。 广义的概念HTML5是指由HTML5、CSS3、JavaScript所组成的开发环境。而HTML是指HTML语言本身。 1、HTML5与HTML狭…...

【Amazon】跨AWS账号级别迁移弹性IP地址操作流程

文章目录 一、实验背景二、适用场景三、实验目标四、实验说明五、实验步骤1. 登录AWS控制台[源账户]2. 启用弹性 IP 地址转移[源账户]3. 接受转移的弹性 IP 地址[目标账户]4. <可选>禁止转移弹性IP地址[源账户] 六、结果验证七、注意事项八、附录1. 多弹性IP地址多AWS账号…...

2023-python pdf转换为PPT代码

from pdf2image import convert_from_path from pptx import Presentation from pptx.util import Inches import os# 用户输入PDF文件路径 pdf_file_path input("请输入PDF文件的路径&#xff1a;")# 提取文件名&#xff08;不包括扩展名&#xff09;作为PPT文件名…...

学会场景提问,让AI“小助手”为我所用

文章目录 一、故事叙述提问举例 二、产品描述提问举例 三、报告撰写提问举例 四、邮件和信件撰写提问举例 五、新间稿和公告撰写提问举例 六、学术论文和专业文章撰写提问举例 我们知道AI技术不仅能够自动生成文章和内容&#xff0c;还可以根据我们的需求提供创意灵感和解决问题…...

前端,CSS,背景颜色跟随轮播图片改变而改变(附源码)

首先看效果&#xff01; 比如轮播图时红色&#xff0c;那么背景的底色也是红色&#xff0c;轮播图时黄色&#xff0c;背景的底色也是黄色&#xff0c;这就是根据轮播图的图片切换&#xff0c;而改变背景颜色随轮播图颜色一致 话不多说&#xff0c;直接上代码&#xff01;非常简…...

对文件夹内的所有图像进行随机调整对比度和应用高斯滤波

import os import random from PIL import Image, ImageEnhance, ImageFilter# 输入和输出文件夹路径 input_folder rE:\深度学习数据集 output_folder rE:\深度学习数据集\对比度、高斯滤波# 确保输出文件夹存在&#xff0c;如果不存在则创建 if not os.path.exists(output_…...

ios上架上传构建版本的windows工具

ios上架的必要步骤&#xff0c;是将打包好的二进制ipa文件&#xff0c;上传到app store的构建版本里&#xff0c;苹果并没有提供上传构建版本的工具&#xff0c;这里我介绍下windows下上传构建版本的方案。 下面说下上传的基本步骤&#xff1a; 第一步&#xff0c;上传前要先…...

arcgis js api 4.x加载geoserver发布的地方坐标系(自定义坐标系)的wms服务

问题描述&#xff1a;之前研究过arcgis js api 4.x加载arcgis server 发布的地方坐标系的wms服务&#xff0c;后来研究出来能正常加载了&#xff0c;想了解的可以看我之前的博客。但是一直困于加载geoserver发布的地方坐标系的wms服务&#xff0c;一直都是用的WMSLayer这个调用…...

人工智能的发展方向:探索智能未来的无限可能

原创 | 文 BFT机器人 人工智能&#xff0c;简称AI&#xff0c;是一门专注于研究计算机如何能像人类一样思考、学习和解决问题的科学。它的创造初衷是构建一个智能系统&#xff0c;能模仿、模拟甚至实现人工智能的各种功能和行为&#xff0c;随着科技的持续进步&#xff0c;人工…...

【23秋软工第7周作业】项目选题

一、如何提出靠谱的项目建议&#xff0c;参见邹欣老师的博客&#xff1a;http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html 二、选题来源指导&#xff1a; 有创意和独创性的小项目 跟智能数据处理相关 候选题目可以参见课程主页 三、具体汇报任务&#xff1a; …...

谷歌云的利润增长才刚刚开始

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;自从Google Cloud(谷歌云&#xff09;今年开始盈利以来&#xff0c;投资者都在怀疑这种盈利能力能否持续下去。 &#xff08;2&#xff09;虽然微软Azure目前在全球的人工智能竞…...

【Golang】简记操作:Centos安装、卸载、升级Golang运行环境

目录 安装 1、根据实际需求选择合适的golang版本 如下图&#xff0c;选择合适的版本&#xff0c;右键复制链接 2、在Centos选择合适的目录下载golang的源文件 3、解压golang的源文件&#xff0c;解压完成即可执行go命令 4、设置golang的全局环境变量&#xff08;/etc/pr…...

开启生成式AI的探索之旅,亚马逊云科技分享生成式AI热门案例

现今&#xff0c;生成式AI为企业争先讨论的热门话题&#xff0c;上云出海为企业转型的重中之重。无论你是行业新贵还是中小企业&#xff0c;探索新的模式、创新迭代业务都是不容忽视的重点&#xff0c;下面就来介绍几个亚马逊云科技帮助企业创新的案例。 开启生成式AI的探索之旅…...

【Python机器学习】零基础掌握IsolationForest集成学习

如何有效地识别异常数据点? 在日常工作和生活中,经常会遇到需要从大量数据中找出异常或者“不一样”的数据点的情况。比如在金融领域,怎样从数以百万计的交易记录中准确地找出可疑的欺诈交易?又或者在电商平台,如何从海量的商品评论中找出那些刷好评或刷差评的异常数据?…...

GNN图神经网络入门

1.为什么会提出图神经网络&#xff1f; 答&#xff1a;为了处理图Graph这种特殊的数据结构。 2.为什么要与神经网络搭上关系&#xff1f; 答&#xff1a;利用神经网络能够拟合任意函数的能力&#xff08;或者理解为强大的为特征变换能力&#xff09;。 3.图神经网络的最终目的是…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...