批量处理化合物表时,让每项结果对应原始行,核对和重新处理都会更方便。chematic 的 canonicalize_smiles_batch_json 按输入顺序返回报告,每条记录包含原始 SMILES 和处理结果。

三条输入对应三条报告记录

依次传入 CCO、C1CC 和 OCC,会得到下面的对应关系。这个示例已用公开 npm 包 v1.1.2 核对。

input_index  input  status    canonical_smiles
0            CCO    accepted  C(C)O
1            C1CC   rejected
2            OCC    accepted  C(C)O

C1CC 记录还包含提示检查闭环标记的解析信息。需要检查的记录保持 input_index: 1,后面的 OCC 则保持 input_index: 2。可以用这个序号将结果关联回原表中的化合物 ID。

input_index 从 0 开始。对于只有一行表头的简单 CSV,表格行号是 input_index + 2。如果导入时选择了部分行,请同时保留它们在原表中的行号。

同时返回每条记录与整体计数

每条报告记录包含 input、status,解析成功时还包含 canonical_smiles。整体报告还提供 input_count、record_count、accepted_count 和 rejected_count。上面的例子可读作:三条输入、三条结果、两条已接受记录和一条待核对记录。

这样可以在保留原始 SMILES 的同时,继续添加分子属性或相似度结果。按输入序号关联后,修改一条已核对记录并重新处理时,也可以继续使用同一张表。

将 Rust 的处理结果连接到 Python 与 WASM

报告通过 Python 和 WASM API,以 JSON 形式提供 Rust SmilesBatchCanonicalizer 的有序结果。Python 接收 SMILES 列表;WASM 接收字符串和明确的分隔符。调用方式适合各自环境,结果则保留与源输入的对应关系。

实现可在批量处理模块、Python API和 WASM API中查看。API 保留源记录与结果的关联,方便表格和文件处理工具接入。