ASKCOS(MIT)是功能最全面的开源合成规划平台。与 AiZynthFinder 专注逆合成不同,ASKCOS 把逆合成、正向反应预测、条件推荐、可行性评估整合在一起,是理解「合成 AI 全链」的好载体。
模块构成
| 模块 | 功能 |
|---|---|
| 逆合成规划 | 树搜索 + 模板/无模板策略 |
| 正向反应预测 | 给定反应物预测产物(见 388《反应产物预测》) |
| 条件推荐 | 预测催化剂、溶剂、试剂、温度(见 389《反应条件与产率预测》) |
| 产率预测 | 估计反应产率 |
| 杂质预测 | 预测可能的副产物 |
| 位点选择性 | 预测反应发生在哪个位点 |
| 可购买性查询 | 判断化合物是否可得 |
| SCScore | 合成复杂度评分(见 390《合成可及性再讨论》) |
「逆合成 + 正向验证」的闭环是它的特色:逆合成提出一个切断后,可以用正向反应模型检验「这两个前体真的能反应生成目标产物吗」,从而剔除不合理的建议。
部署
# 推荐用 Docker 部署(依赖较多)
git clone https://github.com/ASKCOS/askcos-base.git
cd askcos-base
# 按官方文档配置并启动各服务
# 包含:Web 界面、API 服务、模型服务、数据库
docker compose up -d
# 访问 http://localhost 使用 Web 界面
# 部署较重:需要较大磁盘(模型与数据)与内存
# 若只需逆合成,AiZynthFinder(见 385)轻量得多
API 调用
import requests
BASE = "http://localhost/api/v2"
# 1) 逆合成树搜索
r = requests.post(f"{BASE}/tree-builder/", json={
"smiles": "CC(=O)Oc1ccccc1C(=O)O",
"max_depth": 5,
"max_branching": 25,
"expansion_time": 60,
"template_count": 100,
"filter_threshold": 0.75,
})
task_id = r.json()["task_id"]
# 轮询结果
result = requests.get(f"{BASE}/celery/task/{task_id}/").json()
# 2) 正向反应预测
r = requests.post(f"{BASE}/forward/", json={
"reactants": "CC(=O)O.OCC",
"reagents": "",
"solvent": "",
"num_results": 5,
})
for p in r.json()["output"]:
print(f"{p['smiles']} 概率 {p['prob']:.3f}")
# 3) 条件推荐
r = requests.post(f"{BASE}/context/", json={
"reactants": "c1ccc(Br)cc1.OB(O)c1ccccc1",
"products": "c1ccc(-c2ccccc2)cc1",
"num_results": 5,
})
for ctx in r.json()["output"]:
print(f"温度 {ctx['temperature']:.0f}°C")
print(f" 溶剂: {ctx['solvent']}")
print(f" 试剂: {ctx['reagent']}")
print(f" 催化剂: {ctx['catalyst']}")
与 AiZynthFinder 怎么选
| 维度 | AiZynthFinder | ASKCOS |
|---|---|---|
| 功能范围 | 专注逆合成 | 全链条 |
| 部署难度 | pip install 即可 | 需 Docker 多服务 |
| 资源需求 | 轻 | 较重 |
| 集成难度 | 易嵌入 Python 流程 | 需通过 API |
| 条件预测 | 无 | 有 |
| 正向验证 | 有过滤模型 | 完整的正向预测 |
| 批量处理 | 方便 | 需自建队列 |
选择建议:只需要「这个分子能不能合成」的批量筛选 → AiZynthFinder;需要完整的合成规划辅助(含条件推荐)→ ASKCOS。
正向反应预测的价值
这是 ASKCOS 相对逆合成专用工具的关键增量:
- 验证逆合成建议:逆合成说「A + B → C」,正向模型检验这个反应是否真的会给出 C(而不是别的产物);
- 预测副产物:反应可能生成什么杂质,有助于提前规划纯化;
- 位点选择性:分子有多个反应位点时,反应会发生在哪个——这是合成规划中很实际的问题;
- 官能团兼容性:分子中的其它官能团会不会干扰。
用于教学与理解
ASKCOS 的一个被低估的价值是它把合成 AI 的各个环节都摆出来了:
- 想理解「模板是怎么从反应数据中提取的」→ 看它的模板提取代码;
- 想理解「树搜索怎么工作」→ 看它的搜索实现;
- 想理解「条件预测建模成什么问题」→ 看它的条件推荐模块;
- 对要自建合成 AI 能力的团队,它是很好的参考实现。
局限
- 部署门槛:多服务架构,维护成本不低;
- 训练数据同样有偏:主要基于 USPTO 反应,与 AiZynthFinder 面临同样的「只见过成功反应」问题;
- 条件预测精度有限:给出的是「统计上常见的条件」,不是「针对这个具体底物的最优条件」;
- 产率预测参考价值低:这是整个领域的共同短板;
- 仍需化学家评审:所有输出都是建议而非方案。
上手提示
- 它的特色是「逆合成 + 正向验证 + 条件推荐」的完整闭环;
- 部署较重,只需逆合成批量筛选时用 AiZynthFinder 更省事;
- 正向反应预测能检验切断合理性、预测副产物与位点选择性;
- 作为自建合成 AI 能力的参考实现,它的价值被低估。
延伸资源
- 对照工具:385《AiZynthFinder》、387《IBM RXN for Chemistry》;
- 反应预测:388《反应产物预测》、389《反应条件与产率预测》;反应数据:399《反应数据库》。