Spaya 是 Iktos 的逆合成规划平台:输入一个目标分子,输出可能的合成路线。它解决的是 AI 分子设计的「最后一公里」问题——设计出来的分子必须能被合成,否则没有任何价值。
逆合成 AI 怎么工作
- 单步逆合成模型:给定目标分子,预测可能的前体与反应类型。通常用基于模板(从反应数据库提取的规则)或无模板(序列到序列 / 图到图)的方法。
- 路线搜索:递归应用单步模型,用蒙特卡洛树搜索(MCTS)或 A* 等算法探索路线树,直到所有叶节点都是可购买的起始原料。
- 路线打分:按步数、预估产率、原料成本与可得性、反应可靠性排序。
- 可得性判断:需要一个采购化合物数据库来判断什么算「起点」,这是路线搜索的终止条件。
怎么评估一条路线
| 维度 | 关注点 |
|---|---|
| 步数 | 线性步数越少越好;汇聚式路线优于线性路线 |
| 起始原料 | 是否现货可得?价格如何?(见 232《Mcule》、233《eMolecules》) |
| 反应可靠性 | 是否为成熟的常规反应?有无文献先例? |
| 官能团兼容性 | 分子中其他官能团是否会干扰?需不需要保护基? |
| 立体化学 | 手性中心怎么构建?需要拆分还是不对称合成? |
| 放大可行性 | 是否涉及危险试剂、极端条件、难以放大的操作? |
汇聚式(convergent)路线是关键概念:把分子拆成两个大片段分别合成再连接,比线性地一步步加长要好得多——线性路线的总产率是各步产率的连乘,步数一多总产率就极低。
开源替代方案
# AiZynthFinder(阿斯利康开源,见 385)
pip install aizynthfinder
download_public_data . # 下载公开的模板与库存数据
aizynthcli --config config.yml --smiles "目标分子 SMILES"
from aizynthfinder.aizynthfinder import AiZynthFinder
finder = AiZynthFinder(configfile="config.yml")
finder.stock.select("zinc")
finder.expansion_policy.select("uspto")
finder.filter_policy.select("uspto")
finder.target_smiles = "Cc1ccc(cc1)S(=O)(=O)Nc1ccc(cc1)C(=O)O"
finder.tree_search()
finder.build_routes()
stats = finder.extract_statistics()
print("是否找到完整路线:", stats["is_solved"])
print("最短路线步数:", stats["number_of_steps"])
for i, route in enumerate(finder.routes[:3]):
print(f"路线 {i}: 得分 {route['score']:.3f}")
其他选项:ASKCOS(MIT,见 395《共晶 Cocrystal》,功能更全但部署较重)、RXN for Chemistry(IBM,在线免费额度)、Retro* 等学术实现。
逆合成 AI 的能力边界
- 训练数据偏向已发表反应:模型从 USPTO 专利反应等数据学习,失败的反应不会被发表,所以模型对「什么行不通」了解有限。这导致它可能自信地给出实际不可行的路线。
- 不理解真实的反应条件细节:温度、溶剂、催化剂用量、加料顺序等对成败至关重要的细节,模型的把握有限。
- 官能团兼容性判断不足:复杂分子中多个官能团的相互干扰、保护基策略,是模型的弱项。
- 产率预测不可靠:预估产率的参考价值有限。
- 结论:把它当作「给合成化学家提供思路的工具」,而不是「自动生成可执行方案的系统」。最终路线必须由有经验的合成化学家评审。
在 AI 设计流程中的位置
最有价值的用法是把逆合成评估前置到生成阶段:不是先生成一千个分子再挨个查合成路线,而是把「能否找到合理路线」作为生成时的打分项之一。这样产出的分子从一开始就偏向可合成的区域,大幅减少无效设计。
提示
商业平台功能与定价变动较快,本文为方向性介绍,采购前请核对官方最新信息。逆合成 AI 的产出必须经合成化学家评审——模型没见过失败的反应,可能自信地给出行不通的路线。
延伸资源
- 配套设计平台:285《Iktos Makya》;开源工具:385《AiZynthFinder》、395《共晶 Cocrystal》;
- 采购平台:232《Mcule》、233《eMolecules》;合成与工艺见对应模块。