概览
RetroXpert 为 NeurIPS2020 论文“RetroXpert: Decompose Retrosynthesis Prediction Like A Chemist.”提供参考实现。它将逆合成预测分为产物键断裂和后续反应物生成两个阶段。其文档所述工作流程支持分别研究这两个阶段,以及将它们作为相互衔接的预测流程进行研究;它并非一个现成的合成规划服务。
第一阶段将 USPTO-50K 数据集预处理为标签和 DGL 图,提取半模板模式,并训练 EGAT 模型来预测键断裂。文档中的训练示例包含反应类别。中间处理会将结果转换为 OpenNMT 格式的数据,并根据预测的键断裂生成合成子。第一阶段训练预测中的错误也可用于扩充第二阶段训练数据。反应物生成阶段包括预处理、训练、检查点平均、翻译和预测评分。
原子映射反应及其 SMILES 转换是该实现的重要细节。README 记录了一处信息泄漏:在合成子准备过程中,原子顺序和映射编号暴露了反应原子信息。README 建议采用修订后的产物规范化方法,同时重新分配映射编号。因此,在评估该仓库时,预处理选择至关重要。后续报告的结果附有声明,表示将更新实现和论文;来源摘录无法证明这些更新已完成。依赖项说明描述的是作者所用环境,并非对当前软件包版本兼容性的验证。
主要功能
- 将 USPTO-50K 反应预处理为标签和 DGL 图,用于产物键断裂预测。
- 从训练数据中提取半模板模式,并识别数据集中的模式。
- 提供包含反应类别信息的 EGAT 训练和评估工作流程。
- 根据第一阶段的键断裂预测生成合成子,并将数据整理为 OpenNMT 格式。
- 使用第一阶段训练错误扩充第二阶段反应物生成的数据。
- 记录包含检查点平均、翻译和评分的 OpenNMT 反应物生成工作流程。
使用场景
- 预期评估:研究在两阶段逆合成流程中,产物键断裂错误如何影响下游反应物预测。
- 预期评估:在检查基于 USPTO 的实验是否存在信息泄漏时,比较原子排序和映射编号的预处理选择。
- 预期评估:探究基于第一阶段错误的训练数据扩充是否会改变第二阶段的预测行为。
使用方式
- 在选择实验工作流程前,阅读官方 README,包括其中有关信息泄漏的说明。将后续结果更新与实现说明分开看待。
- 检查仓库的 requirements 和附带的 OpenNMT-py 安装指南。README 列出了作者使用的依赖环境;应评估其是否适用于你的环境,而不要假定它与当前版本兼容。
- 查看修订后的规范化实现,README 建议在 USPTO 预处理中使用该实现。检查其如何处理原子顺序和映射编号。
- 按照 README 中的第一阶段顺序操作:准备标签和图,提取半模板模式,训练 EGAT,并在文档所述的反应类别设置下评估键断裂预测。
- 准备 OpenNMT 数据、预测合成子和基于训练错误扩充的数据。随后按照文档所述顺序进行第二阶段预处理、训练、检查点平均、翻译和评分。作为预期评估的一部分,记录预处理选择及对应分数,并检查中间键断裂结果和生成的反应物。