验证与基准测试
当前发布版本:v1.1.7
下方基准包含源代码候选构建和历史版本的测量。每项结果都限于所注明的版本、发行包、环境和数据集。
chematic 是一个开源的原生 Rust 化学信息学引擎(MIT OR Apache-2.0),覆盖 SMILES/SMARTS 解析、 分子描述符、指纹与 2D 结构绘制。本页概述了 chematic 的输出如何针对 RDKit 进行检验、哪些功能稳定、 哪些仍是实验性的,以及其基准测试数字实际衡量与不衡量的内容。完整的方法论、语料库和复现步骤保存在 chematic 仓库中 —— 本页是附带来源的摘要,不能替代仓库中的原始文档。
为什么选择 chematic
chematic 面向需要在浏览器、Rust 应用和 Python 中使用分子操作的软件。它让各环境共享一套化学核心,适合本地优先的浏览器工具、原生 Rust 服务,以及需要共用同一引擎的产品功能。
从 chematic 开始能得到什么
- 本地浏览器执行:解析、描述符、指纹、2D 绘制和搜索可在 WebAssembly 中运行,无需将分子发送到后端。
- 同一套 Rust 核心:Python、Rust、JavaScript/WASM 与本地 MCP 工具围绕同一引擎构建,原型和产品界面更容易保持一致。
- 直接集成:标准核心工作流采用 Pure Rust,不需要 C++ 工具链、子进程或独立的化学服务。
- 可见的边界:下方链接了发布包、指定语料库和已知限制,团队可据此评估实际要交付的操作。
可先从浏览器演示或SMILES 验证教程开始。已有 RDKit 资产时,可从浏览器功能、新的 Rust 服务或独立分析步骤引入 chematic,再针对自己的语料库核对所需操作。
功能成熟度
| 功能 | 状态 | 备注 |
|---|---|---|
| SMILES / SMARTS parsing | stable | — |
| Molecular descriptors (physicochemical core) | stable | — |
| Fingerprints (ECFP, MACCS, etc.) | stable | — |
| 3D conformer generation (distance geometry + MMFF94) | experimental | — |
| pKa / ADMET profiling | experimental | 基于规则的筛查启发式方法,未针对临床用途进行验证。 |
| IUPAC name generation | partial | 覆盖 25 种以上的结构类别;超出支持范围时返回空字符串。 |
| InChI (default pure-Rust engine) | approximate | — |
| InChI (optional native-inchi feature) | stable | 通过内置的 IUPAC C 语言参考实现,生成位精确的标准 InChI。 |
已由发布包验证的范围
以下记录使用的是公开发布的产物,而不是本地工作副本。特定操作的输出门槛和计时结果,并不代表两套库其余部分的兼容性或性能。
| 发布物与对比 | 已通过的检查 | 边界 |
|---|---|---|
| v1.0.42 CPython 3.13 wheel 与 RDKit 2026.09.1 | TPSA、Labute ASA 和手性 Morgan 通过 10,000 行输出门槛。包含解析的 21 个区块在托管 Linux x64 与 macOS arm64 上都对 chematic 有利。 | 环计数为 9,994/10,000;prepared Labute ASA 在 macOS 落后,prepared Morgan 未保持优势。 |
| v1.0.30 浏览器包与官方 RDKit.js | Chromium、Firefox 和 WebKit 的 Morgan 直接与 prepared 输出均为 250/250 一致;该测试的 20 区块计时区间对 chematic 有利。 | 另一项 Chromium 10,000 行测试中,含铁的一行被作为带类型的错误拒绝。这不是浏览器整体性能结论。 |
| v1.0.42 反应包与 RDKit | 83 行中 80 行的图、原子来源和原子映射相同;另外三行对双方都无效。 | 反应支持仍有差异,并不等同于完整的 RDKit 反应兼容性。 |
当前源码对比,不是发布声明
证据边界:下列记录从当前 main 构建并对比 RDKit 2026.09.1。它们用于跟踪开发,但在对发布的 v1.1.7 产物重新运行前,不能作为该发布版本的证据。
当前 main 的记录中,TPSA、Labute ASA、环计数和手性 Morgan 在 10,000 行上一致;包含解析的流程在一次 macOS arm64 测量中给出了有利区间。v1.1.3 源码候选还在 4,072 个非常规 SMILES 上使分子量、Morgan 和环计数一致,并对 10 个 CIP 差异逐一分类。这些是指定测试通道的结果,不表示 chematic 实现了完整 RDKit 表面。
当前发布新增了守恒电荷的 EEM 部分电荷、丙二烯和累积双键的轴手性、可选 ETKDGv3、V3000 增强立体化学集合、有内存上界的 SDF 数据集,以及可复用的 Python 力场对象。针对 v1.1.7 发布产物的全面对比复跑仍在等待完成。
描述符、立体化学与 3D 的验证范围
Mol.descriptors() 返回 194 个值,但该数字是 API 项目数,不是准确度分数。请按实际使用的描述符和语料库验证。已发布的记录直接覆盖 TPSA 和 Labute ASA,并未验证所有扩展描述符家族。
已发布的 Python 审计记录了 310,000 个 SMARTS 单元中的 200 个差异,以及 5 个 CIP 弃权。chematic 会报告这些边界,而不会猜测。3D 方面,v1.0.42 的发布门槛通过了 265 项几何、立体化学与 clash 检查;当前源码的等数量对比中,265 个构象中有 258 个在 RDKit 的 1 kcal/mol 以内。3D 仍处于实验阶段,RDKit 在生产 3D 工作流中仍有更广的功能范围与使用历史。
已知局限性
Canonical SMILES 不是通用的身份键
去重或缓存时,请明确选用适合用途的身份模式。canonicalization 有定义明确的适用范围,并会在无法判定时失败;它不能替代通用的结构标识符。