AiZynthFinder 的浏览器移植、库存分片与原生验证

AiZynthFinder 的浏览器移植与历史 ZINC 库存分片:六个目标的策略、化学操作和完整 InChIKey 查询对照,以及数据复现方法。

Felix Fei

AiZynthFinder 的浏览器移植、库存分片与原生验证

AiZynthFinder 的浏览器移植与历史 ZINC 库存分片:六个目标的策略、化学操作和完整 InChIKey 查询对照,以及数据复现方法。

2026-10-10 · Mol2Mat · Felix Fei · revision 1

从目标分子到库存前体

Mol2Mat 在浏览器中运行 AiZynthFinder 的模板策略推理、前体生成、树搜索和分片库存查询。本文以六个固定目标比较原生与浏览器的策略概率、化学操作和库存成员判定。所得路线由所选模板、库存和搜索预算共同决定,配套数据提供逐项对照及复现条件。[1, 2]

固定资源中模型与压缩库存占主要体积;库存表示从 597.74 MiB SQLite 到 123.09 MiB 分片。
图 1. 固定分发字节。两种库存表示含相同 17422831 个完整键;右图比较源 SQLite 与压缩精确分片,左图单列 Bloom 索引,第三方声明约 21 KiB。

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 指纹:

x∈{0,1}2048,p=fFP32(x)∈R42554.\mathbf x\in\{0,1\}^{2048},\qquad \mathbf p=f_{\mathrm{FP32}}(\mathbf x)\in\mathbb R^{42554}.

概率用于模板排序,分子的立体化学则由后续完整分子图处理。

六个输入的最大概率差均低于 10⁻⁶。
图 2. 六个输入各前 50 个模板概率的最大绝对差,共 300 项概率,另对指纹和索引作精确检查。

ONNX Runtime Web 1.30.0 使用单线程 WASM 执行提供器和原始 FP32 权重。按概率最多保留 50 项,沿用累计阈值 0.995 的截断语义与 FP32 累加。六个输入各保留 50 个模板,300 项概率及索引可逐项检查。[2, 3]

化学处理采用 RDKit 2026.03.6 与固定 RDChiral 版本。选中模板作用于完整分子图,经过结构消毒、立体化学处理与去重,产生零个或多个前体组合。策略排序与实际可展开结果分别记录。[4]

库存范围与成员核查

历史 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。两种键及来源路径均在记录中,浏览器键用于库存与循环判断。

这些检查分别检验策略排序、模板生成的前体和末端库存归属。六个输入各返回五条候选;随机搜索的访问顺序和排名还会受到随机过程影响。评价路线质量时,需要独立目标集及实验或专家判断作为参照。

表 1. 逐层验证与保留差异
层次核查范围结果与边界
指纹与模板索引6 个输入,各前 50 项精确一致
策略概率300最大绝对差 3.8743×10⁻⁷;容差 10⁻⁶
模板及返回步骤107原生 RDChiral 通过;含重复检查
末端库存声明52原生 SQLite 通过;含重复前体
立体身份E/Z 烯烃一例保留完整解析差异
搜索排名两种随机过程按各自随机规则评价

阿司匹林候选路线与化学评价

阿司匹林第一位路线提出乙酸酐和水杨酸,模板索引为 40152,策略概率约 0.726163。两种前体命中历史库存,状态分数为 0.997629。图直接由返回路线的异构 SMILES 绘制,双线箭头表示逆合成拆解。

阿司匹林拆解为乙酸酐与水杨酸,两者命中历史 ZINC 库存。
图 4. 实际返回路线的异构 SMILES;双线箭头为逆合成拆解。模板概率表示策略排序,库存命中对应固定历史快照。

两个前体都在库存中,搜索因此得到一条满足终止条件的候选路线。将它用于实验时,还需从文献和化学判断中确定试剂用量、溶剂、温度、后处理及预期收率,并考虑官能团兼容性和放大条件。

路线质量的比较采用独立目标集,固定库存、时间预算和路线等价规则,并以实验记录或专家评价判定反应条件及立体化学适用性。本文六例用于模板策略、化学操作和库存语义的实现核查。

搜索耗时与首次加载

macOS Chrome 154 的六个资源就绪搜索约为 0.66–1.56 s,各为 80 迭代、最多四步、单线程 FP32 的单次记录。模型调用为 8–65 次,模板调用为 66–609 次,显示相同迭代预算下的工作量差异。

阿司匹林页面首次、重复、离线观测为 5.217、1.822、2.852 秒;六个搜索约 0.66–1.56 秒。
图 5. 2026-10-10,macOS Chrome 154,localhost,n = 1。左:下载同意或提交至自动化导出,含轮询;右:资源就绪后的完整 80 迭代搜索。
表 2. 保存页面观测的两个计时边界,每种状态 n = 1
状态页面至导出 / s内部搜索 / s
cold5.2172.1560
温热1.8220.6832
offline-cached-after-cancel2.8521.6303

实际阿司匹林页面的首次空缓存、重复和取消后离线记录分别为 5.217、1.822、2.852 s,各 n=1n=1。首次从下载同意开始,其余从提交开始,均到自动化检测与导出结束,包含轮询及导出。对应内部搜索为 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

  1. 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
  2. AiZynthFinder 4.4.1: implementation and configuration documentation
  3. Mol2Mat: original results, source identities and native replay
  4. RDChiral: stereochemistry-aware reaction-template application
  5. Pinned historical ZINC stock snapshot: source file