社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

Nat. Commun. | 基于分子组装的可解释深度学习方法实现精准逆合成预测以及路径规划

DrugAI • 1 年前 • 297 次点击  

者 | 王豫

编辑 | 王宇哲

校对 | 王宇哲

逆合成是指将复杂的产物分子通过一步步分解,最终得到一组廉价易得的反应物分子的过程。逆合成预测对于药物研发至关重要,不仅能够降低药物的制造成本,而且能够有效解决药物分子生产途径单一的问题。近年来随着化学反应数据的积累,利用人工智能技术,产生许多基于数据驱动的逆合成方法,使得化学家在设计合成实验时节省了大量成本并提升了合成效率。然而,基于数据驱动的逆合成预测仍然极具挑战,主要体现在: (1)现有模型缺乏考虑表征学习算法与化学反应数据的适应性,使得分子关键表征学习不充分,导致模型预测精度不足;(2)现有方法的可解释性不足,使得模型决策过程不透明,因此难以评估预测结果可靠性,限制了其在药物分子合成路线设计的应用。

近日,山东大学魏乐义教授团队和电子科技大学邹权教授团队合作在国际权威期刊Nature Communications上发表了题为“Retrosynthesis prediction with an interpretable deep-learning framework based on molecular assembly tasks”的研究成果。在该工作中,作者提出了RetroExplainer,一种基于分子组装的深度学习方法如图1所示),能够实现精准逆合成可解释预测以及路径规划。作者提出三个深度学习模块:多尺度多语义的图Transformer用于学习广义分子特征表示,利用动态自适应多任务学习和结构感知对比学习,提升了模型关键特征表示学习能力。此外,作者提出了一个基于能量的分子组装过程,通过模拟化学反应的发生机制,使得模型能够提供透明的决策和可解释的逆向合成预测,赋予模型良好的可解释性。为了评估模型在合成路线规划中的可靠性,作者预测了101种复杂药物分子的合成路线,结果表明模型预测出86.9%的单步反应与文献报道的反应一致,验证了模型在多步逆合成路线规划中的潜在应用价值。

图 1. a. RetroExplainer 的流程。整个过程划分为四个不同的阶段:(1) 分子图编码;(2) 多任务学习;(3)决策;(4) 预测或多步路径规划。b. 多感知和多尺度图Transformer(MSMS-GT)编码器和逆合成评分函数的架构。作者考虑将多语义的化学键嵌入与局部和全局感受野整合在一起,在自注意力执行阶段将它们作为注意力机制的偏差项混合在一起。在获得共享特征后,采用了三个不同的模块来评估五个逆合成事件的概率。这些模块包括:反应中心预测器(RCP),其中包括一个键变化预测器(RCP-B)和一个氢变化评估器(RCP-H);离去基团匹配器(LGM),并使用额外的对比学习策略进行增强;以及离去基团连接器(LGC)。c. 动态自适应多任务学习(DAMT)算法。d. 作者设计的透明决策过程。该过程分为六个阶段,由五个能量评估器进行评估,得出能量分数。

RetroExplainer在几乎所有12个大规模基准数据集上的性能优于现有方法,包括:三个常用数据集(USPTO-50K、USPTO-FULL和USPTO-MIT),以及9个由作者基于USPTO-50K分子相似性拆分方法构建的数据集,表明了方法的有效性以及鲁棒性。其次,作者还设计实验证明了RetroExplainer重排序能力。具体做法,将现有逆合成模型预测的前50组反应物,使用RetroExplainer评估这些预测结果的能量值。如图2所示,结果表明现有方法的预测结果经过重排序的预测准确率有了显著提高。

图 2. RetroExplainer 的重排序性能。箱型图描述了与三种标准逆合成模型相比,RetroExplainer在 top-1、-3、-5、10 准确率和百分位数平均排名方面的重新排名结果:每项结果均来自使用不同随机种子进行的三次重复实验。三个数据点的最小值、最大值和中值分别由每个方框内的下须、上须和中心线表示。

RetroExplainer可以取得优异的性能,还得益于其数据建模方法。为了指导三个评分模块,RetroExplainer的目标是同时学习了一个联合分布:针对产物分子图的时反应中心和离去基团的联合条件概率分布,以及确定离去基团和产物分子时之间连接的条件分布。前一种分布通过联合分布额外考虑了离去基团对反应中心的影响,这赋予了模型更多的信息。这一改进还提高了模型的泛化能力,尤其是在涉及多个反应中心和离去基团的情况下,同时避免了因多个离去基团和多反应中心问题而产生的过度迭代过程。此外,由于一些反应存在多个离去基团,传统的人工编码方法在处理离去基团与当前合成子之间的联系时面临挑战。在该工作中作者通过学习这些连接的条件分布,使得RetroExplainer 可以有效地适应更大、更复杂的数据集。

图3. 模型决策过程中的可解释性研究。a. 两种预测的搜索路线,包括离去基团和非离去基团的反应。该路线包括初始输入(P)、离去基团匹配(S-LGM)、能量分数初始化(IT)、离去基团与合成子的连接(LGC)、反应中心预测(RCP)、基于根据价键规则的附着氢数目的调整(HC)共六个阶段。b. RetroExplainer预测前12名反应物的决策曲线。相同的反应模式有相同的能隙。曲线展示了真实值被模型排为第六位的决定阶段是S-RCP。这意味着训练集更偏向于亚氨基在苯环上的取代反应来合成与目标产物类似的分子结构。c. 九个具有代表性的子结构归因实例。这赋予了更加细粒度的子结构级别的定量归因。

此外,作者还从可解释性角度分析了这种基于能量函数的分子组装过程带来的优越性。结果表明:该过程不仅可以提供透明的决策和可解释的逆合成预测,还能方便的进行宏观(决策曲线)或微观(子结构级别)的定量归因。前者有助于理解模型做出的"反事实 "预测,从而发现数据集中的潜在偏差,后者则可以提供更细化的参考(如某个化学键断裂的置信度),从而给研究人员设计定制的反应物提供指导。

有趣的是,作者分析证明了RetroExplainer能够学习到符合文献的有机化学知识。通过对比排名前 1 和前 2 的预测结果(图 3c 中的分子 1 和分子 2),可以发现,能量得分可能与反应的难度(如选择性)有关。其论据是,虽然 I:33 和 C:26 之间的连接不利于能量的降低,但在 C:26 处加入一个氢原子所增加的能量大约是前者的 13 倍(13.5 和 1.02)。作者通过有机化学文献搜索发现这个结论与之前的研究一致,C-N 交叉偶联反应通常涉及特定催化剂和选择性问题。此外,I:33 会削弱选择性问题,这与分子 1 的预测能量低于分子 2 的预测能量这一事实相吻合。结果表明:在未提供这类知识的前提下,作者提出的方法可以只通过训练集中的反应物信息学习到这种化学知识。更多的分析可以通过原文找到。

在多步路径规划方面,如图4所示 RetroExplainer 设计了四步合成 protokylol(种 β 肾上腺素能受体激动剂)的路线,其中决策过程的能量得分说明了支持 RetroExplainer做出相应预测的关键子过程。为了进一步证明其实用性,作者进行了相关文献检索为每个反应步骤寻找证据,结果表明能够找到与反应相匹配的高产率类似反应。此外,作者还提供了 101 个包含 176 个单步的路径规划案例,其中 153个单步预测可通过 SciFindern 引擎搜索找到,并具有类似的反应模式。以上结果验证了模型在多步逆合成路线规划中的潜在应用价值。

图 4. 利用 RetroExplainer 对protokylol进行了逆合成规划。图中展示了四步合成 protokylol 的路线。在每个步骤中,蓝色部分的文字强调了支持该反应的文献证据,而红色部分则描述了我们模型的决策过程。

总结来说,该工作所报道的基于分子组装与深度学习的逆合成预测新方法,探索了提升逆合成预测可解释性的新途径,可以为化学合成提供计算指导、节省开销、以及提高效率,有助于在实际合成路线规划中进行推广应用。


论文链接

Yu Wang, Chao Pang, Yuzhe Wang, Junru Jin, Jingjie Zhang, Xiangxiang Zeng, Ran Su, Quan Zou*, and Leyi Wei*. Retrosynthesis prediction with an interpretable deep-learning framework based on molecular assembly tasks. Nat Commun 14, 6155 (2023). https://doi.org/10.1038/s41467-023-41698-5

论文代码

https://github.com/wangyu-sd/RetroExplainer



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/162735
 
297 次点击