前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Nat. Mach. Intell. |通过反应描述语言连接化学与人工智能

Nat. Mach. Intell. |通过反应描述语言连接化学与人工智能

作者头像
DrugAI
发布于 2025-05-17 06:33:18
发布于 2025-05-17 06:33:18
1230
举报
文章被收录于专栏:DrugAIDrugAI

2025年5月13日,中国科学院上海药物研究所郑明月团队在Nature Machine Intelligence杂志在线发表了题为“Bridging Chemistry and Artificial Intelligence by a Reaction Description Language”的研究论文,报道了一种名为ReactSeq的化学反应描述语言,该语言可以编码化学反应中的分子编辑操作,使自然语言处理(NLP)模型在逆合成预测、反应表征和检索、交互问答等方面表现得更为出色。

背景

以大语言模型(LLMs)为代表的人工智能技术,在自然语言处理方面取得了前所未有的突破,正在深刻影响科学研究的范式。在生命科学领域,语言模型(LMs)现已被用于挖掘蛋白质和基因序列中的隐含信息,并取得了显著成果。在化学与药物研发领域,处理化学分子与反应的“化学语言模型”(CLMs)也逐渐兴起。

与自然语言、蛋白质或基因不同,化学分子并不具备天然的序列型表示。CLMs依赖化学家定义的分子线性编码来学习和生成分子结构。目前最常用的分子线性编码是简化分子线性输入系统(SMILES)。近年来,为了提升CLMs在特定任务中的表现,研究人员也设计了一些新的分子线性编码语言,例如,SELFIES,t-SMILES,和PSMILES等。

然而,这些分子线性编码语言均用于描述化学分子的静态结构,无法明确表达化学中原子与键的变化过程。这限制了语言模型在化学反应预测与表示中的应用。目前,用于化学反应预测的语言模型(包括正向合成与逆合成预测)通常直接将产物和反应物的线性表示相互转换,在可解释性与交互性方面存在不足(图1,顶部)。此外,尽管预训练语言模型在多种序列数据的表示学习方面已展现强大能力,但其在化学反应表示方面的进展仍相对有限。

因此,为推动语言模型在化学领域的应用,研究团队提出了一种名为ReactSeq的反应描述语言(图1,底部)。ReactSeq受逆合成分析过程的启发,定义了目标产物的结构及其转换为反应物所需的分子编辑操作(MEOs)。这些MEOs包括化学键的断裂与变化、原子电荷的改变以及离去基团(LGs)的添加等操作。在基于ReactSeq的逆合成语言模型中,反应物不是从零开始逐个生成,而是通过一系列MEOs由产物结构转化而来。这种方式确保了预测的反应物与产物之间具有精确的原子映射,从而提高了模型的可解释性。使用ReactSeq,即便是基础的Transformer模型也能在逆合成预测中达到领先水平。此外,ReactSeq中的MEO采用显式token表示,可支持人类专家通过提示词对模型进行引导和上下文提示(In-Context Prompting)。结果显示,专家提示显著提升了模型性能,甚至可引导探索新颖的化学反应。MEO token的嵌入表示还可作为通用、可靠的反应向量表示。这种自监督的表示能够自然地区分反应类型并评估其相似性,从而促进相似反应的检索、实验流程的推荐以及反应收率的预测。

图1

. 基于SMILES的传统反应预测语言模型与基于ReactSeq的方法之间的对比。

结果与讨论

ReactSeq概述

ReactSeq由两个部分组成:头部和尾部(图2a)。头部包含目标分子的结构以及其原子和化学键的变化信息,描述了如何将目标分子转化为相应的合成子(Synthons)。尾部包含离去基团(LGs)的结构及其与合成子的连接方式,描述了如何将合成子补全为反应物。在标准SMILES中,双键和三键的标记是可见的,而单键的标记是隐藏的。然而,通过使用Explicit Bond SMILES(图2b),这些隐藏的单键也可以被显式标记。通过用MEO token(如用感叹号“!”表示断裂一个键)替换SMILES中的键标记,得到了ReactSeq的头部,它记录了化学键的变化与断裂。在某些反应中,目标分子在逆合成过程中不涉及重原子之间的键断裂或变化,而是直接连接到LGs。对于这类情况,首先将原子标记转换为显式氢形式,例如将“O”变为“[OH]”,然后,为其添加对应的MEO token(“~”)。此外,ReactSeq中还定义了手性、电荷和顺反异构体的变化方式。

为了获得ReactSeq的尾部,首先识别目标分子中可能连接LGs的原子,即附着点,包括直接连接LGs的原子或涉及键断裂与还原的原子。每个附着点的LGs被包含在尖括号中,并根据其连接附着点的原子索引排序。通过这些步骤,可以获得一个标准的头到尾的ReactSeq,其与目标分子的SMILES高度对齐。

图2.

ReactSeq示意图。

(a)ReactSeq描述在逆合成中MEOs的代表性示例,包括断键、键类型变化、与离去基团连接以及手性变化等;(b)对SMILES中单键对应的隐藏标记的可视化。

ReactSeq提升逆合成预测性能

为了展示ReactSeq的应用,研究团队首先将其用于逆合成预测,所用模型为未作任何修改的标准Transformer。表1展示了该方法与其他方法在USPTO-50k数据集上的全面比较。无论是否提供反应类型,基于ReactSeq的方法在所有情况下均优于其他方法。

该方法采用两阶段逆合成推理策略,首先识别反应中心,然后补全合成子,分别对应ReactSeq的头部和尾部部分。尽管许多基于图编辑的方法(如G2Gs、RetroXpert、GraphRetro)和序列方法RetroPrime也采用类似策略,但它们在Top-k(k ≥ 3)准确率上表现不佳。这可能是由于每个阶段采用了不同的模型,导致信息流中断,误差积累。相比之下,ReactSeq将两个阶段整合在一个序列中,使得模型可端到端顺序处理两个任务,从而实现了更高的top-k准确率。

研究团队还在更大规模的USPTO-MIT数据集上评估了该方法的性能,Top-1、Top-3、Top-5和Top-10的预测准确率分别为60.5%、78.5%、83.3%和87.6%,显示出该方法在大规模数据集上的良好适用性。此外,还在真实世界的反应数据集ELN上进行了外部评估,模型同样取得了先进的性能,进一步验证了其出色的泛化能力。

表1.

基于ReactSeq的模型与其他模型在USPTO-50k数据集上的Top-k准确率对比。

ReactSeq支持可解释的逆合成预测

传统的序列逆合成方法直接将产物SMILES转换为反应物SMILES,未能描述从产物到反应物的具体转化过程。ReactSeq通过识别反应中心与补全合成子两个阶段解决了这一问题。

基于ReactSeq模型在反应中心识别中Top-1准确率为73.1%,在合成子补全中为77.6%,均显著优于现有方法。一些基于序列方法(如Retroformer)利用注意力权重指示反应中心并进行原子映射,但注意力机制提供的解释无法保证与模型实际执行的转化一致。相比之下,ReactSeq无需修改模型架构,即可使语言模型准确追踪整个反应过程中原子与键的变化,为可解释的逆合成预测提供了更简洁可靠的方案。

图3a展示了模型使用beam search生成ReactSeq的过程,总概率为各步预测概率的乘积。值得注意的是,总预测概率主要受MEO tokens影响,因为这些tokens表示产物分解与合成子补全的动态过程,而与静态结构相关的tokens预测概率较稳定。相比之下,基于SMILES的模型的总预测概率受多个token影响,显示出更复杂的决策过程。此外,ReactSeq的头部与尾部预测概率还能用于评估模型在每个阶段的预测置信度,随着模型置信度提升,预测准确率也明显提高(图3b)。

图3.

基于ReactSeq的可解释逆合成预测。

(a)推理过程示意。P1和P2分别表示反应中心识别和合成子补全的预测概率,Pt表示最终预测结果的总概率。(b)不同任务中模型预测置信度与其准确率之间的关系。

ReactSeq支持基于提示的反应预测

在人类专家进行逆合成分析时,通常拥有关于反应类型与位置的先验知识。通过提示词(prompts)注入这些专家知识往往能引导语言模型生成更准确的预测。此过程中关键挑战是如何用语言表达多样的人类提示。Thakkar等人曾通过在SMILES中标记原子实现提示,但其仅限于表示断键位置,未能编码其他提示类型。

而ReactSeq定义了多种MEO tokens,能够更全面、细致地表达人类提示。为此,研究团队使用ReactSeq训练了一个提示学习模型。如图4a所示,该模型能够处理ReactSeq编码的多种分子编辑提示,并被引导执行特定的反应转化。在USPTO-50k数据集上的实验中,提示学习策略在反应中心识别中达到了96.6%的Top-1准确率,在最终反应物预测中为74.9%,显著优于未使用提示的模型(图4b)。

在逆合成预测之外,ReactSeq在提示引导下还能更有效地探索特定化学反应空间,具有发现新反应的潜力。研究团队通过一项回顾性实验验证了这一点。2019年,Dong等人发现醛类与酮类可作为杂环C-H官能团化的反应物。研究团队对其论文中报道的产物进行了逆合成预测,并通过提示词标明断键位置。结果表明,模型不仅成功预测了Grignard反应、Negishi耦合、Suzuki耦合等常见C-C偶联反应,还在第10个候选中准确预测了醛类与杂环化合物的偶联反应(图4c)。

图4.

基于ReactSeq的提示学习。

(a)使用不同提示进行反应预测的示例。(b)基于提示的模型在合成子预测和反应物预测上的性能。(c)使用基于提示的模型发现新反应的示例。

视频演示:ReactSeq 如何通过提示预测反应

(https://huggingface.co/spaces/Oopstom/ReactSeq)

ReactSeq 促进更优的化学反应表示

除了反应预测任务,研究团队还利用ReactSeq进行化学反应表示学习。具体而言,从逆合成模型中提取了ReactSeq中MEO tokens的嵌入,作为化学反应的表示(称为 ReactSeq_MEO)。图5a展示了基于t-SNE方法对USPTO-50k数据集中的化学反应表示的可视化结果。不同类型的反应在表示空间中被清晰地区分开来,同一类型的反应聚集在一起,并形成更小的子簇。值得注意的是,这些反应类型由人类专家进行分类,这表明该的模型通过对化学反应数据的自监督学习,获得了类似于人类专家的化学洞察力。

研究团队还尝试提取ReactSeq中所有token的嵌入(ReactSeq_all),而不仅限于MEO token。这种做法显著降低了模型性能,说明对于反应类型的表示而言,刻画原子和键的变化是至关重要的,而来自非MEO token的嵌入似乎引入了噪声,从而削弱了表示效果(见图5a)。

图5b展示了一个利用ReactSeq_MEO进行相似反应检索的例子。以图3中Rank-1的预测反应为查询,从训练集中检索出八个最相似的反应。它们全部与查询反应属于相同的类别。检索到的相似反应的实验流程可以为实现该查询反应提供借鉴。为了验证这一点,将该查询反应已报道的实验流程与相似反应1、2、3的实验流程进行了对比。相似反应1和2的实验流程与查询反应完全一致,说明它们可以直接复用。尽管相似反应3的实验流程与查询反应显著不同,但实验证明了其在实现查询反应方面是有效的(图5c)。这些结果验证了基于ReactSeq_MEO的反应表示方法在实验流程推荐方面的实际应用价值。

图5.

化学反应表示及其应用。

(a)t-SNE可视化不同的化学反应表示。类别I至X表示不同类型的化学反应。(b)基于ReactSeq_MEO从训练集中检索与查询反应最相似的反应。其中,d为嵌入表示之间的欧氏距离,SM为基于ECFP分子指纹计算的分子Tanimoto相似度。(c)“相似反应3”的文献实验步骤。

结论

本研究提出了ReactSeq,一种旨在促进语言模型在化学领域应用的反应描述语言。借助ReactSeq,即使是最基础的Transformer结构也能在逆合成预测中超越复杂的先进模型。同时,ReactSeq赋予了模型执行分子编辑操作(MEO)的能力,使其能够逐步将产物还原为反应物,而非从零生成反应物,从而提升了模型的可解释性。

ReactSeq的一大亮点是引入了显式的MEO token,这些token使得人类专家可以通过提示词介入预测过程,构建基于提示的反应预测模型。实验表明,借助人类提示,模型在逆合成预测中的性能显著提升,且展现出发现新反应的潜力。此外,这些token也有助于提取更高质量的反应表示。与聚合整个ReactSeq的表示不同,聚焦于MEO token的嵌入能够产生更真实、更内在的反应表示。结合这一策略与自监督学习机制,研究团队构建了一种通用且可靠的反应表示,广泛适用于反应分类、相似反应检索、反应产率预测和实验方案推荐等任务。

做一个形象的类比,ReactSeq化学语言就像给仅含有 “名词” SMILES 语言加入了 “动词”———它在原有语法基础上进行了拓展,既能刻画分子的静态组成,又能描绘动态的原子与键的变化过程,从而更好地契合化学作为一门研究物质转化的学科需求,也更加适配AI

大语言模型框架。

总之,ReactSeq拓展了化学语言的边界,为自然语言处理模型解决化学反应相关问题赋予了多项涌现的新能力。这一进展不仅为应对许多此前难以解决的难题开辟了新路径,也为构建面向化学的基础人工智能模型奠定了坚实基础。上海药物所博士后熊嘉诚、博士生张玮为本文的共同第一作者。上海药物所郑明月研究员为本文通讯作者。本研究得到了国家自然科学基金、国家重点研发计划、中国科学院战略性先导科技专项、南京大学医药生物技术国家重点实验室开放基金和上海市超级博士后激励计划的资助。

参考资料

Xiong, J., Zhang, W., Wang, Y. et al. Bridging chemistry and artificial intelligence by a reaction description language. Nat Mach Intell, 2025.

https://doi.org/10.1038/s42256-025-01032-8

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrugAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
这应该是最全的K8s-Pod调度策略了
API Server接受客户端提交Pod对象创建请求后的操作过程中,有一个重要的步骤就是由调度器程序kube-scheduler从当前集群中选择一个可用的最佳节点来接收并运行它,通常是默认的调度器kube-scheduler负责执行此类任务。
小小科
2020/06/15
19.1K0
浅入Kubernetes(10):控制节点的部署,选择器、亲和性、污点
在前面的学习中,我们学到了 Deployment 部署,以及副本数(ReplicaSet),但是 Pod 部署到哪个 Worker 节点是随机,即使有 3个 Woker 和设定 3个 副本,不一定每个 Node 刚刚好运行一个 Pod,也可能其中 Node 运行着三个副本。
痴者工良
2021/04/26
8750
【K8S专栏】Kubernetes调度管理
在日常工作中,每个机场都有调度室,用来管理飞机应该从哪里降落,停在什么地方。在Kubernetes也有这样的调度器,主要作用就是将Pod安排到合适的节点上。
没有故事的陈师傅
2022/09/15
6650
【K8S专栏】Kubernetes调度管理
Kubernetes之调度篇
这边肯定会有其他场景也会有对pod的调度有特殊要求,这边只是列举了其中几个情况,对于上述遇到的情况我们需要怎么处理,其实k8s给我们提供了丰富的调度策略来满足我们的需求。下面我们来一一说下这些调度策略。
聂伟星
2020/08/25
1.5K0
Kubernetes 的亲和性污点与容忍
我们在使用k8s过程中经常有这样的需求:我的k8s集群有多台服务器,配置不尽相同。我想把数据库部署到CPU、内存比较好的这几台机;我想把静态承载服务部署到有固态硬盘的机器等;而这些需求,就是我们今天要讲的k8s的调度:
乔达摩@嘿
2023/03/23
7910
Kubernetes 的亲和性污点与容忍
Kubernetes 调度和驱逐
kubectl通过读取集群配置文件 ~/.kube/config 将请求发给apiserver,之后apiserver将创建pod的属性信息写入到etcd中,etcd会响应一个状态给apiserver,保存etcd成功会在控制台显示pod/<pod名称> created,之后调度组件scheduler上线,负责将新的pod分配到合适的节点上,调度之后,将结果响应给apiserver,apiserver再将结果保存到etcd中,kubelet当发现有个pod被绑定到自己的节点上时,就会调用docker的api去创建容器,容器创建之后,docekr会返回一个状态给kubelet,创建成功之后,kubelet再通知apiserver容器状态,之后apiserver再将状态写入到etcd中,之后就可以使用kubelet get pod去查看pod的状态了
匿名用户的日记
2021/12/14
7250
Kubernetes 调度和驱逐
K8s调度策略
在K8s中,调度是指将Pod放置到合适的节点上。调度器通过 K8s 的监测机制来发现集群中新创建且尚未被调度到节点上的Pod。 调度器会将所发现的每一个未调度的Pod调度到一个合适的节点上来运行。
谢公子
2023/02/27
1.1K0
K8s调度策略
8-Kubernetes入门基础之调度器与亲和性介绍
priority 选项 描述: 优先级由一系列键值对组成,键是该优先级项的名称,值是它的权重(非常重要)一般得权重越高即优先级越高,通过算法对所有的优先级项目和权重进行计算得出最终的结果; 这些优先级选项包括:
全栈工程师修炼指南
2022/09/29
7890
Kubernetes (K8S)中深入理解Pods调度
我们部署的 Pod 是通过集群的自动调度策略来选择节点的,默认情况下调度器考虑的是资源足够,并且负载尽量平均,但是有的时候我们需要能够更加细粒度的去控制 Pod 的调度,比如我们希望一些机器学习的应用只跑在有 GPU 的节点上;但是有的时候我们的服务之间交流比较频繁,又希望能够将这服务的 Pod 都调度到同一个的节点上。这就需要使用一些调度方式来控制 Pod 的调度了,主要有两个概念:亲和性和反亲和性,亲和性又分成节点亲和性(nodeAffinity)和 Pod 亲和性(podAffinity)。
王先森sec
2023/10/17
7140
Kubernetes 之集群调度
我们现在有这样一个需求,就是集群中多台服务的配置是不一致的。这就导致资源分配并不是均匀的,比如我们需要有些服务节点用来运行计算密集型的服务,而有些服务节点来运行需要大量内存的服务。而在 k8s 中当然也配置了相关服务来处理上述的问题,那就是 Scheduler。
民工哥
2021/04/21
8060
k8s 服务升级为啥 pod 会部署到我们不期望的节点上??看来你还不懂污点和容忍度
做自动化的同事今天居然问我 k8s 中为什么我部署的 pod 会跑到你们开发的节点上来?我可以去控制它吗?🧐🧐
阿兵云原生
2023/09/27
2880
k8s 服务升级为啥 pod 会部署到我们不期望的节点上??看来你还不懂污点和容忍度
图文并茂带你解读 Kube-scheduler
Hello folks,今天为大家分享一个由 ContainerLabs 出品的关于 Kubernetes Scheduler 的文章。
Luga Lee
2023/02/14
8640
图文并茂带你解读  Kube-scheduler
Kubernetes | 集群调度 - ClusterScheduling
Scheduler 是 Kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。听起来非常简单,但有很多要考虑的问题:
Zkeq
2023/05/14
4600
Kubernetes | 集群调度 - ClusterScheduling
k8s pod调度_调度方式
在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足需求,因为很多情况下,我们想控制某些Pod到达某些节点上,那么应该怎么做?这就要求了解kubernetes对Pod的调度规则,kubernetes提供了四大类调度方式。
全栈程序员站长
2022/09/22
9280
kubernetes高级调度的一些方式
nodeAffinity有两种,优选和必选,其为:preferredDuringSchedulingIgnoredDuringExecution和requiredDuringSchedulingIgnoredDuringExecution。
极客运维圈
2020/03/21
4190
13个鲜为人知的Kubernetes技巧
Kubernetes 具备完整的生态系统,提供了许多功能,可以显著增强容器化应用程序的管理、可伸缩性和安全性。以下是 13 个技巧,每个都详细说明了技巧解释、使用示例、上下文应用以及注意事项。
云云众生s
2024/03/28
1940
Kubernetes Pod详解
Pod中通过共享Network Namespace的方式进行网络的共享,但是如果是以下方式进行Network Namespace共享会有问题:
shysh95
2022/05/24
8300
Kubernetes Pod详解
Kubernetes中资源的管理与调度
不知道有没有小伙伴跟我一样在集群创建应用的时候没有详细计算过自己的资源配比。然后我是看到kubectl top node 一看每个节点还有很多的资源,就直接创建了几个资源配比较高的应用,而且这几个应用是高负载运行的....然后的结果就是集群中好多应用开始崩溃了......
对你无可奈何
2021/06/24
1.5K0
k8s 实践经验(五)pod 详解(2)
在讲解本章之前,我先通过一个故事,来描绘一下 k8s 中 node 和 pod 的爱恨情仇。
看、未来
2022/05/09
6710
k8s 实践经验(五)pod 详解(2)
K8s pod详解
○ 可以在根容器上设置IP地址,其它容器都共享此IP(Pod的IP),以实现Pod内部的网络通信(这里是Pod内部的通讯,Pod之间的通讯采用虚拟二层网络技术来实现,我们当前环境使用的是Flannel)。
大忽悠爱学习
2022/09/27
2.1K0
K8s pod详解
相关推荐
这应该是最全的K8s-Pod调度策略了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档