概览
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 训练到解码工作流程,并检查生成的反应物预测结果。
- 拟议评估:检查提取的原子和键模板清单,研究训练反应如何以局部方式表示。
- 拟议评估:在数据集和模型设置保持不变的情况下,比较采用考虑立体化学和不考虑立体化学约定时的预测评分。
使用方式
- 阅读官方 README,了解工作流程和依赖要求;规划使用或再分发前,请查阅仓库许可。
- 获取仓库,按照文档中的环境设置操作,并使用
./data中的 README 查找原始 USPTO-50K 或 USPTO-MIT 数据。请单独核查数据集的使用权限。 - 遵循预处理说明:使用
Extract_from_train_data.py提取局部模板,然后使用Run_preprocessing.py将模板分配给反应。训练前检查生成的模板和数据集划分 CSV 文件。 - 按照训练部分的说明,使用所选数据集运行
Train.py。对于文档所示的 USPTO_50K 示例,检查点位置为LocalRetro/models/LocalRetro_USPTO_50K.pth。 - 按照测试和解码部分的说明运行
Test.py和Decode_predictions.py。检查原始输出和解码后的输出;如需进行拟议评估,请记录数据集、检查点和立体化学评分约定,不要假定这两种指标可以互换。