跳转到正文

LocalRetro

Shuan Chen / Yousung Jung's group at KAIST (now in SNU)

LocalRetro 是一个使用局部反应模板进行逆合成预测的研究实现,提供模板提取、模型训练、测试以及解码预测反应物的工作流程。

条目更新 ·

概览

LocalRetro 使用局部反应模板实现逆合成预测。README 将其开发归功于 KAIST(现任职于 SNU)的 Yousung Jung 团队,并链接至论文“Deep Retrosynthetic Reaction Prediction using Local Reactivity and Global Attention”。文档所述用途是基于数据集的研究工作流程:从反应训练数据中提取模板、训练预测模型,并将测试集预测解码为候选反应物。

该工作流程从原始 USPTO-50K 或 USPTO-MIT 数据开始,数据下载说明请参阅仓库的数据 README。预处理首先提取原子和键模板及模板信息;如果存在相关类别文件,还会生成反应类别映射。第二阶段将这些模板分配给原始数据,并写出训练、验证、测试和带标签数据的 CSV 文件。训练会生成模型检查点;测试会生成原始预测文件,之后由单独的解码步骤将其转换为反应物输出,其中包括特定类别的输出位置。

README 将 Python、Numpy、PyTorch、RDKit、DGL 和 DGLLife 列为依赖项,并提供示例环境设置。这些说明是来源中描述的依赖要求,并不能证明当前兼容性。来源摘录记录的是基于数据集的训练和测试,而不是交互式预测服务或自定义分子接口。摘录还区分了考虑立体化学和不考虑立体化学的评估指标,因此,任何拟议的复现都应明确评分约定。仓库代码采用非商业、相同方式共享许可;本条目并未确定外部数据集或模型权重的单独使用权限。

主要功能

  • 从训练数据中提取局部原子和键反应模板,同时提取模板信息,并按条件生成反应类别映射。
  • 将提取的模板分配给原始反应数据,并生成预处理后的训练、验证、测试和带标签数据 CSV 文件。
  • 提供特定于数据集的训练工作流程,并保存 LocalRetro 模型检查点。
  • 运行测试集预测,并保存供后续单独解码步骤使用的原始预测结果。
  • 将原始预测解码为候选反应物,并提供标准和特定类别的输出位置。
  • 记录考虑立体化学和不考虑立体化学的评估约定,以及对原子对函数和激活函数的更新。

使用场景

  • 拟议评估:复现文档所述的 USPTO-50K 或 USPTO-MIT 训练到解码工作流程,并检查生成的反应物预测结果。
  • 拟议评估:检查提取的原子和键模板清单,研究训练反应如何以局部方式表示。
  • 拟议评估:在数据集和模型设置保持不变的情况下,比较采用考虑立体化学和不考虑立体化学约定时的预测评分。

使用方式

  1. 阅读官方 README,了解工作流程和依赖要求;规划使用或再分发前,请查阅仓库许可。
  2. 获取仓库,按照文档中的环境设置操作,并使用 ./data 中的 README 查找原始 USPTO-50K 或 USPTO-MIT 数据。请单独核查数据集的使用权限。
  3. 遵循预处理说明:使用 Extract_from_train_data.py 提取局部模板,然后使用 Run_preprocessing.py 将模板分配给反应。训练前检查生成的模板和数据集划分 CSV 文件。
  4. 按照训练部分的说明,使用所选数据集运行 Train.py。对于文档所示的 USPTO_50K 示例,检查点位置为 LocalRetro/models/LocalRetro_USPTO_50K.pth。
  5. 按照测试和解码部分的说明运行 Test.py 和 Decode_predictions.py。检查原始输出和解码后的输出;如需进行拟议评估,请记录数据集、检查点和立体化学评分约定,不要假定这两种指标可以互换。

相关资源

AiZynthFinder 是一款 Python 逆合成规划工具包,使用神经网络引导的搜索,从目标分子出发,提出通向已配置库存中前体的合成路线。

开源Python

逆合成

RetroXpert 是一种两阶段逆合成研究实现:先预测产物的键断裂,再使用基于 OpenNMT 的模型从合成子生成反应物。

开源Python

逆合成

相关指南

逆合成

规划逆合成工具评估

构建范围明确的逆合成规划、单步预测和原子映射评估,明确输入、评分规则和专家审查,同时避免将生成路线视为经验证的实验室操作规程。

许可

分别审阅代码、模型权重与数据许可

为化学 AI 工作流建立逐组件许可记录,将软件、模型权重、数据集和托管服务分别处理,并明确标示缺失证据与未解决的条件。