该 Scenario 面向反应物和产物均已知、但原子对应关系未知的反应理解任务。Harness 需要为每个完整 reaction SMILES 分配守恒且一致的 atom-map number,并从映射结果确定形成键、断裂键和键级变化。
与“调用一个 mapper 并返回 mapped SMILES”的基础任务相比,本场景额外要求参考 correspondence 独立于被测模型、评分对 map number 重命名和对称原子置换不敏感,并把没有唯一答案的反应分流为 ambiguous。核心难点因此不是输出任意带编号字符串,而是在不修改反应角色的条件下恢复可独立验证的原子对应。
这是一个独立科学问题,不接受只有目标产物的输入,也不预测前体或反应条件。映射的核心真值是“哪些反应物原子对应哪些产物原子”,不是某个软件产生的 mapped SMILES 字符串;不同 map number 命名可能表达同一个对应关系,必须在原子置换等价类下比较。
默认模型 RXNMapper 是工程上成熟的本地开源实现,但它的输出不能反过来充当自己的 Ground Truth。正式 Benchmark 只允许使用具有人工校正、明确来源和可审计映射的反应集。若官方 RXNMapper 数据包中的具体文件、许可与人工核验状态尚未冻结,本场景保持“设计完成、数据发布阻塞”,不得用 RXNMapper 批量映射 USPTO 后自评。
RXNMapper 与 BatchedMapper,输出 mapped reaction 和 confidence;论文公开了 attention-guided atom mapping 方法。ambiguous,不进入唯一映射 accuracy;可进入错误检测子任务。参考标签使用与 map number 名称无关的原子对应表:反应物原子由 (component_canonical_id, atom_index) 标识,产物同理。对称原子允许保存多个等价 correspondence 或 symmetry orbit。变化键由参考 correspondence 推导,不从文本反应类别猜测。
可审计原子映射场景 基础 mapping 调用
未映射完整反应 + 冻结参考(私有) 输入 reaction SMILES
│ │
▼ ▼
反应两侧解析、角色与原子索引冻结 调用 mapper
│ │
▼ ▼
运行 mapper,保留 confidence 和失败 返回 mapped SMILES
│
▼
检查 map 唯一性、元素/电荷/同位素守恒
│
▼
由 map number 确定变化键
│
▼
在对称等价下与私有 correspondence 比较
给定一组匿名、反应物与产物均已知但没有 atom map 的完整反应,请在不访问参考映射和变化键标签的情况下,恢复原子对应关系,识别形成、断裂和键级变化,并对不守恒、低置信度或存在多解的反应给出显式诊断。
目标: 固定进入映射的两侧结构,阻止通过移动或删除组分提高表面守恒率。
输入: reactions.jsonl、角色规则和环境 manifest。
输出: 组件、原子索引、规范化反应和解析错误。
技术: 解析 reactants>reagents>products 或显式字段;反应物/产物角色由输入冻结。去除已有 map number 但不改变键、立体化学、同位素、电荷或组分归属。
目标: 确认模型身份与批处理失败边界。
输入: mapper code、checkpoint、配置。
输出: checkpoint 哈希、软件版本和 admission report。
技术: RXNMapper 记录模型版本、attention multiplier、canonicalization 和 CPU/GPU。批量执行时单条非法反应不得使剩余批次丢失;retry 规则预先固定。
目标: 为反应两侧原子分配一一对应的 map identity。
输入: 冻结反应。
输出: mapped reaction、raw confidence、运行状态。
技术: 只映射输入中已有的反应两侧,不增删分子。所有输出同时保留原始未映射 reaction,确保可追溯。
目标: 在看不到 Ground Truth 时发现明显无效映射。
输入: mapped reaction。
输出: duplicate/missing map、元素、电荷、同位素和立体化学警告。
技术: 检查每侧 map number 唯一性、成对出现情况和元素一致性。质量警告保留,不能静默改写输出获得更高分。
目标: 从 atom correspondence 确定反应中心。
输入: mapped reaction。
输出: formed、broken、order_changed bond sets。
技术: 以 map number 构造两侧键字典;仅一侧存在分别为 formed/broken,两侧均存在但键级不同为 order change。芳香键表示和 kekulization 策略固定。
目标: 在化学等价映射下公平评分并分析置信度。
输入: 冻结预测、私有 correspondence 和 symmetry orbits。
输出: atom accuracy、reaction exactness、bond-change F1 和校准指标。
技术: evaluator 在允许的对称置换中选择等价参考,不按 map number 数字直接比较。ambiguous 样本单独统计,不进入唯一答案主指标。
input/
├── reactions.jsonl
├── role_policy.json
├── mapper_manifest.json
├── scenario_config.json
└── environment_manifest.json
private_evaluator/
├── atom_correspondence.jsonl
├── bond_changes.jsonl
├── symmetry_orbits.jsonl
├── ambiguity_audit.csv
├── source_provenance.json
└── evaluation_config.json
私有映射不得以 mapped SMILES、缓存或日志形式泄漏。Evaluator 必须能证明 reference 与被测 mapper 独立。
intermediate_results.json 最低要求{
"scenario_id": "reaction_atom_mapping_curated_v1",
"dataset_snapshot": "<snapshot>",
"input_hashes": {},
"mapper": {"id": "rxnmapper", "version": "<version>", "checkpoint_sha256": "<sha256>"},
"role_policy": {},
"reactions": [],
"aggregate_diagnostics": {},
"warnings": []
}
每条 reaction 保存原始输入、mapped 输出、confidence、完整性检查、变化键、耗时和失败原因。
reference_repository/
├── README.md
├── environment.yml
├── pipelines/
│ └── 03_atom_mapping.py
└── test_cases/
├── install.py
├── evaluate.py
├── database_sources.json
└── 03_atom_mapping.json
仓库中的实际参考实现位于 scenarios/pipelines/ 与
scenarios/test_cases/。合成 fixture 中预分析的 mapping 只检查协议边界;正式
benchmark 必须在 chemistry 环境实际执行 mapping,并使用冻结的 symmetry-aware GT。
模型推理与变化键提取可完全自动化。真正困难的是建立不由被测 mapper 自举、又处理对称多解的可信 Ground Truth。完成数据来源/许可证/人工核验审计前,本场景不能进入正式榜单。
仓库已提供 retrosynthesis_planning.atom_mapping_benchmark:公开输入禁止 atom map,输出必须携带显式稳定原子对应;协议检查元素守恒、重复/缺失映射并抽取成键变化,私有 evaluator 支持预先冻结的对称等价映射。它不替代独立人工核验的 Ground Truth 构建。
检查角色冻结、模型身份、原始反应保存、完整性审计、变化键确定性推导、对称性处理和 ambiguous 分流。
检查数据与 checkpoint 哈希、atom indexing 和 aromaticity 规则、依赖版本、完整逐反应输出和重跑入口。