AiZynthFinder 的浏览器移植、库存分片与原生验证
AiZynthFinder 的浏览器移植与历史 ZINC 库存分片:六个目标的策略、化学操作和完整 InChIKey 查询对照,以及数据复现方法。
Felix Fei
AiZynthFinder 的浏览器移植、库存分片与原生验证
AiZynthFinder 的浏览器移植与历史 ZINC 库存分片:六个目标的策略、化学操作和完整 InChIKey 查询对照,以及数据复现方法。
2026-10-10 · Mol2Mat · Felix Fei · revision 1
从目标分子到库存前体
Mol2Mat 在浏览器中运行 AiZynthFinder 的模板策略推理、前体生成、树搜索和分片库存查询。本文以六个固定目标比较原生与浏览器的策略概率、化学操作和库存成员判定。所得路线由所选模板、库存和搜索预算共同决定,配套数据提供逐项对照及复现条件。[1, 2]
Mol2Mat 将 AiZynthFinder 4.4.1 的 USPTO 配置移植到一个 Dedicated Worker:原始 FP32 ONNX 策略负责排序,42554 个模板与 RDKit / RDChiral 负责生成前体,单目标 Monte Carlo tree search 负责组织路线。这些步骤都在浏览器本地运行。
移植的另一项工作是让浏览器访问历史 ZINC 库存中的 17422831 个完整 InChIKey。Bloom 索引先筛选,再按需读取分片并精确查找,减少首次加载的数据量。六个分子的原生对照检查了指纹、300 项策略概率、107 次反应操作和 52 次库存成员判定。[3]
分子指纹与原始模板策略
RDKit 解析目标并进行结构校验(sanitization),生成规范异构 SMILES,从分子对象移除原子映射。策略采用半径 2、2048 位的非手性 Morgan 指纹:
概率用于模板排序,分子的立体化学则由后续完整分子图处理。
ONNX Runtime Web 1.30.0 使用单线程 WASM 执行提供器和原始 FP32 权重。按概率最多保留 50 项,沿用累计阈值 0.995 的截断语义与 FP32 累加。六个输入各保留 50 个模板,300 项概率及索引可逐项检查。[2, 3]
化学处理采用 RDKit 2026.03.6 与固定 RDChiral 版本。选中模板作用于完整分子图,经过结构消毒、立体化学处理与去重,产生零个或多个前体组合。策略排序与实际可展开结果分别记录。[4]
单目标树搜索与预算约束
JavaScript 搜索保留节点选择、延迟展开、回传和循环剪枝。初始化子节点的选择量为:
为累计值, 为访问数, 为兄弟节点总访问数;策略先验参与初始化。探索项在高平均值和较少访问的分支之间分配计算预算。
状态评分沿用上游定义:
表示库存覆盖比例,深度项轻度偏好较浅路线。该分数评价搜索状态,路线的实验可行性、选择性和分离成本需要化学证据。
测量配置为 80 迭代、最多四步,任务另有 45 s 搜索预算,界面允许最多五步。浏览器使用 xorshift32 种子 20261010,Python 参考使用 NumPy 全局随机过程。因此数值与化学层逐项对照,随机访问轨迹与路线排名按各自随机规则解释。
库存范围与成员核查
历史 ZINC 快照包含 17,422,831 个完整 InChIKey,源 SQLite 约 598 MiB。前体是否在库以完整 InChIKey 的精确匹配决定;原生与浏览器对相同查询逐项比较成员结果。[3, 5]
压缩库存数据共 129,073,867 字节,约 123.09 MiB。含模型和运行时的完整资源约 250.87 MiB,首次核心准备约 127.77 MiB。实际查询传输量随所需数据与本机已保存资源而变化。
离线查询要求所需分片完整缓存;缺少分片返回资源错误,库存语义保持完整。此库存表示固定历史集合,当前供应商、价格、交期及纯度需要采购来源更新。
计算环境与资源测量
初次准备、重复搜索和离线搜索分别记录耗时。比较固定目标分子、模型、模板库、库存与搜索预算,并保留取消、重试、保存和恢复的执行记录。
探针记录 ONNX WASM 线性内存 367394816 字节,化学 WASM 33554432 字节。任务的 1 GiB 为准入估算;JavaScript 对象、持久存储、图形与进程 RSS 需另行记账。性能证据的分子范围由六个固定目标定义。
策略、化学与库存的原生对照
六个目标为阿司匹林、乙酰苯胺、苯甲酸乙酯、手性布洛芬、E/Z 烯烃和咖啡因。原生与浏览器的指纹位、前 50 模板索引逐项相同;300 项保存概率的最大绝对差为 3.8743×10⁻⁷,低于 10⁻⁶ 容差。[3]
原生 RDChiral 复核模板展开与返回路线中的步骤,共完成 107 次反应检查;RDKit 与只读 SQLite 检查末端分子的库存归属,共 52 次。两项检查全部通过。次数按每次操作计,因而包含重复出现的步骤和前体。
E/Z 夹具的身份差异来自解析语义。上游采用 sanitize=False 后再消毒,生成 InChI 时遗漏该例 E/Z 赋值;浏览器完整解析保留立体化学,得到不同完整 InChIKey。两种键及来源路径均在记录中,浏览器键用于库存与循环判断。
这些检查分别检验策略排序、模板生成的前体和末端库存归属。六个输入各返回五条候选;随机搜索的访问顺序和排名还会受到随机过程影响。评价路线质量时,需要独立目标集及实验或专家判断作为参照。
| 层次 | 核查范围 | 结果与边界 |
|---|---|---|
| 指纹与模板索引 | 6 个输入,各前 50 项 | 精确一致 |
| 策略概率 | 300 | 最大绝对差 3.8743×10⁻⁷;容差 10⁻⁶ |
| 模板及返回步骤 | 107 | 原生 RDChiral 通过;含重复检查 |
| 末端库存声明 | 52 | 原生 SQLite 通过;含重复前体 |
| 立体身份 | E/Z 烯烃一例 | 保留完整解析差异 |
| 搜索排名 | 两种随机过程 | 按各自随机规则评价 |
阿司匹林候选路线与化学评价
阿司匹林第一位路线提出乙酸酐和水杨酸,模板索引为 40152,策略概率约 0.726163。两种前体命中历史库存,状态分数为 0.997629。图直接由返回路线的异构 SMILES 绘制,双线箭头表示逆合成拆解。
两个前体都在库存中,搜索因此得到一条满足终止条件的候选路线。将它用于实验时,还需从文献和化学判断中确定试剂用量、溶剂、温度、后处理及预期收率,并考虑官能团兼容性和放大条件。
路线质量的比较采用独立目标集,固定库存、时间预算和路线等价规则,并以实验记录或专家评价判定反应条件及立体化学适用性。本文六例用于模板策略、化学操作和库存语义的实现核查。
搜索耗时与首次加载
macOS Chrome 154 的六个资源就绪搜索约为 0.66–1.56 s,各为 80 迭代、最多四步、单线程 FP32 的单次记录。模型调用为 8–65 次,模板调用为 66–609 次,显示相同迭代预算下的工作量差异。
| 状态 | 页面至导出 / s | 内部搜索 / s |
|---|---|---|
| cold | 5.217 | 2.1560 |
| 温热 | 1.822 | 0.6832 |
| offline-cached-after-cancel | 2.852 | 1.6303 |
实际阿司匹林页面的首次空缓存、重复和取消后离线记录分别为 5.217、1.822、2.852 s,各 。首次从下载同意开始,其余从提交开始,均到自动化检测与导出结束,包含轮询及导出。对应内部搜索为 2.156、0.683、1.630 s,图表分别标明两类边界。
离线测试使用已缓存资产,资产请求和页面计算 API POST 均为零;取消后重试、导出和刷新恢复也正常完成。以上耗时来自桌面 localhost 的单次运行。公共网络的下载速度,以及手机的内存和热状态,会影响首次使用和持续搜索的体验。
数据与复现方法
六例策略、化学与库存对照可由公开保存结果复核。raw-results.json.gzip 提供原生与浏览器输出,policy.csv 提供 300 项概率,summary.csv、search.csv 和 page-timing.csv 分别保存数值汇总、内部搜索与页面计时。按目标身份配对指纹、前 50 模板索引与概率,重算最大绝对差,并核对 107 次反应操作和 52 次库存检查的记录计数。[3]
计算复现采用记录中的 RDKit、RDChiral、模板库、ZINC 库存、模型、搜索预算与随机数条件。各次复算分别记录候选身份、排名及实际执行条件;公开数据可用于复核搜索结果与性能统计。
Data and sources
- Complete saved results · JSON gzip
- Six-case numerical and search summary · CSV
- 300 native probability comparisons · CSV
- Six search observations · CSV
- Page timing observations · CSV
- Provenance and build identities · JSON
- Asset volumes · CSV
- S. Genheden et al. AiZynthFinder: a fast, robust and flexible open-source software for retrosynthetic planning. Journal of Cheminformatics 12, 70 (2020). doi:10.1186/s13321-020-00472-1
- AiZynthFinder 4.4.1: implementation and configuration documentation
- Mol2Mat: original results, source identities and native replay
- RDChiral: stereochemistry-aware reaction-template application
- Pinned historical ZINC stock snapshot: source file