Open Reaction Database — 开放化学反应数据库 AI-Ready Wikipedia

230 万条开放化学反应,机器可读结构化 schema,AI 驱动合成预测的公共数据底座

来源 Open Reaction Database Project url: https://open-reaction-database.org发布时间: 2026-09-13最后更新: 2026-09-25 阅读 32
Open Reaction Database — 开放化学反应数据库 AI-Ready Wikipedia

信息速览

数据集名称Open Reaction Database — 开放化学反应数据库 AI-Ready Wikipedia
数据类型约 230 万条反应记录,USPTO-grants 子集 1.1 GB Parquet,CC-BY-SA-4.0 开放许可,Protobuf/Parquet 结构化格式,免费开放获取
规模不适用(化学反应数据库,无患者数据)
接入方式Open Reaction Database Project url: https://open-reaction-database.org
AI 就绪度

数据集封面

Open Reaction Database — 开放化学反应数据库 AI-Ready Wikipedia


INFOBOX

字段 内容
数据集名称 Open Reaction Database(ORD,开放反应数据库)
英文全称 Open Reaction Database
别名/简称 ORD、ord-data
疾病分类(ICD-11) 不直接适用(化学反应数据库);其支撑的小分子药物相关治疗领域映射见 §2.1
SNOMED CT 不直接适用;相关药品/物质概念见 §2.1 映射表
数据模态 化学反应文本与数值记录(反应物/产物 SMILES、条件参数、产率、分析数据、溯源信息)
AI 任务类型 前向反应预测、逆合成规划、反应条件推荐、产率预测、反应检索与实验设计
样本总数 约 230 万条反应、约 13 万条精选数据集提交(截至 2025,来源)
数据大小 最大单文件(uspto-grants)1.8M 条反应 / 1.1 GB Parquet;全库经 Git LFS/Hugging Face 分发(来源)
数据格式 Protobuf(.pb.gz / .pbtxt)、Parquet(主干格式)、JSON(可程序化转换)
许可证 数据 CC-BY-SA-4.0;软件 Apache-2.0(来源)
访问级别 开放(GitHub PR 社区投稿 + 公开下载,无需注册)
DUO 标签 不适用(非人类受试者数据)
语言 英文(schema 字段与文档);记录内容以英文化学实验描述为主
首发日期 2020-07-30(ord-data 仓库初始提交);创始论文 2021-11 发表于 JACS
最后更新 持续滚动更新(Git 主干;最后确认的数据合并为 2025-07-31)
发布机构 Open Reaction Database 项目(治理委员会成员来自 MIT、UCLA、Merck、Genesis Molecular AI 等)
官方主页 open-reaction-database.org
下载地址 github.com/open-reaction-database/ord-data;Hugging Face 镜像
DOI 论文 10.1021/jacs.1c09820;数据集 10.5281/zenodo.4321713
AI 就绪度评分 ⭐⭐⭐⭐(4/5)— 官方 Python 工具链(ord-schema)与数据字典完备、唯一 ID 规范,但无官方训练/验证/测试划分需手动实现,嵌套 protobuf 需自行展平为表格
页面状态 published

§0 E-E-A-T 审核声明

  • 医学审核者:千方病案医学编辑部(化学信息学与药物合成方向)。交叉审核:§2 药学与临床背景(ICD-11/SNOMED 映射表)、§7 偏倚分析。
  • 数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
  • 审核日期:2026-09-05
  • 数据截止:本条目事实性数字的检索截止日期为 2026-09。

医疗免责声明:本页面内容仅用于信息技术与研究目的,不构成医疗建议、诊断或治疗建议。任何涉及临床决策的应用,请务必咨询具备执业资质的医疗卫生专业人员。本页面作者与发布方不对因使用本页面内容而产生的任何直接或间接损失承担责任。

技术免责声明:本页面提供的所有代码片段均按"原样"提供,仅用于演示数据处理流程。在实际生产环境中使用前,请自行验证代码的正确性、安全性与适用性。本页面作者与发布方不对代码运行结果或因代码使用导致的任何问题承担责任。

数据使用合规声明:本数据集采用 CC-BY-SA-4.0 许可证发布。使用者在使用、分发或基于该数据集创作衍生作品时,必须遵守该许可证的全部条款,包括署名与相同方式共享要求。涉及专利衍生数据时,请同时确认原始专利与期刊文献的授权范围。商业用途与再分发前,请咨询法务人员确认合规性。

§1 数据集概览

§1.0 📌 30 秒速览

这是什么? Open Reaction Database(ORD)是一个由学术界与制药工业界共建的开放化学反应数据库,于 2021 年 11 月在《美国化学会志》(JACS)正式发布(Kearnes et al., 2021)。它把散落在论文附录、专利文本和电子实验记录本里的合成反应信息,整理成计算机可直接读取的结构化记录——每条反应都记录了投料、装置、温度压力、后处理、产物产率和文献出处九大要素。截至 2025 年,全库约收录 230 万条反应(来源)。

为什么重要? 在 ORD 出现之前,化学家能免费获取的大型反应数据集几乎只有 USPTO 专利提取数据,而 Reaxys、SciFinder 等商业数据库需要昂贵订阅,且数据以非结构化文本为主,机器学习模型难以直接使用(C&EN 报道)。ORD 用统一 schema 加开放许可改变了这一局面:任何人都可以免费下载全部数据、审查每条记录的来源、并把自己的实验数据贡献回去,这让它成为反应预测与合成规划 AI 研究的公共数据底座。

我能用它做什么? 你可以下载整库或单个数据集,训练前向反应预测、产率预测、反应条件推荐模型,或做逆合成算法的对比评测;也可以用官方 Python 包 ord-schema 把自己课题组的高通量实验数据整理成标准格式并贡献回社区。如果你在做药物合成自动化、试剂推荐或实验设计,ORD 是目前开放生态中规模最大、结构最完整的选择之一。

§1.1 技术摘要

ORD 的技术核心是一套 protobuf 定义的反应 schema:每条 Reaction 消息包含 identifiers、inputs、setup、conditions、notes、observations、workups、outcomes、provenance 九个 section,结构化字段承载化学实体与数值,自由文本字段补充实验细节,且"描述实际发生的事"而非理想化操作规程(JACS 论文)。schema 覆盖常规台面反应,也覆盖高通量实验、流动化学、电化学与光化学等新兴技术。数据以数据集(Dataset)为单位组织,社区通过 GitHub PR 提交,经 validate_dataset.py 自动校验(reaction_id 必须匹配 ^ord-[0-9a-f]{32}$,SMILES 必须可被 RDKit 解析)后合入 ord-data 仓库。存储格式正由压缩 protobuf(.pb.gz)向 Parquet 迁移:每行一条序列化 Reaction 消息,数据集名与 ID 存于文件 footer,读取端提供流式 DatasetView 接口以支持百万级记录的低内存加载。数据经 Git LFS 分发,读取流量重定向至 Hugging Face 镜像(ord-data README)。

质量工程层面,ORD 把"入库门禁"做成了代码:每个投稿 PR 触发自动验证工作流,校验规则全部公开可复现(必填字段、数值非负、单位枚举、ID 正则、跨反应引用一致性),维护者合并时统一重写时间戳与 ID。这套机制换来的是罕见的"审计友好性"——任何一条记录的来龙去脉都可以从 Git 历史与校验日志中还原;代价则是投稿门槛高于普通开放数据仓库,精选数据(社区人工整理部分)的增速远慢于专利批量导入。使用者应据此设定预期:ORD 的核心资产是"结构化 + 可审计"而非"全量覆盖",后者仍是商业数据库的领地。

§1.2 战略价值

维度一:开放科学生态。 ORD 是"FAIR 原则"在化学领域的标杆实践:数据 CC-BY-SA-4.0、代码 Apache-2.0,且治理结构刻意避免任何单一机构的控制——由来自 MIT、UCLA、Merck 等机构的治理委员会共治,任何贡献者退出都不会影响数据与基础设施的存续(官方 Overview)。这使它成为唯一同时具备"规模、结构化、开放许可"三项特征的有机反应数据资源:Lowe USPTO 数据集规模相近但止步于 2016 年且缺少条件字段,Reaxys 与 SciFinder 数据更全但封闭且不可再分发。对于需要长期维护、复现与审计的 AI 系统而言,ORD 的 Git 版本化与数据集 ID 体系提供了商业数据库无法提供的可追溯性。

维度二:AI 模型研发基础设施。 反应预测模型长期受制于"算法可读"数据的匮乏:专利提取数据缺少产率与完整条件,失败反应几乎不被报道(C&EN)。ORD 的 schema 把产率、分析方法和实验条件显式结构化,使条件推荐与产率预测等精细任务首次拥有可训练的开放语料;其高通量实验数据集(如 47k 酰胺偶联条件数据集、 informer library 系列)为"数据高效"的主动学习与实验设计研究提供了天然基准。社区已基于它构建 ORDerly 基准体系(Wigh et al., JCIM 2024),并探索用大语言模型从实验文本自动提取结构化记录回填 ORD(Ai et al., Digital Discovery 2024)。

维度三:方法学与教学标准化价值。 ORD 的 schema 不只是数据格式,还是一套"应记录什么才能让反应可复现"的社区共识:九大 section 覆盖从投料当量、玻璃器皿类型到后处理序列与分析方法的完整实验语义。对于需要建设电子实验记录本(ELN)导出规范、起草期刊结构化数据政策或设计化学数据课程的研究机构而言,这套 schema 可以直接作为教学大纲与工程验收标准的蓝本。其 GitHub PR 投稿 + 自动校验的治理流程,同样是"开放数据社区如何做质量控制"的参考实现:每一笔数据变更都有 commit 记录、校验日志与维护者审核留痕,这套机制本身就是可迁移的组织资产。

§1.3 同类数据集横向对比

数据集 规模 数据来源 条件/产率信息 许可与获取 与 ORD 的差异化
Open Reaction Database 约 230 万条反应(截至 2025) 专利提取 + 期刊文献 + 实验室直接提交 结构化 schema,产率与条件显式建模 CC-BY-SA-4.0,免费下载 唯一具备统一结构化 schema 与持续社区投稿机制的开放反应库
USPTO(Lowe 提取) 约 180 万条反应(1976–2016 专利) 美国专利文本自动提取 条件以非结构化文本为主,产率缺失严重 CC0(Figshare),静态不再更新 ORD 中 USPTO-grants 子集即来自该工作并做了结构化整合
Reaxys(Elsevier) 商业规模最大之一 期刊与专利人工/半自动收录 条件较全,非结构化与结构化混合 商业订阅,禁止再分发 封闭、昂贵;不能作为开放基准或再分发语料
SciFinder(CAS) 商业规模最大之一 期刊与专利收录 条件较全,非结构化为主 商业订阅 同上;CAS 旗下,与文献索引深度绑定
Pistachio(NextMove) 数百万条级(商业口径) 专利文本深度解析 高度结构化(反应/角色/产率) 商业许可 定位为"专利反应的商业续篇";ORD 是其开放对应物

对比表的读法:规模列不可横向直接比较——商业数据库的"反应"口径(含重复文献记录的多次收录)与 ORD 的"实验记录"口径不同;评估开放替代性时,更相关的维度是"结构化程度 × 许可开放度 × 可复现性"三列的组合,ORD 在该组合维度上目前没有同量级的开放竞争者。

§1.4 版本与里程碑时间轴

时间 里程碑 说明
2019-10-31 初始会议 药企、学术界与科技公司专家共同确立倡议(官方文档)
2020-07-30 ord-data 仓库建立 GitHub 上 open-reaction-database 组织首个数据仓库初始提交
2021-03-03 ord-schema 首个 PyPI 发布 schema 与 Python 工具链进入可安装状态(libraries.io)
2021-11-02 JACS 创始论文在线发表 发布时近 200 万条反应(约 1.5 万条社区新提交),并获 C&EN 专题报道
2022-05-06 CITATION.cff 引用元数据确立 数据集 Zenodo 概念 DOI 10.5281/zenodo.4321713
2025 年 规模约 230 万条反应 13 万条精选提交;新编辑器 app.open-reaction-database.org 上线;HTE Center Grant 启动 6 个大型开放数据集建设(consultachem)
2025–2026 Parquet 格式迁移 + LFS 镜像重构 数据文件改为主干 Parquet,LFS 读取重定向至 Hugging Face;旧编辑器于 2026-07-31 后停用(编辑器公告)

时间轴解读:ORD 的演进呈"三段式"——2019–2021 年完成从倡议到基础设施落位(schema、仓库、论文);2022–2024 年进入数据积累与生态扩散期(Zenodo DOI、社区投稿、派生基准出现);2025 年起进入第二 代基础设施升级期(新编辑器、Parquet 主干格式、Hugging Face 镜像分发)。对使用者的含义是:引用与复现时应同时锁定"数据集 ID + 格式代际",跨代际的脚本(.pb.gz 时代)不能假设在 Parquet 时代可直接运行。

§1.5 典型应用场景

  1. 前向反应预测:给定反应物与试剂,预测主要产物;USPTO-grants 子集(180 万条)是训练集主力。
  2. 产率预测与条件推荐:利用精选 HTE 数据集(同一骨架不同条件的网格数据)训练产率回归与条件排序模型。
  3. 逆合成路线规划:以反应模板提取结果扩充规划器模板库,弥补 USPTO-50K 等小规模基准的覆盖不足。
  4. 实验设计与主动学习:informer library 类数据集(如 Pd 催化 C–N 偶联 264 条、光催化脱卤 1,152 条)适合评估采样策略的样本效率。
  5. 文献反应检索与去重:用结构化反应指纹做子结构/相似度检索,或为实验室电子记录本(ELN)提供自动归档标准。

场景选择建议:若你的目标是发表可比较的模型结果,优先场景 1 与 2 并复用 ORDerly 划分;若你来自工艺开发团队,场景 2 与 5 的价值最高——把 ORD 当作"条件先验库"而非训练集;若是教学用途,从 §3.2 的小型 HTE 数据集(几十到上千条反应)入手,可在单节课内走完"下载 → 解析 → 训练 → 评估"全流程。所有场景共享同一前提:先确认许可义务(CC-BY-SA-4.0 的署名与相同方式共享),再决定数据是否可以进入闭源管线。

§2 药学与临床背景

§2.1 治疗领域与医学术语映射

ORD 是化学反应数据库,不记录疾病或患者信息,因此不直接对应 ICD-11 或 SNOMED CT 疾病编码。但 ORD 中大量反应服务于小分子药物的合成开发。下表给出 ORD 代表性反应应用领域与医学术语系统的对齐关系,供跨库检索与 AI 任务定义使用。注意:该映射为"药物-适应症"级语义关联,不构成任何临床效力声明。

治疗领域标签 ICD-11 编码 SNOMED CT 术语名称
肿瘤(抗肿瘤小分子药物合成) 2A00–2F9Z(恶性肿瘤章节) 363346000 Malignant neoplastic disease(恶性肿瘤性疾病)
2 型糖尿病(降糖药物合成) 5A11 44054006 Type 2 diabetes mellitus(2 型糖尿病)
原发性高血压(心血管药物合成) BA00 38341003 Hypertensive disorder(高血压性疾病)
哮喘(呼吸系统药物合成) CA23 195967001 Asthma(哮喘)
阿尔茨海默病(神经退行性疾病药物合成) 8A80 26929004 Alzheimer disease(阿尔茨海默病)
感染性疾病(抗感染药物合成) 1A00–1H0Z(感染性疾病章节) 40733004 Infectious disease(感染性疾病)
药品(反应产物的一般药物学归类) 不适用 763158003 Medicinal product(药品)
药用/生物制品 不适用 373873007 Pharmaceutical / biologic product(药用或生物制品)
化学物质(反应物/产物的物质层归类) 不适用 105576001 Substance(物质)

§2.2 背景简介:反应数据为何是药物研发的瓶颈

药物从靶点发现到上市,中间的"化学实现"环节依赖海量合成 precedent: medicinal chemist 设计一个新分子后,需要知道类似反应在什么条件下可行、产率如何、副产物是什么。这些信息传统上以非结构化文本形式散落在论文 Supporting Information 与专利中。2019 年 ORD 发起时,社区调研的共识是:开放可得、机器可读的反应数据严重不足,是预测化学(predictive chemistry)发展的最大瓶颈之一(Mercado, Kearnes & Coley, JCIM 2023)。ORD 通过"结构化 schema + 集中仓库 + 开放许可"三件套直接回应这一瓶颈。在流行病学层面,其影响路径是间接的:更好的反应预测与合成规划可缩短药物工艺开发周期、降低生产成本,从而改善药物可及性。

对医疗数据领域的读者,ORD 与医疗开放数据库的类比有助于理解其定位:它之于合成化学,近似 MIMIC 之于重症医学——都是"把非结构化临床记录变成可计算资源"的公共底座;二者共享相似的工程命题(标识体系、缺失机制、许可与隐私边界)与相似的社区命题(贡献激励、质量门禁、派生基准)。差异在于:化学反应数据不涉及患者隐私,因此合规重心从"去标识化"转移到"许可兼容(相同方式共享)与专利/文献版权边界"。

从数据结构角度看,ORD 还填补了一个独特空白:它既不是分子性质数据库(如 MoleculeNet 系列的单分子标注),也不是纯反应列表(如 USPTO 原始提取),而是"反应实验记录"的完整语义单元——包括装置、条件、过程观察与后处理。这一粒度使它天然适配条件推荐、实验设计等"过程敏感"任务,而这些任务恰恰是自动化实验室(自驱动实验室)落地的关键依赖。

§2.3 预测化学任务定义

任务 定义 输入 → 输出 ORD 中对应数据
前向反应预测 给定反应物/试剂预测主要产物 SMILES 集合 → 产物 SMILES USPTO-grants(180 万条)、USPTO-480K
逆合成规划 给定目标分子反推合成路线 产物 → 反应模板/前体序列 全库模板提取;USPTO 子集为主
反应条件推荐 给定转化推荐催化剂/溶剂/温度等 反应物 → 条件参数 精选 HTE 数据集与社区提交
产率预测 预测指定条件下的产物产率 反应 + 条件 → 产率数值 带产率标注的数据集(网格型 HTE 最佳)
反应检索/相似度 按结构、子结构或反应类型检索 查询分子/反应 → 相似记录 全库 + ord-interface 搜索 API
实验设计(DOE/主动学习) 以最少实验探索反应空间 历史数据 → 下一批建议实验 informer library 与 HTE 网格数据集
反应文本挖掘 从文献/ELN 文本抽取结构化反应 操作文本 → ORD 记录 文献衍生子集 + LLM 提取研究(Ai 2024)
副产物/杂质预测 预测未报告的次要产物 主反应 → 候选杂质集合 outcomes 的完整产物列表(含次要产物记录)

§2.4 数据来源人群构成

ORD 无"患者人群",其数据来源构成如下(定性描述,官方未发布完整比例统计):

来源类型 具体构成 说明
专利提取数据 Daniel Lowe 的 USPTO 数据集(1976–2016 美国专利) 体量主体,约 180 万条经合并入 uspto-grants 数据集
期刊文献整理 论文发表数据的社区结构化提交 常含完整产率与分析表征
工业界预竞争数据 Merck、Pfizer 等企业化学家贡献的 HTE 数据 治理委员会与咨询委员会含多家药企代表
高通量实验平台 自动化平台程序化写入 覆盖流动化学、电化学、光化学
学术 lab 直接提交 各大学课题组 通过 GitHub PR 流程合入

§2.5 临床与产业价值

对医药产业而言,ORD 的价值链是:结构化反应数据 → 更准的反应预测与条件推荐 → 更少的试错实验 → 更短的工艺开发周期 → 更低的原料药成本。对临床端而言,其影响体现为仿制药与创新药工艺可及性的改善,以及绿色化学(减少溶剂与催化剂浪费)的推广基础。此外,ORD 被设计为可承载"失败反应"数据的开放库——失败数据对模型理解反应边界至关重要,而这恰是文献发表体系系统性缺失的部分(C&EN)。

分角色看价值落点:** medicinal chemist** 获得条件推荐与路线比较的先验,减少小试轮次;工艺研发工程师获得规模化前的反应敏感性线索(温度、浓度、加料顺序的结构化记录);数据科学家获得许可干净、可再分发的训练语料,免除商业数据库的授权摩擦;期刊与资助机构获得可引用的结构化数据托管范例,为"强制性结构化数据发表"政策提供基础设施参照(Mercado 2023 提出的社区行动清单即以此为落点)。监管与质量视角下,Git 版本化 + 数据集 ID 意味着任何基于 ORD 训练的模型都可以精确声明其训练数据版本——这是 GxP 环境中数据可追溯性的前置条件。

§2.6 "金标准"参照表

维度 内容
划分方式 无官方划分;数据集级组织(一个 Dataset 为一组相关反应)
标注方式 原始文献/实验记录结构化整理 + 自动验证;产率与分析数据来自原始仪器读数(UPLC-MS、NMR 等迁移记录)
标注者 论文作者/提交课题组化学家,经治理委员会维护者流程与自动校验合入
性质 回顾性实验记录汇编 + 前瞻性社区投稿;非前瞻性队列

与医疗"金标准"概念的重要差异:临床数据集的金标准通常是独立于训练标签的参考诊断(如病理确认),而 ORD 的"金标准"是原始实验记录本身——每条反应的产率与分析结果是当时实验室的真实测定,不存在更高层级的"第二意见"。这意味着质量争议只能回溯到原始文献核对(provenance 提供了这条路径),而不能指望库内有"复核标签"。把这一差异写进项目文档,可以避免团队成员用临床数据集的质量直觉误判 ORD 的标注可信度模型。

§3 数据集规格

§3.0 版本/形态抉择矩阵

你的需求 推荐形态 大小 理由
训练大模型(前向预测/逆合成) uspto-grants Parquet 单文件(ord_dataset-1158e351757f315b93cbcbe7bc55f38e) 1.1 GB / 1.8M 条 单文件含全部专利提取反应,流式读取毫秒级打开
只需少量精选 HTE 数据 按数据集 ID 前缀用 HF --allow-pattern 下载子目录 单数据集 KB–MB 级 避免全量克隆,节省带宽与磁盘
全量本地镜像 Hugging Face 镜像脚本全量下载 全库(官方未公布总量) 不占用 GitHub 共享 LFS 带宽配额
复现旧论文/旧 notebook 旧版 .pb.gz 文件(Git 历史) 视数据集而定 部分历史分析依赖 protobuf 文本格式;注意 499 个退役 ID 需查 retired_datasets.csv
需要浏览/检索而非建模 ord-interface 在线搜索 0 浏览器内分子/子结构/反应检索即可满足

§3.1 数据模态详情

ORD 的"模态"是化学反应的多要素结构化记录:

  • 化学结构:反应物、试剂、溶剂、催化剂、产物的 SMILES/名称/结构标识符(SMILES 必须可被 RDKit 解析,见校验规则)。
  • 条件参数:温度、压力、光照(波长/强度)、电流/电压、流速、搅拌方式等,均带单位枚举(MASS/LENGTH/MOLES/CONCENTRATION 等)。
  • 装置信息:玻璃器皿类型、自动化平台、流动化学/电化学/光化学专属 setup 子消息。
  • 结果标注:产物列表 + 每个产物的 measurement(类型含 YIELD、PURITY、CONVERSION 等),Percentage 取值范围 [0, 105](含误差上溢容差)。
  • 后处理与分析:workup 步骤序列与原始/处理后的分析数据(Data 消息可内嵌数值、字符串、字节或 URL)。
  • 溯源:DOI、专利号、作者(含 ORCID)、实验时间(RecordEvent)。
  • 结构化与自由文本双轨:最重要的信息(物质、量、产率)走结构化字段以保证可计算;补充细节(操作描述、注意事项)走自由文本字段以保证不失真。这一设计使 schema “描述性而非规定性”——记录实验室实际发生的事,而非理想化流程(JACS 论文)。
  • 模板枚举机制:一条模板反应 + 参数表可枚举为整个数据集,是高通量实验批量入库的官方路径;浏览器端大规模枚举可能超时,官方建议改用程序化接口(编辑器页面)。

§3.2 按子集样本数

子集/代表性数据集 反应数 说明与来源
uspto-grants(合并版) 1,800,000 489 个月度 USPTO 分片合并;1.1 GB Parquet(ord-data README)
USPTO-480K(Coley 2019 训练数据) 约 480,000 源自 10.1039/C8SC04228D,2 月 2021 入库
光催化脱卤 HTE(Mdluli 2020, ACS Catal.) 1,152 高通量 Ir(III) 光催化剂筛选(估计 5 小时转化率)
纳米光催化 informer library 1,728 Dreher & Krska informer library 框架下图 S12 数据
Pd 催化 C–N 偶联 informer library 264 Kutchukian 2016(Chem. Sci.)Figure 4D 前 8 行枚举
微波辅助 Biginelli 缩合 48 Stadler & Kappe 2001(J. Comb. Chem.)48 成员库
流动合成磺酰胺库 39 Gioiello 2013(ACS Comb. Sci.)Table 2
47k 酰胺偶联条件数据集 约 47,000 2025-07-31 合并的社区大型投稿(open-reaction-database#228)

(全库完整数据集清单以 ord-data 仓库 README 的 DOI 对照表为准;上表仅列有公开来源可核的代表性子集。)

§3.3 数据格式表

格式 扩展名 说明 适用场景
压缩 Protobuf(历史主干) .pb.gz Dataset 消息序列化 + gzip;经 Git LFS 存储 旧代码与历史复现
Protobuf 文本 .pbtxt / .txtpb 人类可读,便于 diff 与审阅 投稿审阅、小数据集手改
Parquet(当前主干) .parquet 每行一条序列化 Reaction;数据集名/描述/ID 存文件 footer 大规模 ML 训练、流式读取
JSON .json(转换生成) protobuf json_format 转换 Web 前端、跨语言消费

格式选择的判断法则:训练管线选 Parquet,投稿/审阅选 pbtxt,历史复现选 pb.gz。Parquet 的 footer 元数据与 row group 结构是为机器消费设计的;pbtxt 的可 diff 性是为人工审核设计的;.pb.gz 则是 2025 年前所有历史分析的事实格式。三种格式可以经 ord_schema 工具链无损互转(反应语义不变),因此格式差异不应成为阻碍——真正需要警惕的是跨格式脚本中隐含的行为差异(物化 vs 流式,见坑点 1/6)。

§3.4 存储大小

  • uspto-grants 合并数据集:1.8M 条反应 / 1.1 GB(Parquet,README)。
  • 全库总大小无官方公布数字(全库经 Git LFS/Hugging Face 分发);Hugging Face 数据集页标注行数规模档为 1M–10M。
  • 单个精选 HTE 数据集通常为 KB–MB 量级(数百至数千条反应)。
  • 估算全库体量的方法:官方未公布总量数字,可靠做法是克隆仓库后对 data/ 目录执行 git lfs ls-files -s 汇总文件大小,或用 Hugging Face API 遍历镜像文件树求和;两种方法都随主干演进而变化,引用时应注明统计日期。
  • 带宽考量:GitHub LFS 为共享配额,全量获取务必走 Hugging Face 镜像(§6.2);1.1 GB 的 uspto-grants 单文件配合流式读取,普通笔记本即可完成全库最大单数据集的处理。

§3.5 标注方式

标注(反应结果)来自三类途径:

  1. 文献/专利整理:提交者按 schema 逐字段转录原始记录,“应描述实验室实际发生的事,而非理想化流程”(JACS 论文)。
  2. 仪器程序化写入:HTE 平台通过 Python API 批量生成记录(模板枚举机制可将一条模板反应扩展为数百上千条)。
  3. 自动校验兜底:validate_dataset.py 检查必填字段(inputs、outcomes)、SMILES 可解析性、ID 正则、单位非负等(校验文档)。

§3.6 标注者资质与一致性

  • 提交者主要为发表原始研究的化学家(论文作者本人整理自己的数据),或数据库维护团队。
  • 治理委员会(MIT/UCLA/Merck 等 5 名常任成员)与维护者通过 GitHub PR 审核投稿;官方维护流程对数据集文件执行 process_dataset.py --update --cleanup 统一分配 ID 与时间戳(HF 数据集卡)。
  • 一致性:跨数据集间字段填充率与测量方法不统一(如产率 vs 转化率),官方未发布标注者间一致性统计;使用前应按 §7.2 自行抽查。

资质结构的启示:ORD 的"标注者"不是专职标注团队,而是"数据的原始产生者"——这是学术数据共享的理想模式(谁做实验谁录入,语义误差最小),但也意味着标注规范遵循度随投稿者经验波动。对新投稿者的实际约束主要来自自动校验的硬规则(必填、可解析、非负),而硬规则覆盖不到的软质量(产物归属、角色标注合理性)则依赖 PR 审核的人工环节。因此,从"硬规则层"看一致性是确定的,从"软语义层"看一致性是分层的——分层评估(按数据集/来源机构)比单一汇总指标更能反映真实质量。

§3.7 采集周期

  • 专利提取部分覆盖 1976–2016 年美国专利(USPTO/Lowe 来源)。
  • 社区投稿为持续滚动模式,自 2020 年起经 PR 合入;最后确认的大型合并为 2025-07-31。
  • 每条记录的实验时间以 provenance 的 RecordEvent 与文献发表时间为准,字段填充不完整(见 §4.5)。
  • 时间口径的三层含义需区分:实验实际执行时间(最准确但最常缺)、文献发表时间(稳定可得,时间划分的首选代理)、记录入库时间(RecordEvent,反映数据集演化而非化学时间)。做时间外推评估时明确声明用的是哪一层口径——不同口径下"新年份"的含义差异可达数年。

§3.8 地域覆盖

全球范围:期刊与专利来源覆盖全球主要化学研究地区;治理与投稿机构集中于北美、欧洲与东亚的学术与工业实验室。数据库本身无地域访问限制。

§3.9 实验技术与设备规格

技术类型 schema 支持点 记录内容
常规台面反应 setup.vessel、stirring 玻璃器皿类型、容量、搅拌方式与速率
高通量实验(HTE) 模板枚举 + Data 附件 微孔板、自动化平台、平行条件网格
流动化学 FlowConditions/FlowRate 流速(单位枚举)、反应器停留参数
电化学 ElectrochemistryConditions/Cell 电流/电压/电解池类型
光化学 IlluminationConditions 波长、光源类型、辐照强度

设备字段的建模提示:这些子结构大多是"类型枚举 + CUSTOM 自由描述"的双轨设计——枚举值保证可统计,CUSTOM 时强制填写 details 保证不失真。做条件推荐模型时,建议把枚举部分做 one-hot/嵌入特征,CUSTOM 描述留给文本编码器,两路特征在后端融合;直接把 CUSTOM 文本丢弃会系统性丢失非标准装置信息(而恰恰是非标准装置上的反应数据最稀缺、最有预测价值)。

§3.10 深度溯源链

每条 Reaction 的 provenance section 记录:文献 DOI / 专利号 → 作者(可含 ORCID)→ 提交者与 RecordEvent 时间 → 数据集 ID(ord_dataset- 前缀)→ Git commit。USPTO 数据的逐反应专利出处存于 Reaction.provenance.patent,因此即使月度分片被合并,单条反应的原始专利仍可回溯(ord-data README)。

溯源链的实操含义:当你发现两条记录疑似同源(同一反应的不同转录),可以用(专利号/DOI + canonical SMILES 集合)作为"同源键"做聚合分析;当多篇论文引用同一 ORD 数据集时,数据集 ID + commit 才是唯一可靠的"版本指纹",论文发表年份与 DOI 只能定位到论文而无法区分数据集的修订。官方 Zotero 组维护着"哪些论文使用了 ORD 数据/schema/工具"的清单,出现遗漏时可通过 help@open-reaction-database.org 申报(官方 Overview)。

§4 数据结构

§4.0 目录树

数据获取后的仓库结构预览(Parquet 主干形态):

ord-data/
├── LICENSE                              # CC-BY-SA-4.0
├── CITATION.cff                         # 引用元数据(Zenodo DOI 10.5281/zenodo.4321713)
├── CONTRIBUTING.md                      # 投稿流程说明
├── retired_datasets.csv                 # 499 个退役数据集 ID → 替代 ID 映射
├── scripts/
│   └── download_from_huggingface.py     # 推荐下载脚本(支持 --allow-pattern 子集下载)
└── data/                                # Git LFS 管理的数据目录(读取重定向至 HF 镜像)
    ├── 4d/
    │   └── ord_dataset-1158e351757f315b93cbcbe7bc55f38e.parquet
    │       # uspto-grants:1.8M 条反应 / 1.1 GB
    └── <两位十六进制>/                    # 其余数据集按 dataset ID 前两位分桶
        └── ord_dataset-<32位十六进制>.parquet

每个 Parquet 文件即一个数据集:行 = 序列化 Reaction 消息;文件 footer 携带数据集名、描述与 ID。Dataset.reaction_ids(指向外部反应的引用)不持久化,reaction_id 列是唯一事实来源;不含任何反应的数据集无法写入(ord-data README)。

§4.1 DAIMS 字段字典(8 列)

先总览 Reaction 消息的九大 section(与创始论文图 2 对应),再进入逐字段字典:

Section 语义角色 典型子结构 建模相关性
identifiers 反应级标识(名称/RXN_SMILES 等) type + value 对 检索键、去重键
inputs 投料 ReactionInput → Compound(identifiers + amounts/roles) 反应表征主特征
setup 装置 vessel、automation、flow/electro/photo 子消息 工艺复现特征
conditions 条件 temperature/pressure/stirring/illumination/electric current/flow rate 条件推荐/产率协变量
notes 自由文本备注 comment 字符串 文本挖掘可选
observations 过程观察 comment + 图像附件 多模态扩展
workups 后处理序列 addition/wash/filter/… 步骤列表 流程建模
outcomes 结果 products[] → measurement[](YIELD 等)+ analysis 预测标签
provenance 溯源 publication/patent/person/RecordEvent 划分、去重、审计

以 Reaction 消息为核心的 8 列字段字典(示例值采用官方文档与论文给出结构):

字段名 类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
reaction_id string 反应唯一主键,入库时分配 ord-1a2b3c4d…(32 位十六进制) 样本去重、交叉引用 无(系统生成) 无(必有) 匹配 ^ord-[0-9a-f]{32}$
inputs repeated ReactionInput 投料组分:化合物(SMILES/名称)+ 量(质量/摩尔/体积/浓度) {"components": [{"identifiers": [{"value": "CCO", "type": "SMILES"}]}]} 反应表征、条件模型输入 转录误差;等价物(e.e. 当量)表示方式不一 字段整体省略 = 未记录 必填(校验强制 inputs 非空)
setup message 装置:器皿、自动化平台、流动/电化学/光化学专属配置 {"vessel": {"type": "ROUND_BOTTOM_FLASK", "material": {"type": "GLASS"}}} 工艺可复现性特征 自由文本字段误差大 省略 = 未记录 枚举 + CUSTOM(须填 details)
conditions message 温度/压力/搅拌/光照/电流/流速等 {"temperature": {"setpoint": {"value": 25, "units": "CELSIUS"}}} 条件推荐、产率协变量 传感器精度未统一 省略 = 未记录 数值非负;Percentage ∈ [0, 105]
outcomes repeated ReactionOutcome 产物列表 + 每个产物的 measurement(YIELD/PURITY/CONVERSION)+ 分析方法 {"products": [{"identifiers": [{"value": "…", "type": "SMILES"}], "measurement": [{"percentage": {"value": 87}, "type": "YIELD"}]}]} 产率回归标签、产物预测标签 测量方法异质(§7.2) 无产物 = 分析未完成或未记录 必填(至少一个 outcome)
workups repeated ReactionWorkup 后处理步骤序列(萃取/洗涤/柱层析/添加内标等) {"type": "ADDITION", "input": {"components": [...]}} 流程建模、自动化复现 顺序语义重要(官方 Issue #743 讨论顺序语义) 省略 = 未记录 步骤类型枚举
observations repeated ReactionObservation 过程观察(颜色变化、沉淀等),可附图像 {"comment": "solution turned yellow"} 文本挖掘、多模态扩展 主观描述 省略 = 未记录 自由文本 + Data 附件
provenance message 溯源:DOI/专利、作者(ORCID)、RecordEvent 时间、提交者 {"publication": {"doi": "10.1021/…"}, "patent": "US…", "record_created": {"time": {"value": "…"}}} 去重、时间切分、来源过滤 文献元数据转录误差 省略 = 未记录 doi/patent/person 复合结构

文件级元数据(Parquet footer):dataset_id(匹配 ^ord_dataset-[0-9a-f]{32}$)、数据集名与描述;附加的 data 消息可内嵌 float_value/integer_value/bytes_value/string_value/url 五类载荷(schema 文档)。

§4.2 标签分布

  • 产率标签:记录于 outcomes 产物的 measurement(type=YIELD)。社区分析指出公开反应数据严重偏向高产率区间,直接影响可训练模型的类型与评估口径(Mercado et al., JCIM 2023)。
  • 解读提醒:此处"标签"指化学实验结果标签(产率/转化率/纯度),与医疗数据集的疾病标签不同——它连续、有测量误差、且测量方法本身是重要协变量,统计时务必连 measurement.type 一起交叉计数。
  • 测量类型分布:YIELD、CONVERSION、PURITY 混合存在;USPTO 专利衍生记录普遍缺少结构化产率,产率标签主要集中于精选文献数据集。
  • 官方未发布全库标签分布统计;建模前应按下述代码自行统计:
from collections import Counter
from ord_schema import datasets

view = datasets.load_dataset("data/4d/ord_dataset-1158e351757f315b93cbcbe7bc55f38e.parquet")
# 注意:uspto-grants 有 1.8M 条反应,全量遍历前建议先抽样评估
types = Counter()
for reaction in view:
    for outcome in reaction.outcomes:
        for product in outcome.products:
            for m in product.measurements:
                types[m.type] += 1
print(types.most_common())

§4.3 关键统计

统计项 数值 来源
反应总数 约 230 万(截至 2025) consultachem 综述
精选提交数 约 13 万(截至 2025) 同上
最大单数据集 1,800,000 条 / 1.1 GB ord-data README
退役数据集 ID 数 499(USPTO 分片合并所致) 同上
数据集内唯一键正则 ^ord-[0-9a-f]{32}$ schema 文档
ord-schema 发布节奏 142 个 release(2021-03-03 首发至 2026-09) libraries.io
Hugging Face 规模档 1M–10M 行(parquet) HF 数据集页

抽样统计建议:全库级统计(字段填充率、测量类型分布、反应类别频次)官方未发布,自行统计时对 uspto-grants 采用分 row group 抽样即可获得稳定估计——Parquet 的 row group 是并行与采样的天然单元(view.num_row_groups 给出上界),无需全量反序列化 1.8M 条反应。

§4.4 数据层级

GitHub 仓库 ord-data
└── Dataset(数据集 = 一个 Parquet 文件,ord_dataset-<32hex>)
    └── Reaction(反应 = 一行,ord-<32hex>)
        ├── inputs(多个 ReactionInput → Compound → identifiers/amounts)
        ├── setup / conditions(装置与条件子消息树)
        ├── observations / workups(过程序列)
        └── outcomes(多个 ReactionOutcome → ProductCompound → measurements)
            └── analysis(分析数据:内嵌数值/图像字节/URL)

层级要点:与医疗数据的"患者 → 就诊 → 检查"层级不同,ORD 的层级是"数据集 → 反应 → 结果"的实验记录树——Dataset 是文献/实验系列的边界(最适合做分组划分的单位),Reaction 是唯一事实样本(样本级操作的单位),outcomes 允许一条反应有多个结果记录(不同分析批次),因此"样本数"在 ORD 语境下必须先说清是反应数还是(反应 × 产物)对数。uspto-grants 的 1.8M 是反应数;按产物对展开后计数会更高。跨层级引用(CrudeComponent 指向数据集内另一反应)使层级不是严格的树,而是有向图——这既是泄漏分析需要图视角的原因,也是校验规则强制"引用必须闭合在同一数据集内"的动机(schema 文档)。

§4.5 缺失值与信息性缺失

缺失情形 表现 是否有信息含义 处理建议
条件字段省略 conditions 子消息为空 弱信息性:多为转录缺失而非"未控制" 条件模型中显式加"缺失"类别,勿静默填充
产率缺失 产物无 YIELD measurement 强信息性:USPTO 记录普遍缺产率,不等于低产率 产率任务只用品名标注子集;不做均值填充
失败反应缺失 全库以成功反应为主 强信息性:发表偏倚 把"负样本"视为分布外的建模假设写入文档
时间戳部分缺失 RecordEvent 不完整 弱信息性 时间切分时改用文献发表年份
amount 用 has_derived_amount CrudeComponent 引用母反应量 结构性:量由上游反应派生 校验规则:此时 mass/volume 必须为空
Data 载荷五种类型 float/integer/bytes/string/url 任选其一 结构性:不同载荷类型不可互转 读取时先判类型再分支处理;bytes 载荷必须声明 format
旧格式字段(.pb.gz 时代脚本) Dataset.reaction_ids 在 Parquet 中不持久化 结构性:格式代际差异 以 reaction_id 列为事实来源重写脚本

缺失机制小结:ORD 的"缺失即省略"语义干净(不会出现哨兵值污染数值列),但把"为什么缺失"的解释责任转移给了使用者——同一列缺失在不同子集中含义完全不同(专利转录缺失 vs 实验未做 vs 分析失败)。因此建议每个下游项目维护一张如上表的"缺失语义映射",作为数据卡的一部分随模型发布。

§5 数据划分与使用建议

§5.1 官方划分

ORD 不提供官方训练/验证/测试划分。数据以"数据集"为单位组织(一个 Dataset 为一组相关反应),划分需使用者自行设计。官方提供的建模辅助仅到工具层:ord_schema 的转换与统计脚本(如 messages_to_dataframe 可把消息树展平为 DataFrame)与 examples 目录的 Notebook 示例;划分逻辑需自建或采用派生基准。

使用官方 DataFrame 导出时的一个务实提醒:展平后的宽表只是"视图"而非"数据集"——列的取舍、嵌套字段的展开深度都会影响后续划分与泄漏行为(例如按 reaction_id 展平会掩盖 CrudeComponent 引用链)。建议把展平逻辑也纳入版本控制,与划分脚本一起评审。

这一设计是刻意为之:ORD 的治理委员会把"划分定义权"留给任务作者——同一份数据在产率预测、条件推荐与前向预测三个任务上的合理划分完全不同,官方一旦固化某一种划分,反而会诱导全社区在同一把尺子上过拟合。

§5.2 社区惯例划分

  • 随机划分:对 USPTO-grants 全库随机划分(常见 80/10/10),用于前向反应预测的通用评测;因数据量大,随机划分下方差较小。
  • 时间划分:以专利/文献年份切分训练与测试,模拟真实前瞻预测;USPTO 数据逐反应专利信息可从 Reaction.provenance.patent 恢复,支持时间切分。
  • 数据集级划分:按 Dataset 分组划分,防止同一实验系列的样本同时出现在训练与测试中。
  • 基准复用:ORDerly(Wigh et al., JCIM 2024)从 ORD 派生标准化基准数据集与划分,推荐直接复用以保证可比性。

选择建议:审稿场景下"随机 + 时间"双报告已是事实上的最低标准;若你的贡献是"新架构",加做骨架级分组划分以回应泛化性质疑;若你的贡献是"新任务定义",则应发布你的划分脚本并把划分本身作为可复现工件版本化——这也是 ORDerly 获得社区采纳的原因:它把划分从论文附录搬进了带版本控制的代码库。

§5.3 泄漏风险(重点)

  1. 跨来源重复:同一反应可能同时以专利记录与期刊记录形式出现,且 USPTO 数据内部存在同族专利重复;随机划分会把"几乎相同"的反应分进训练与测试两侧,虚高指标。
  2. 网格数据集的骨架泄漏:HTE 数据集内反应共享底物骨架;若按反应随机划分,模型只需记忆骨架即可获得高分。产率任务应在骨架级别分组切分。
  3. 模板近邻:逆合成模板提取后,同一模板在训练/测试中大量共存;评估模板泛化时需按模板频次分层。
  4. CrudeComponent 引用链:某反应的粗产物作为另一反应的投料时(has_derived_amount=True),两条反应强相关,划分时应归入同侧。
  5. 枚举生成的同源样本:由同一条模板反应枚举出的数据集,样本间只差个别试剂——按反应随机划分几乎必然泄漏;这类数据集内应做"参数空间划分"(按底物或试剂维度切分)而非样本级随机。

§5.4 交叉验证建议

  • 小规模精选数据集(< 5,000 条):5 折分组交叉验证(按数据集或骨架分组),报告折间标准差。
  • USPTO 级大规模任务:单次划分即可,但至少同时报告随机划分与时间划分两套结果。
  • 折间监控:交叉验证的目的是估计"数据不确定性"而非"超参不确定性"——超参搜索应在训练折内部完成再进入验证折,避免把验证折信息泄入模型选择(这是小数据集上最常见的隐性泄漏)。

§5.5 外部验证建议

  • 用 ORDerly 基准做标准化对比;跨库(如与 Pistachio 商业数据)验证时注意许可限制。
  • 评估条件推荐模型时,建议以"新近年份文献数据集"为外部测试集,检验对新兴反应类型(光/电化学)的外推能力。
  • 外部验证的最小可行设计:选取 2–3 个未参与任何训练/调参的精选数据集(优先选择与训练数据来源机构不同的),冻结全部预处理与模型权重后一次性评估,报告与内部验证的差值并讨论方向(通常是下降,重点是下降幅度与失效模式)。
  • 外部结果的解释纪律:外部下降可能来自分布差异而非模型缺陷,建议同步报告外部集的"来源构成 + 标签分布"与训练集的差异量化(如 PSI/JS 散度),把"数据漂移"与"模型失败"区分开。

§6 AI 就绪指南 ⭐

§6.0 云端快速启动

Google Colab / Binder 均可直接使用(官方 examples 目录提供 Notebook 示例):

# Colab 快速启动:安装官方 schema 工具链
# 运行后即可在云端加载单个数据集进行探索,无需本地环境
!pip install ord-schema
from ord_schema import datasets
print("ord-schema ready")

§6.1 快速上手

目录结构预期:代码假设你已通过 §6.2 的脚本把数据下载到 data_root 目录;data_root 即 ord-data 仓库根目录(含 data/ 子目录)。data_root 拼接关系:所有数据文件路径 = data_root + data/<两位十六进制>/<dataset_id>.parquet。最小可用子集:单个精选 HTE 数据集(几 MB 即可跑通全流程),不必下载 1.1 GB 的 uspto-grants。

# 快速上手:加载 ORD Parquet 数据集并查看第一条反应
# 预期目录结构:data_root/data/4d/ord_dataset-…parquet(uspto-grants)
# 最小可用子集:任选一个精选 HTE 数据集(几 MB)
import ord_schema  # pip install ord-schema
from ord_schema import datasets
from ord_schema.proto import reaction_pb2

data_root = "ord-data"  # git clone 的仓库根目录
path = f"{data_root}/data/4d/ord_dataset-1158e351757f315b93cbcbe7bc55f38e.parquet"

view = datasets.load_dataset(path)   # 返回流式 DatasetView(Parquet)或 Dataset 消息
print(type(view), len(view))         # len() 从 Parquet footer 读取,毫秒级返回
rxn = view[0]                        # 返回该反应的反序列化副本
print(rxn.identifiers)               # 反应标识符(NAME/SMILES/RXN_SMILES 等)

进一步探查的两个常用入口:

# 入口 A:用 ID 精确定位反应(替代线性遍历)
# view.get_reaction("ord-…") 直接按主键取回;iter_reaction_ids() 只产出 ID 列,
# 适合先建索引再批量取数的两段式处理
target = view.get_reaction(rxn.reaction_id)

# 入口 B:按 row group 分片(并行/抽样)
# row group 是 Parquet 的物理分片,也是官方推荐的并行与采样单元
for i in range(min(view.num_row_groups, 4)):
    subset = list(view.iter_reactions(row_group=i))
    print(f"row group {i}: {len(subset)} reactions")

数据探查的推荐顺序:先看文件级元数据(数据集名/描述/ID,决定"这是什么数据")→ 再抽样 3–5 条反应读完整消息树(决定"字段怎么填")→ 最后跑 §4.2 的统计代码(决定"标签怎么分布")。顺序错了会浪费时间在错误的假设上——例如先假设"都有产率"再发现 USPTO 子集普遍没有。

§6.2 数据获取

项目 内容
官方数据仓库 github.com/open-reaction-database/ord-data
推荐下载方式 Hugging Face 镜像脚本(不占 GitHub LFS 带宽配额)
镜像地址 huggingface.co/datasets/open-reaction-database/ord-data
大小参考 uspto-grants 1.1 GB;精选子集 KB–MB 级
申请流程 无需注册/申请,直接下载;投稿才需 GitHub PR 流程
许可 CC-BY-SA-4.0(署名 + 相同方式共享)
# 方式一(推荐):从 Hugging Face 镜像下载,可按前缀过滤子集
pip install huggingface_hub
python scripts/download_from_huggingface.py \
  --allow-pattern 'data/4d/*.parquet' \
  --output-dir .

# 方式二:跳过 LFS 克隆仓库骨架,再补数据
GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/open-reaction-database/ord-data.git
cd ord-data && python scripts/download_from_huggingface.py

# 方式三:直接 git clone(需 Git LFS;会占用 GitHub 共享 LFS 配额,官方不建议)
git lfs install && git clone https://github.com/open-reaction-database/ord-data.git

下载策略对照:方式一适合"只关心特定数据集"的多数场景;方式二适合需要 retired_datasets.csv、CITATION.cff 等仓库级小文件的场景(骨架克隆只有几 MB);方式三仅在全量镜像且不介意配额消耗时使用。若需要浏览数据内容后再决定下载哪些,先用 ord-interface 在线检索界面筛选目标反应,记下所属数据集 ID,再回到脚本按 ID 前缀下载。

投稿(写路径)简表:ORD 的数据流动是双向的,投稿侧流程为——Fork ord-data → 把数据集文件放在仓库根(普通 Git 文件,无需 LFS 配置)→ 发起 PR → 自动工作流执行验证(validate_dataset.py)→ 维护者合并时由 process_dataset.py --update --cleanup 统一分配 reaction/dataset ID 并转成主干格式(Parquet/LFS 对象)。仅做格式转换或批量迁移的维护者 PR 可加 skip-update-submission 标签跳过重写步骤,但验证步骤始终执行(HF 数据集卡维护者说明)。

§6.3 预处理全流程

从 Parquet 到模型可用的表格/张量:

# 预处理:Parquet → 反应 SMILES + 产率标签的 DataFrame
# 步骤:流式读取 → 提取反应标识/产物/产率 → 过滤有效标签 → 类型统一
import pandas as pd
from ord_schema import datasets

def extract_rows(path, limit=None):
    view = datasets.load_dataset(path)
    rows = []
    for i, rxn in enumerate(view):
        if limit and i >= limit:
            break
        # 反应标识:优先取 RXN_SMILES 类型的标识符
        rxn_smiles = next((x.value for x in rxn.identifiers
                           if x.type == reaction_pb2.ReactionIdentifier.RXN_SMILES), None)
        for outcome in rxn.outcomes:
            for product in outcome.products:
                prod_smiles = next((x.value for x in product.identifiers
                                    if x.type == reaction_pb2.CompoundIdentifier.SMILES), None)
                for m in product.measurements:
                    if m.type == reaction_pb2.ProductMeasurement.YIELD and m.percentage.value:
                        rows.append({
                            "reaction_id": rxn.reaction_id,
                            "product_smiles": prod_smiles,
                            "yield": m.percentage.value,
                            "analysis": reaction_pb2.ProductMeasurement.AnalysisType.Name(m.analysis),
                        })
    return pd.DataFrame(rows)

df = extract_rows("ord-data/data/4d/ord_dataset-1158e351757f315b93cbcbe7bc55f38e.parquet", limit=200000)
df = df.drop_duplicates(subset=["reaction_id", "product_smiles"])  # 去重(跨测量重复)

标准化要点:

  1. 单位统一:用量与条件字段带单位枚举,官方 UnitResolver 可把 "1.25 g" 之类字符串解析为标准量(schema 文档)。
  2. SMILES 规范化:入库校验已保证可被 RDKit 解析,但跨数据集仍建议统一做 canonical SMILES + 盐型/电荷归一。
  3. 测量类型分列:YIELD 与 CONVERSION 不可混为一谈(见坑点 8),DataFrame 中保留 analysis/type 列。
  4. JSON 导出:需要 Web/跨语言消费时,用 google.protobuf.json_format.MessageToJson 把消息转 JSON(官方 README 提供转换代码):
# JSON 导出:单条反应消息 → 人类可读/跨语言可用的 JSON
# 适用:Web 前端联调、Notebook 展示、轻量 ETL;不推荐用于全库(体积膨胀严重)
import json
from ord_schema import datasets
from ord_schema.message_helpers import load_message
from ord_schema.proto import dataset_pb2
from google.protobuf.json_format import MessageToJson

path = "ord-data/data/4d/ord_dataset-1158e351757f315b93cbcbe7bc55f38e.parquet"
view = datasets.load_dataset(path)
rxn = view[0]  # 取第一条反应做演示
rxn_json = json.loads(MessageToJson(
    message=rxn,
    always_print_fields_with_no_presence=False,
    preserving_proto_field_name=True,  # 保留 snake_case 字段名
    indent=2,
    ensure_ascii=True,
))
print(list(rxn_json.keys()))  # 查看顶层 section
  1. 历史格式回读:旧分析需要 .pb.gz 时,ord_schema.message_helpers.load_message 直接加载 Dataset 消息;新版本对 txtpb/binpb 等扩展名的兼容曾有缺口(Issue #776/#782),遇到"格式不被接受"报错时先确认 ord-schema 版本并升级到最新 release。

§6.4 PyTorch DataLoader 完整代码

以下代码实现"反应 → 产物对 + 产率标签"的最小可运行 Dataset(细节折叠):

<details>
<summary>点击展开完整 PyTorch Dataset / DataLoader 代码</summary>

# PyTorch 产率回归 Dataset
# 目录预期:DATA_ROOT/data/…(ord-data 仓库结构);最小子集:任一含产率的精选数据集
# 依赖:pip install ord-schema torch rdkit pandas
import torch
from torch.utils.data import Dataset, DataLoader
from rdkit import Chem
from ord_schema import datasets
from ord_schema.proto import reaction_pb2

def canonical(smiles):
    mol = Chem.MolFromSmiles(smiles)
    return Chem.MolToSmiles(mol) if mol else None

class ORDYieldDataset(Dataset):
    """从单个 ORD Parquet 数据集构建产率回归样本。

    每个样本 = (反应物拼接 SMILES, 产物 SMILES, 产率标签)。
    说明:真实模型应换成图结构或预训练分子编码器;此实现聚焦数据管线。
    """

    def __init__(self, parquet_path, limit=None):
        self.rows = []
        view = datasets.load_dataset(parquet_path)
        for i, rxn in enumerate(view):
            if limit and i >= limit:
                break
            reactants = set()
            for ri in rxn.inputs:
                for comp in ri.components:
                    for ident in comp.identifiers:
                        if ident.type == reaction_pb2.CompoundIdentifier.SMILES:
                            c = canonical(ident.value)
                            if c:
                                reactants.add(c)
            if not reactants:
                continue
            for outcome in rxn.outcomes:
                for product in outcome.products:
                    p = next((canonical(x.value) for x in product.identifiers
                              if x.type == reaction_pb2.CompoundIdentifier.SMILES), None)
                    for m in product.measurements:
                        if m.type == reaction_pb2.ProductMeasurement.YIELD and m.percentage.value:
                            if p:
                                self.rows.append((".".join(sorted(reactants)), p,
                                                  float(m.percentage.value)))

    def __len__(self):
        return len(self.rows)

    def __getitem__(self, idx):
        r, p, y = self.rows[idx]
        # 占位特征:SMILES 长度与原子计数;生产环境请替换为图/指纹特征
        r_mol, p_mol = Chem.MolFromSmiles(r), Chem.MolFromSmiles(p)
        feat = [len(r), r_mol.GetNumAtoms(), len(p), p_mol.GetNumAtoms()]
        return torch.tensor(feat, dtype=torch.float32), torch.tensor(y / 100.0, dtype=torch.float32)

loader = DataLoader(ORDYieldDataset("ord-data/data/4d/ord_dataset-….parquet", limit=50000),
                    batch_size=64, shuffle=True, num_workers=2)
for feats, labels in loader:
    break  # 管线自检

</details>

配套的最小训练循环(与上方 Dataset 衔接,用于管线自检而非追求精度):

# 最小训练循环:验证 DataLoader → 模型 → 优化器 → 评估链路跑通
import torch
import torch.nn as nn

model = nn.Sequential(nn.Linear(4, 64), nn.ReLU(), nn.Linear(64, 1))
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
loss_fn = nn.MSELoss()

for epoch in range(3):
    for feats, labels in loader:
        optimizer.zero_grad()
        loss = loss_fn(model(feats).squeeze(-1), labels)
        loss.backward()
        optimizer.step()
    print(f"epoch {epoch}: loss={loss.item():.4f}")  # 仅用于管线自检

生产级模型请替换特征层:序列路线用预训练 SMILES Transformer 的编码向量;图路线用 DGL/PyG 构建分子图并做消息传递聚合;条件特征(温度/催化剂/溶剂枚举)经嵌入层与分子表征拼接后进入回归头。

§6.5 坑点(8 个)

⚠️ 坑点 1:Parquet 加载函数名冲突导致内存爆炸(分类:工程陷阱)

问题:ord_schema 中存在两个同名函数——ord_schema.datasets.load_dataset 对 Parquet 返回流式 DatasetView,而 ord_schema.parquet.load_dataset 会把整个文件物化为 Dataset 消息;对最大的 uspto-grants 文件意味着 180 万条反应被静默整体反序列化,内存极易耗尽。
症状:进程在"读取文件"阶段 RSS 疯涨直至被 OOM killer 杀死;或者 Notebook 卡死但无报错。
解决:

  1. 简单方法:始终从 ord_schema.datasets 导入 load_dataset;只读场景不要加 as_dataset=True。
  2. 进阶方法:需要 protobuf 接口时用 view.to_proto() 只在小文件上物化;大文件改用 iter_reactions(row_group=…) 按 row group 分片并行处理。
  3. SOTA 方法:在 CI 中固定 ord-schema 版本并加内存断言测试(如 resource.getrusage 阈值),防止依赖升级后行为漂移。
    参考:ord-data README 对两种加载行为的说明

⚠️ 坑点 2:直接 git clone 拖垮下载(Git LFS 带宽配额)(分类:工程陷阱)

问题:数据文件以 Git LFS 存储,而 GitHub 的 LFS 带宽是全项目共享配额;大量使用者直接 clone 会耗尽配额,导致所有人(包括你自己)下载失败。官方已把 LFS 读取重定向到 Hugging Face 镜像。
症状:clone 长时间卡在 “Downloading objects”;或收到 LFS 带宽/存储配额报错。
解决:

  1. 简单方法:用官方脚本从 Hugging Face 下载:python scripts/download_from_huggingface.py --allow-pattern 'data/4d/*.parquet'(可重复传入按前缀过滤)。
  2. 进阶方法:GIT_LFS_SKIP_SMUDGE=1 git clone … 先取仓库骨架(含 retired_datasets.csv 等小文件),再按需补数据。
  3. SOTA 方法:团队内部建一次性全量镜像(HF CLI 全量同步),成员从内网镜像读取,把公网配额留给增量更新。
    参考:ord-data README “Git LFS and the Hugging Face mirror”

⚠️ 坑点 3:无官方划分 + 跨来源重复造成评估泄漏(分类:数据泄漏)

问题:ORD 不提供官方划分;同一反应可能以专利记录与期刊记录两种形式存在,USPTO 内部还有同族专利重复。随机划分会让"近乎相同"的反应跨训练/测试两侧出现,指标虚高。
症状:前向预测 top-k 准确率漂亮,但在全新文献数据集上大幅回落;去重统计发现测试集中高比例反应在训练集存在近重复。
解决:

  1. 简单方法:划分前按 canonical 反应 SMILES(反应物+产物集合哈希)去重。
  2. 进阶方法:按 Dataset 分组或按专利/文献年份做时间划分;用 Reaction.provenance.patent 恢复逐反应专利归属。
  3. SOTA 方法:直接采用 ORDerly 派生的标准化基准与划分(Wigh et al., JCIM 2024),保证与社区结果可比。
    参考:ORDerly 论文;ord-data README(USPTO 合并说明)

⚠️ 坑点 4:把"无产率标注"当"低产率"或直接均值填充(分类:标签理解)

问题:产率缺失集中在 USPTO 专利衍生记录(缺失机制与数据来源强相关,而非与化学反应性无关);同时公开数据整体偏向高产率反应。均值填充或把缺失当 0 都会引入系统性标签噪声。
症状:产率回归模型在"有标注子集"内评估尚可,全量推理时分布明显偏移;标签直方图出现人为堆积峰。
解决:

  1. 简单方法:产率任务只用带 YIELD measurement 的子集,并把"数据来源类型"作为特征/分层变量记录。
  2. 进阶方法:按测量类型(YIELD/CONVERSION/PURITY)分列建模,禁止混池;评估时报告"数据来源分层"的分指标。
  3. SOTA 方法:把缺失视为共变量做选择偏差建模(如对"是否被标注"训练辅助分类器做逆概率加权),并在论文中披露标注偏倚。
    参考:Mercado et al., JCIM 2023(数据偏向高产率的量化讨论)

⚠️ 坑点 5:交叉引用校验失败(CrudeComponent / reaction_id 正则)(分类:工程陷阱)

问题:自动校验强制 reaction_id 匹配 ^ord-[0-9a-f]{32}$;CrudeComponent/CompoundPreparation 中引用的 reaction_id 必须指向同一数据集内另一条反应,且数据集内反应 ID 必须唯一。手工构造或从 ELN 导出的数据集常在提交/校验时连环报错。
症状:validate_dataset.py 抛出 ValidationError,报错信息指向嵌套子消息,难以定位到具体反应。
解决:

  1. 简单方法:提交前本地先跑 python -m ord_schema.scripts.validate_dataset input.pb.gz,逐条修复。
  2. 进阶方法:用 validate_message(raise_on_error=False) 拿到全部错误清单批量修复;派生量(has_derived_amount=True)的反应用 reaction_id 引用母反应并留空 mass/volume。
  3. SOTA 方法:把 ORD 校验脚本纳入 ELN 导出流水线的门禁步骤,导出即校验。
    参考:schema 校验文档

⚠️ 坑点 6:DatasetView 索引返回副本,原地修改不生效(分类:工程陷阱)

问题:Parquet 视图的 view[i] 返回 freshly 反序列化的副本,而非活引用;对它做原地修改不会写回文件。同时 view.reactions 不与 Python list 相等(== 比较恒为 False)。另外 Parquet 不持久化 Dataset.reaction_ids,reaction_id 列才是事实来源。
症状:“我明明改了字段,保存后没变化”;依赖 reactions == list(...) 的单测意外失败;脚本里 Dataset.reaction_ids 读出来永远是空的。
解决:

  1. 简单方法:需要修改时 dataset = datasets.load_dataset(path, as_dataset=True) 物化后修改,再用 save_message 写回。
  2. 进阶方法:比较逻辑统一改用 list(view.reactions);需要 ID 列表时用 view.iter_reaction_ids()。
  3. SOTA 方法:封装一个薄适配层(load/mutate/save 三个原语),屏蔽 view 与 message 的语义差异,业务代码不直接触碰 API 细节。
    参考:ord-data README(DatasetView 语义说明)

⚠️ 坑点 7:退役数据集 ID 断链(分类:工程陷阱)

问题:USPTO 月度分片合并后产生新数据集 ID,旧 ID 共 499 个被标记退役(489 个月度 uspto-grants 分片 + 10 个 USPTO-480K 旧分片)。引用旧 ID 的 notebook、缓存与下游数据库会静默失效。
症状:data/<前缀>/ord_dataset-<旧id>.parquet 路径不存在;或从旧分析报告点过来的链接 404。
解决:

  1. 简单方法:在仓库根目录 retired_datasets.csv 中查旧 → 新 ID 映射后替换路径。
  2. 进阶方法:数据加载层内置"退役 ID 自动重定向",命中映射表时打日志并透明替换。
  3. SOTA 方法:对数据集 ID 建立内部注册表(ID、版本、SHA、用途),定期与上游 Git 历史对账。
    参考:ord-data README “Retired dataset IDs”

⚠️ 坑点 8:产率/转化率/纯度混用与单位边界(分类:评估误用)

问题:产物 measurement 的 type 包含 YIELD、CONVERSION、PURITY 等,语义不同(分离产率 ≠ 转化率 ≠ 纯度);Percent 类型取值范围被官方校验放宽到 [0, 105](容纳测量误差),因此存在 > 100 的"产率"。混池训练或直接把 >100 当离群值删除都会扭曲评估。
症状:回归模型出现系统性的产率高估/低估;数据清洗后样本量骤降且分布改变。
解决:

  1. 简单方法:按 measurement.type 分列;> 100 的值保留但单独记录(官方语义允许),在报告中给出两种口径的结果。
  2. 进阶方法:把 analysis 字段(如 UPLC-MS、NMR 定量、重量法)作为协变量;不同分析方法分别校准。
  3. SOTA 方法:对 HTE 网格数据集做"同一分析方法内部"的配对比较实验,消除跨方法系统误差后再评估模型增益。
    参考:schema 校验文档(Percentage [0, 105])

§6.6 数据增强

化学反应数据不能做图像式增强,安全的替代策略:

策略 安全性 说明
✅ SMILES 随机等价重写(non-canonical 枚举) 安全 不改变分子语义,常用于序列模型抗过拟合
✅ 试剂/溶剂角色保持的等价换算(质量 ↔ 摩尔 ↔ 当量) 安全 用 UnitResolver 换算后作为特征视图
✅ 数据集级混池 + 来源分层重采样 安全 缓解来源不平衡,保留分层评估
❌ 把 CONVERSION 直接乘上系数当 YIELD 危险 语义不等价(见坑点 8)
❌ 对同一反应做"盐型/溶剂化改写"后当新样本 危险 制造伪重复,加剧泄漏
❌ 用生成模型合成"新反应"扩充训练集再回测同分布 危险 评估分布被合成数据污染
❌ 把 provenance 中他人数据的引用直接改写成自己的观察 危险 破坏溯源链,违反数据完整性原则

§6.7 模型推荐表

任务 推荐架构 理由
前向反应预测(SMILES→SMILES) Transformer 序列到序列(Molecular Transformer 类) 反应 SMILES 序列建模成熟,USPTO 级语料充足
逆合成规划 模板检索 + 图神经网络排序 / 蒙特卡洛规划器 模板库可从 ORD 全库扩展
产率预测 分子图/指纹双塔 + 条件嵌入;小数据集用随机森林基线 HTE 网格数据量小,先建强基线再上深度模型
条件推荐 多标签/多任务分类(催化剂、溶剂、温度档位) 利用 schema 的结构化条件枚举
反应检索 反应指纹(如差分指纹 DRFP 类)+ 近似最近邻索引 子结构与差异编码检索高效

(上述为架构家族建议;各任务的具体 SOTA 数值见 §8.1 的代表性研究与 §8.2 说明——ORD 无统一排行榜,不同论文的数据子集与划分不可直接比较。)

选型时的两条反向忠告:其一,不要因为"USPTO 数据大"就默认所有任务都该在 USPTO 子集上做——任务与数据粒度不匹配(如在缺乏产率的专利数据上做产率预测)是新手最常见的方向性错误;其二,不要低估"小数据 + 好划分"的基准价值——几百条反应的网格数据集上,评估方法学的差异往往比模型架构的差异对结论影响更大。

§6.8 硬件需求表

任务规模 建议 CPU 建议 RAM GPU 磁盘
数据探索 + 精选子集建模 4 核 16 GB 无需/入门卡 10 GB(单数据集)
uspto-grants 流式处理 8 核 32 GB — 20 GB
大规模序列模型训练 16 核 64 GB 1×A100/40GB 或同级 50 GB(含 token 缓存)
全库镜像 + 反复全量实验 16 核 64 GB 2×A100 100 GB+

内存估算依据:流式模式下 RAM 占用由 row group 尺寸与批处理逻辑决定,与文件总大小无关(1.1 GB 文件可在 8 GB 内存内遍历);只有物化(as_dataset=True / to_proto())时 RAM 需求才与记录总数成正比,这也是坑点 1 的根源。GPU 需求完全取决于模型规模——数据管线本身可在无 GPU 环境完整验证。

§6.9 评估指标代码

# 前向反应预测:top-k 精确匹配准确率;产率回归:MAE / RMSE
import numpy as np

def topk_accuracy(pred_smiles_lists, true_smiles, k=3):
    """pred_smiles_lists: 每条样本的候选产物 SMILES 列表(按模型置信度降序)"""
    hits = sum(int(true in preds[:k]) for preds, true in zip(pred_smiles_lists, true_smiles))
    return hits / len(true_smiles)

def yield_metrics(y_true, y_pred):
    y_true, y_pred = np.asarray(y_true), np.asarray(y_pred)
    return {
        "MAE": float(np.mean(np.abs(y_true - y_pred))),
        "RMSE": float(np.sqrt(np.mean((y_true - y_pred) ** 2))),
    }

# 评估协议提醒:
# 1) 同时报告随机划分与时间划分两套结果(§5.2)
# 2) 产率指标必须按 measurement.type 与数据来源分层(坑点 4/8)
# 3) top-k 比较前对产物 SMILES 做 canonical 化,避免等价写法误判为错误

§6.10 MLOps 笔记

  • 版本对账:把 ord-schema 版本、数据集 ID(ord_dataset-<32hex>)与 Git commit 写进每次训练的元数据;ORD 的 dataset ID 在分片合并时会派生新 ID(坑点 7)。
  • 数据卡:为每个训练子集记录来源构成(专利 vs 精选文献)、测量类型分布与缺失率,对应 §7 DAIMS 结论。
  • 重复检测:入库前对(反应 SMILES 规范形)做哈希去重并持久化哈希列,作为划分与审计依据。
  • 上游同步:订阅 open-reaction-database 邮件列表或 watch ord-data 仓库;编辑器/接口迁移期(旧编辑器 2026-07-31 停用)留意官方公告(编辑器页面)。
  • 可复现性:Parquet footer 中存有数据集名/描述/ID,训练前 dump 一份随 artifact 归档。
  • 测试策略:为数据加载层写三层测试——schema 层(用官方 validate_message 做金标准校验)、行为层(DatasetView 的索引/比较语义,见坑点 6)、统计层(行数与标签分布的回归测试,防止上游合并导致静默漂移)。
  • 成本控制:把 uspto-grants 的流式遍历改为 row group 级并行(iter_reactions(row_group=…) 配合进程池),在 16 核机器上可将全库特征抽取从小时级压到分钟级;缓存中间特征时以(数据集 ID + commit + 特征版本)为缓存键,避免上游更新后命中脏缓存。
  • 告警设计:为"加载路径不存在"“行数环比骤变”"SMILES 解析率下降"三类异常设置硬告警——分别对应坑点 7(ID 退役)、上游大规模合并、schema 兼容性回归三类最可能的静默故障。

§7 质量评估与局限性

§7.1 已知偏倚表

偏倚类型 描述 严重程度 缓解措施
发表偏倚(成功反应为主) 公开数据严重偏向高产率反应,失败反应几乎缺位(Mercado 2023;C&EN 2021) 高 补充负样本研究设计;推理输出附"分布外"警示
来源不均衡 USPTO 专利衍生记录为体量主体,精选文献/HTE 占比小 高 按来源分层训练与评估;对目标领域过采样
条件信息缺失 专利衍生记录条件多为非结构化文本或缺失 中 条件任务限定精选子集;NLP 提取辅助回填(Ai 2024)
反应类型长尾 覆盖偏向药物化学常见转化,光/电化学等新类型占比低 中 对新类型任务做域外验证;关注 HTE Grant 补充数据
测量方法异质 产率/转化率/纯度混存,分析方法跨数据集不一 中 按 measurement.type/analysis 分层(坑点 8)
投稿社区构成 贡献机构集中于北美/欧洲工业界与顶尖高校 低 使用时说明覆盖范围;鼓励区域数据贡献

偏倚表的读法:严重程度为"高"的两项(发表偏倚、来源不均衡)都源自科学出版体系的结构性问题而非 ORD 的工程缺陷——ORD 的贡献恰恰是把偏倚显式化了(每条记录带来源标签,偏倚可被测量与校正),这比"把偏倚埋在非结构化文本里"的旧模式前进了一步。缓解措施落在两个层面:使用侧(分层训练/评估、把来源作协变量)与供给侧(HTE Grant 补充长尾数据、鼓励失败反应提交)。报告模型结果时,建议把本表作为 limitations 章节的起点逐条回应。

§7.2 标注质量

  • 标注由原始研究者/提交者整理并经自动校验(字段必填性、SMILES 可解析性、ID 正则、数值非负),但语义层面(产物归属是否正确、产率对应哪个产物)依赖提交者,官方未发布标注者间一致性统计。
  • 维护者流程(PR 审核 + process_dataset.py 重写规范化)提供了提交门禁;但跨数据集的字段填充率差异显著,建模前应抽样人工核查目标子集。

建模前的标注核查清单(建议逐项留档):

核查项 方法 通过标准
SMILES 解析率 RDKit 逐条解析 identifiers 100%(官方校验保证,异常即版本问题)
产物归属合理性 抽样 50 条对照原始文献 产物在文献产物列表内
产率标签对应关系 抽样核对 measurement 与文献产率 数值一致且类型正确(YIELD 非 CONVERSION)
条件字段填充率 分来源统计 conditions 非空率 按来源分档记录,不设统一阈值
角色标注一致性 试剂/催化剂/溶剂 role 分布抽查 与化学常识冲突率 < 5% 且记录在案

§7.3 泛化性表

场景 失效风险 证据/机制
专利数据模型 → 全新文献反应 高 记录风格与条件完整度差异大;时间与领域漂移
常见偶联 → 光/电/流动化学 高 反应类型长尾,条件空间不同
高产率区间的产率回归 高 标签分布偏斜(Mercado 2023),低产率区欠拟合
跨数据库(商业库)迁移 中-高 记录规范与角色标注体系不同
同库时间外推(新年份) 中 化学趋势漂移;可用时间划分量化
文献数据 → 自动化平台执行 中 schema 记录的是"实际发生的事",机器执行需自行补全规格化参数
跨语言文献场景 中 记录以英文为主,非英文来源的覆盖依赖社区投稿

泛化性表的共同主线是"分布差异在哪一层":来源层(专利 vs 文献 vs 实验室直投)、类型层(成熟偶联 vs 新兴光/电化学)、时间层(历史数据 vs 前沿方法)与粒度层(反应级 vs 条件网格级)。四层叠加决定了失效模式的表现形式——例如"专利模型 → 光化学新类型"同时跨越四层,属于最坏情形,任何在此类跨度上宣称的高精度都应受到审慎对待;反之,"同来源、同类型、时间外推一年"是相对温和的测试,适合作为性能下限的诚实估计。

§7.4 伦理考量

  • 数据为化学反应记录,不含人类受试者信息;个人层面仅含公开文献作者与 ORCID。
  • CC-BY-SA-4.0 要求衍生数据库"相同方式共享";商业闭源产品直接并入 ORD 数据会违反许可。
  • 预竞争工业数据的投稿以贡献者自愿为前提,使用时应尊重官方引用要求(数据集 DOI + 论文)。
  • 双重用途考量:反应预测与条件推荐原则上属于良性科研能力,但合成可及性信息也可能被用于有害目的。ORD 数据本身均为已公开发表/专利披露的内容,库层面不含未披露的危险合成信息;下游应用(如自动化合成平台)应自行建立用途审查机制——这是开源反应数据的公开讨论中尚未形成标准的领域,使用者在部署面向外部用户的系统时应主动咨询机构伦理与安全委员会。

§7.5 公平性

不涉及患者/人群公平性。社区层面存在"数据贡献者地域/机构不均衡"问题(见 §7.1),对模型隐含的化学偏好看的警示有意义;治理委员会通过开放贡献与 HTE Grant 试图缓解。产业视角下还存在"资源公平性":大药企有能力贡献大规模 HTE 数据,学术小组与欠发达地区实验室则主要是数据消费者——ORD 的开放许可在制度上把消费门槛降为零,这一制度设计本身就是对化学数据资源公平的实质贡献,也是引用与反馈(投稿回赠)被官方反复倡导的原因。

§7.6 数据漂移

  • 格式迁移漂移:主干格式从 .pb.gz 向 Parquet 迁移(2025–2026),旧读取代码需适配(坑点 1/6);旧编辑器 2026-07-31 停用,接口层亦有漂移。
  • 内容漂移:社区投稿随时间引入新反应类型与新测量习惯;全库统计(如测量类型分布)随合并而变化,训练时应锁定数据集 ID + commit。
  • 版本派生:数据集合并会派生新 ID,下游需跟随 retired_datasets.csv 更新(坑点 7)。

漂移监控的落地做法:为每个生产模型维护一张"漂移台账",每次上游同步(拉取新主干)时记录——新合并的数据集 ID 清单、退役 ID 清单、ord-schema 版本变化、抽样统计(字段填充率/标签分布)与上次快照的差值。三项触发器建议:出现退役 ID → 触发数据路径迁移流程;ord-schema 跨大版本 → 触发读取层回归测试;抽样分布 KL 散度超阈值 → 触发模型再评估。这套台账把"上游持续演进"从运维风险转化为可预期的例行变更。

§7.7 DAIMS 数据质量评估(24 项)

# 检查项 状态 说明
1 宽格式 ❌ 深度嵌套 protobuf/Parquet 消息结构,非宽表;需自行展平
2 唯一标识 ✅ 反应级 ord-<32hex>、数据集级 ord_dataset-<32hex>,正则强制
3 特殊字符 ✅ SMILES 经 RDKit 可解析性校验;自由文本字段存在但隔离
4 重复行 ⚠️ 系统生成 ID 防同 ID 重复,但跨来源/同族专利近重复需自行检测
5 缺失编码 ⚠️ 缺失 = 字段省略(protobuf 语义),无显式缺失哨兵值
6 标签标识 ✅ 产率/纯度/转化率由 measurement.type 显式枚举标识
7 罕见类分组 ⚠️ 无官方反应类型标签体系;需自建分类或用模板频次分层
8 偏倚评估 ✅ 社区论文已系统量化高产率偏倚(Mercado 2023)
9 数据字典 ✅ schema 文档 + 消息定义完备(字段/类型/校验规则齐全)
10 信息性缺失解释 ⚠️ 部分文档说明(如 USPTO 缺产率),多数缺失需自行推断含义
11 设备记录 ✅ setup 子消息记录器皿/自动化/流动/电化学/光化学配置
12 共线性 ⚠️ 无官方共线性检查;条件特征间相关需自行分析
13 编码映射 ✅ 单位枚举 + UnitResolver 解析;类型/角色均有枚举
14 时间戳处理 ⚠️ RecordEvent 提供记录创建时间,但实际实验时间常缺失
15 划分建议 ❌ 无官方划分;社区依赖 ORDerly 等派生基准
16 泄漏讨论 ⚠️ 官方文档无专门章节;泄漏风险由社区论文与最佳实践覆盖
17 标签分布 ⚠️ 官方未发布全库标签统计;可自行计算(§4.2 代码)
18 测量偏倚 ⚠️ 分析方法异质(UPLC-MS/NMR/重量法),官方未做校准层
19 外部验证建议 ✅ ORDerly 提供标准化外部基准;§7.8 给出验证矩阵
20 版本记录 ✅ Git 版本化 + dataset ID 派生规则 + retired_datasets.csv 映射
21 预处理脚本 ✅ 官方 ord-schema 工具链(加载/验证/转换/统计)
22 合规要求 ✅ CC-BY-SA-4.0(数据)+ Apache-2.0(代码),条款清晰
23 多模态对齐 ✅ 分析数据(图像/数值/URL)经 Data 消息直接挂接 outcomes
24 去标识化 ✅ 无人类受试者数据;作者信息本为公开文献元数据

DAIMS 评分:17.5 / 24

评分解读:ORD 在标识体系、数据字典、工具链、版本记录与合规五项结构性指标上达到满分水准,属于基础设施成熟度第一梯队的开放科学数据集;失分集中在"机器学习消费侧"——非宽格式、无官方划分、标签分布与测量偏倚需要使用者自行处理。这与它的定位一致:ORD 优先保证数据的可复现与可审计(结构化、溯源、验证),把建模友好性留给社区派生层(如 ORDerly)解决。

对你意味着什么:

  1. 若你的任务是前向预测/逆合成,可直接用 uspto-grants + ORDerly 划分快速起步,注意去重与时间划分(坑点 3)。
  2. 若你的任务是产率/条件预测,只选带 YIELD 标注的精选子集,并把测量类型与分析方法作为分层变量(坑点 4/8)。
  3. 工程上把"流式读取 + ID 重定向 + 版本对账"三件事做进数据加载层,可规避最大的三类运行事故(坑点 1/6/7)。
  4. 任何对外发布的模型报告都应附"来源构成 + 标签分布"两张图,因为本数据集的偏倚是官方确认的结构性特征。
  5. 若评估结果"好得反常"(尤其相对公开基准显著偏高),第一步永远是把 §5.3 的五类泄漏逐项排查,而不是怀疑模型能力。

§7.8 外部验证矩阵

外部数据集/场景 来源机构 评估任务 性能指标 相对内部变化 关键发现
ORDerly 派生基准 剑桥大学(Wigh et al.) 从 ORD 派生反应结果预测/产率等标准化基准 各任务基准指标(见原文) 不适用(即"内部"标准化层) ORD 原始数据需清洗对齐才能成基准;ORDerly 提供可复用划分(JCIM 2024, DOI 10.1021/acs.jcim.4c00292)
文献文本 → ORD 结构化记录 MIT(Ai et al., Digital Discovery 2024) LLM 从实验操作文本提取结构化反应记录 提取准确率(见原文) 与人工整理记录对比 大语言模型可辅助回填 ORD 字段,缓解条件信息缺失(DOI 10.1039/d4dd00091a)
Coley 2019 图卷积模型数据 MIT(Coley et al., Chem. Sci. 2019) 反应产率/结果预测(其训练数据后整编入 ORD) 模型性能见原文 数据由论文原生形式迁入 ORD 展示了"论文数据 → ORD 结构化"的完整闭环(DOI 10.1039/C8SC04228D)

(矩阵仅收录有同行评审支撑的结果;ORD 作为基础设施型数据集,跨库外部验证的公开研究仍较少,使用者在关键应用前应自行设计外部验证。)

§8 基准性能与生态

§8.1 排行榜与代表性研究

ORD 没有官方统一排行榜;下表列出基于 ORD 数据或其子集的代表性研究。注意:各行使用的数据子集、划分与指标不同,数值不可直接比较。

排名 模型/工作 性能/产出 年份 关键技术 完整引用 代码
— ORD 创始论文(基础设施) 发布时近 200 万条反应;确立 schema 与治理 2021 protobuf schema + GitHub 治理 + 自动校验 Kearnes, S. M. et al. (2021). The Open Reaction Database. J. Am. Chem. Soc., 143(45), 18820–18826. DOI 10.1021/jacs.1c09820 ord-schema
— 图卷积反应性预测(数据整编入 ORD) 在其 HTE 数据上建立产率/结果预测基线 2019 图卷积 + 双塔特征 Coley, C. W. et al. (2019). A graph-convolutional neural network model for the prediction of chemical reactivity. Chem. Sci., 10, 370–377. DOI 10.1039/C8SC04228D 官方论文附件
— ORDerly 基准体系 从 ORD 派生多任务标准化基准与划分 2024 数据清洗管线 + 基准派生 Wigh, D. S., Arrowsmith, J., Pomberger, A., Felton, K. C., & Lapkin, A. A. (2024). ORDerly: Data Sets and Benchmarks for Chemical Reaction Data. J. Chem. Inf. Model., 64(9), 3790–3798. DOI 10.1021/acs.jcim.4c00292 GitHub
— LLM 结构化提取回填 用微调 LLM 从实验文本提取 ORD 记录 2024 微调大语言模型 + schema 对齐 Ai, Q., Meng, F., Shi, J., Pelkie, B., & Coley, C. W. (2024). Extracting structured data from organic synthesis procedures using a fine-tuned large language model. Digital Discovery. DOI 10.1039/d4dd00091a 论文附件
— 数据共享 Perspective(路线图) 系统分析反应数据共享的障碍与行动清单 2023 FAIR 评估 + 政策建议 Mercado, R., Kearnes, S. M., & Coley, C. W. (2023). Data Sharing in Chemistry: Lessons Learned and a Case for Mandating Structured Reaction Data. J. Chem. Inf. Model., 63(14), 4253–4265. DOI 10.1021/acs.jcim.3c00607 不适用(Perspective)

(“排名"列标”—"是因为不存在官方榜单;引用格式为完整出处以便核对。)

§8.2 SOTA 总结与选型建议

  • ORD 是数据基础设施而非榜单数据集:追求可比性时,应固定 ORDerly 基准 + 明确数据集 ID/commit,而不是报告"在 ORD 上"的笼统数字。
  • 大体量任务(前向预测/逆合成)在 USPTO-grants 上已接近饱和区间,更值得做的是时间/骨架外推评估。
  • 小数据任务(产率/条件)优先选网格型 HTE 数据集做受控比较,避免跨测量方法混池。

选型决策树:先问任务再问数据——前向预测/逆合成 → USPTO-grants + ORDerly 划分,比拼架构;产率/条件预测 → 精选 HTE 网格 + 分组划分,比拼数据利用效率与不确定性估计;检索/去重 → 全库 + 反应指纹索引,比拼工程吞吐。三条路线的共同前提都是 §6.10 的版本对账:缺了数据集 ID 与 commit,任何"在 ORD 上"的数字都无法被复现或审计,也就失去了发布价值。

§8.3 评测协议

  1. 声明数据集 ID(ord_dataset-…)、下载 commit 与 ord-schema 版本。
  2. 划分:随机 + 时间两套;分组键 = 数据集/专利/骨架。
  3. 产率任务:按 measurement.type 与 analysis 分层报告;>100 的合法值单列口径。
  4. 前向预测:top-1/top-3/top-5 精确匹配;产物集合比较用 canonical SMILES 集合哈希去重。
  5. 所有数字附"数据来源构成"(专利 vs 精选)说明。

协议的适用边界:本协议面向"使用 ORD 数据发表模型结果"的场景;若你的研究本身就是对 ORD 数据质量的评估(如标注一致性、覆盖率分析),则第 3–4 条不适用,但第 1–2 条(版本锁定 + 划分声明)仍然必须——数据质量研究如果自己不锁定版本,结论会随主干演进而失效,这恰恰是该类研究最常犯的错误。

数据集 关系 许可 与 ORD 互补点
USPTO(Lowe, Figshare) ORD 的 USPTO 来源 CC0 原始提取文本,可对照验证 ORD 结构化结果
USPTO-50K / USPTO-MIT 派生子集 CC0 反应分类基准,逆合成常用
Pistachio(NextMove) 商业对应物 商业许可 更深度的专利解析(角色/产率),可作外部验证对照
Reaxys / SciFinder 商业前身 商业订阅 条件覆盖广但封闭;不可再分发
ORD HTE Grant 数据集(建设中) 官方扩展 CC-BY-SA-4.0 6 个大型开放反应数据集,专补长尾反应类型
Google BigQuery 等云仓库 不适用 — ORD 未提供官方云仓库托管;勿把第三方爬取镜像当作官方分发渠道
电子实验记录本(ELN)导出 潜在来源 各自许可 用 ORD schema 作为导出标准可无缝对接社区投稿流程

§8.5 关键论文 Top 5

以下五篇构成"理解与使用 ORD"的最小阅读集:1 篇奠基(schema 与治理)、1 篇路线图(数据共享策略)、2 篇下游(基准派生与 LLM 提取)、1 篇方法论前驱(其数据成为 ORD 精选子集的范例)。

  1. Kearnes, S. M., Maser, M. R., Wleklinski, M., Kast, A., Doyle, A. G., Dreher, S. D., Hawkins, J. M., Jensen, K. F., & Coley, C. W. (2021). The Open Reaction Database. J. Am. Chem. Soc., 143(45), 18820–18826. DOI 10.1021/jacs.1c09820 — 奠基论文:schema 设计、治理结构与发布数据。
  2. Mercado, R., Kearnes, S. M., & Coley, C. W. (2023). Data Sharing in Chemistry. J. Chem. Inf. Model., 63(14), 4253–4265. DOI 10.1021/acs.jcim.3c00607 — 系统总结反应数据共享的障碍与 ORD 定位。
  3. Wigh, D. S. et al. (2024). ORDerly: Data Sets and Benchmarks for Chemical Reaction Data. J. Chem. Inf. Model., 64(9), 3790–3798. DOI 10.1021/acs.jcim.4c00292 — 把 ORD 转化为可复用基准的标准化管线。
  4. Coley, C. W. et al. (2019). A graph-convolutional neural network model for the prediction of chemical reactivity. Chem. Sci., 10, 370–377. DOI 10.1039/C8SC04228D — 其 HTE 数据成为 ORD 精选子集,展示建模闭环。
  5. Ai, Q. et al. (2024). Extracting structured data from organic synthesis procedures using a fine-tuned large language model. Digital Discovery. DOI 10.1039/d4dd00091a — LLM 自动提取回填 ORD 的前沿方向。

§8.6 社区活跃度

  • GitHub 组织(截至 2026-09):ord-data 343 星 / 82 fork;ord-schema 113 星;另有 ord-interface 与 ord-app 两个前端仓库(GitHub)。
  • ord-schema:自 2021-03-03 首发以来累计 142 个 PyPI release,维护节奏活跃(libraries.io)。
  • 沟通渠道:官方邮件列表、help@open-reaction-database.org、GitHub Issues;引用追踪通过公开 Zotero 组维护(官方 Overview)。
  • 治理:常任治理委员会 5 人(MIT/UCLA/Merck/Genesis Molecular AI)+ 跨学界/工业界咨询委员会。
  • 活跃度解读:343 星的体量在"大众开源项目"标准下不算显眼,但在垂直科研基础设施领域属于头部水平——其真实活跃度更应看 PR 流(持续的数据集投稿与合并)、issue 响应与 release 频率(142 个 release 是更硬的证据)。
  • 参与路径:个人研究者可从"整理一篇自己论文的反应数据并投稿"切入;工程贡献者可关注 ord-schema 的 issue 列表(如格式兼容、DataFrame 导出改进类需求);机构用户可通过加入 mailing list 跟进治理动态。

§8.7 生态快照表

资源 类型 链接 Star(截至 2026-09) 推荐理由
ord-data 数据仓库 GitHub 343 官方数据与 DOI 对照表
ord-schema Python 工具链 GitHub 113 加载/验证/转换一站式
ord-interface 搜索前端 GitHub 23 在线分子/子结构/反应检索
ord-app 反应编辑器 GitHub 6 新编辑器 app.open-reaction-database.org
HF 镜像 数据镜像 Hugging Face 不适用 推荐下载通道,规避 LFS 配额
ORDerly 基准派生 论文 不适用 标准化划分与任务定义
Zotero 引文库 文献追踪 官方 Overview 内链接 不适用 跟踪"谁在用 ORD"的公开清单

§9 相关资源与引用

§9.1 官方资源

§9.1b 快速链接速查

需求 直达入口
查 schema 校验规则 docs.open-reaction-database.org 的 The Schema 章节
查某个数据集是否存在/是否退役 ord-data 仓库 README 的 DOI 对照表 + retired_datasets.csv
找"如何从论文整理数据"的示例 ord-schema examples/ 目录 Notebook
报告数据问题 对应仓库的 GitHub Issues;界面问题走 ord-interface Issues
获取使用许可的正式文本 ord-data LICENSE 文件(CC-BY-SA-4.0 全文)

§9.2 BibTeX 引用块

@article{kearnes2021ord,
  title     = {The Open Reaction Database},
  author    = {Kearnes, Steven M. and Maser, Michael R. and Wleklinski, Michael and
               Kast, Anton and Doyle, Abigail G. and Dreher, Spencer D. and
               Hawkins, Joel M. and Jensen, Klavs F. and Coley, Connor W.},
  journal   = {Journal of the American Chemical Society},
  year      = {2021},
  volume    = {143},
  number    = {45},
  pages     = {18820--18826},
  doi       = {10.1021/jacs.1c09820}
}

@dataset{open_reaction_database_data,
  title     = {The Open Reaction Database (data)},
  author    = {{Open Reaction Database Project}},
  year      = {2020},
  doi       = {10.5281/zenodo.4321713},
  url       = {https://github.com/open-reaction-database/ord-data},
  license   = {CC-BY-SA-4.0}
}

@article{mercado2023data,
  title     = {Data Sharing in Chemistry: Lessons Learned and a Case for Mandating
               Structured Reaction Data},
  author    = {Mercado, Roc{\'i}o and Kearnes, Steven M. and Coley, Connor W.},
  journal   = {Journal of Chemical Information and Modeling},
  year      = {2023},
  volume    = {63},
  number    = {14},
  pages     = {4253--4265},
  doi       = {10.1021/acs.jcim.3c00607}
}

@article{wigh2024orderly,
  title     = {ORDerly: Data Sets and Benchmarks for Chemical Reaction Data},
  author    = {Wigh, Daniel S. and Arrowsmith, Jonathan and Pomberger, Arie and
               Felton, Kobi C. and Lapkin, Alexei A.},
  journal   = {Journal of Chemical Information and Modeling},
  year      = {2024},
  volume    = {64},
  number    = {9},
  pages     = {3790--3798},
  doi       = {10.1021/acs.jcim.4c00292}
}

@article{coley2019graph,
  title     = {A graph-convolutional neural network model for the prediction of
               chemical reactivity},
  author    = {Coley, Connor W. and Jin, Wengong and Rogers, Luke and
               Jamison, Timothy F. and Jaakkola, Tommi S. and Green, William H. and
               Barzilay, Regina and Jensen, Klavs F.},
  journal   = {Chemical Science},
  year      = {2019},
  volume    = {10},
  pages     = {370--377},
  doi       = {10.1039/C8SC04228D}
}

§9.3 引用指南

  • 使用数据:引用数据集 Zenodo DOI(10.5281/zenodo.4321713)+ 创始论文(kearnes2021ord)。
  • 使用 schema/工具:引用论文并注明 ord-schema 版本号。
  • 引用本页面:千方病案医数集条目页(URL 以发布页为准),注明检索日期。

§9.4 常见问题速答(获取与许可)

问题 简答
需要注册或申请吗? 不需要,数据公开可下载;只有投稿需要 GitHub 账号与 PR 流程
可以把数据放进商业产品吗? CC-BY-SA-4.0 要求衍生数据同样开放共享;纯闭源并入通常不兼容,需法务评估
引用时引 DOI 还是论文? 两者都引:数据 DOI 定位数据版本,论文定位 schema 与方法
老脚本读不了新文件? 多为格式代际问题(.pb.gz 时代 → Parquet 时代),按 §6.3/§6.5 迁移
下载很慢或失败? 优先走 Hugging Face 镜像(坑点 2),避免占用 GitHub 共享 LFS 配额
数据有版本号吗? 以 Git commit + 数据集 ID 为版本锚点;数据集合并会派生新 ID(坑点 7)

补充实务:在论文的数据可用性声明(Data Availability)中,除 DOI 外建议附上所用数据集 ID 与下载 commit 的哈希(例如"ord_dataset-1158e351757f315b93cbcbe7bc55f38e @ commit 9685114"级别的精确度),审稿人或读者即可在分钟级完成数据对账——这是 ORD 相对商业数据库最容易被低估的红利:数据的每一个字节都有公开地址。若论文涉及对 ORD 数据的再分发(如派生基准),CC-BY-SA-4.0 要求派生库同样以 CC-BY-SA-4.0 发布并署名,发布前请核对许可兼容性。

§10 AI 使用声明卡

§10.1 本页面生产中使用的 AI 模型

模型 用途 阶段
大语言模型(CodeBuddy 内置 fast-model) 资料归纳、条目撰写、代码示例起草 全流程

§10.2 AI 参与范围

AI 负责检索结果的归纳与初稿撰写;全部数字、日期、许可条款与引用出处均来自 §10.3 列出的公开来源,并由人工按来源逐条核对;结构合规性由千方条目规范约束。

边界声明:AI 未生成任何统计数字、DOI、日期或规模声明——此类内容仅当在 §10.3 来源页面中能找到原文对应时才被保留;检索中无法核实的字段(如 Google Scholar 引用计数、全库精确总大小)按规范直接省略而非估算。代码示例经人工走查确保可读性与安全基线(无密钥硬编码、无破坏性命令),但不承诺在所有未来版本上无修改运行——依赖行为以 §6.10 的版本对账纪律为准。

§10.3 输入来源列表

  1. Kearnes, S. M. et al. (2021). The Open Reaction Database. J. Am. Chem. Soc., 143(45), 18820–18826. DOI 10.1021/jacs.1c09820. ACS
  2. Kearnes, S. M. et al. (2021). The Open Reaction Database(论文 PDF 镜像). UCLA Doyle Lab
  3. PubMed 收录页(作者机构与 PMID 34727496). PubMed
  4. ORD 官方文档:Welcome / Overview. docs.open-reaction-database.org
  5. ORD 官方文档:The Schema(校验规则). docs.open-reaction-database.org
  6. ORD 官方文档:ord_schema API 参考. docs.open-reaction-database.org
  7. ORD GitHub 组织页(仓库矩阵与 Star 数). GitHub
  8. ord-data 仓库 README(格式、镜像、退役 ID、数据集表). GitHub
  9. ord-data Hugging Face 数据集页与 CITATION.cff. Hugging Face
  10. C&EN 报道:A new database for machine-learning research(2021-11). C&EN
  11. Mercado, R., Kearnes, S. M., & Coley, C. W. (2023). Data Sharing in Chemistry. JCIM, 63(14), 4253–4265. DOI 10.1021/acs.jcim.3c00607. 全文镜像
  12. Wigh, D. S. et al. (2024). ORDerly. JCIM, 64(9), 3790–3798. DOI 10.1021/acs.jcim.4c00292(经 PubMed “Similar articles” 交叉确认)
  13. Ai, Q. et al. (2024). Extracting structured data from organic synthesis procedures using a fine-tuned large language model. Digital Discovery. DOI 10.1039/d4dd00091a(经 PubMed 交叉确认)
  14. ord-schema PyPI/libraries.io 页面(发布历史). libraries.io
  15. consultachem:The Open Reaction Database (ORD) 综述(2025 规模数字、HTE Grant). consultachem
  16. ORD 编辑器停用公告. open-reaction-database.org/editor
  17. ord-schema GitHub Issues(#743、#756、#776、#782 等坑点线索). Issues

§10.4 人工校验表

内容模块 审核者 审核方式 审核状态
§0-§1 概览与定位 千方病案医学编辑部 逐条对照来源 4/6/7/10 ✅ 已通过/已验证
§2 药学背景与术语映射 千方病案医学编辑部 ICD-11/SNOMED 编码核对公认术语库 ✅ 已通过/已验证
§3-§4 规格与数据结构 千方病案医学编辑部(数据工程) 对照来源 8/9/5 的原始文档 ✅ 已通过/已验证
§5-§6 指南与坑点 千方病案医学编辑部(数据工程) 代码走查 + Issue/README 原文核对 ✅ 已通过/已验证
§7-§8 质量与生态 千方病案医学编辑部 DAIMS 逐项复核 + 引用完整性 ✅ 已通过/已验证
§9-§10 引用与声明 千方病案医学编辑部 BibTeX 逐字段比对 CITATION.cff ✅ 已通过/已验证

§10.5 AI 生成章节标注

  • 全部章节初稿由 AI 生成;§2.1 术语映射、§4.1 字段字典、§6.4-6.5 代码与坑点经人工逐行修订。
  • 数字类内容(规模、日期、Star 数、DOI)100% 来自 §10.3 来源清单,无 AI 自生成数字。
  • 风险披露:AI 归纳可能遗漏来源中的限定条件(如某数字的"截至"口径),人工审核已重点核对全部动态数字的时间标注;若读者发现数字与来源原文不一致,以来源原文为准并欢迎反馈勘误。

§10.6 最后人工审核日期

2026-09-05(与 §0 审核日期一致)

本条目随上游数据集演进存在时效性:规模数字标注了截至日期,格式与接口信息以官方文档当前状态为准;条目更新周期与千方病案医数集的复审节奏一致。

页面状态:published(全部内容已完成审核并发布)


§C 结构化数据(JSON-LD)


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • gdb-17 — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
  • coconut — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
  • uspto-50k — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
  • crossdocked2020 — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
  • toxcast — 共享标签:药物发现与化学 / 化学信息学
  • synthea — 共享标签:药物发现与化学 / 分子生成
  • trialbench — 共享标签:药物发现与化学 / 化学信息学
  • zinc — 共享标签:药物发现与化学 / 化学信息学
  • pdbbind — 共享标签:药物发现与化学 / 化学信息学
  • davis — 共享标签:药物发现与化学 / 化学信息学

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集