概览
Open Reaction Database (ORD) 通过 ord-data 分发,是一个反应数据存储库,而非可安装的软件包或预测模型。它为下游化学数据工作流提供结构化记录,同时提供用于下载和处理数据集的辅助脚本。GitHub 是权威存储库;Hugging Face 提供数据集对象的只读镜像,包括通过 Git LFS 自动路由的下载。
每个 Parquet 文件代表一个数据集,其中按行存储序列化的反应 Protobuf 消息,并在文件元数据中保留数据集名称、描述和 ID。文档所述的 ord_schema.datasets.load_dataset 接口默认返回流式 DatasetView,可以按需读取反应。用户可以迭代、索引或切片记录,按 ID 获取反应,枚举 ID,或处理单独的行组。将数据集物化为 Dataset proto 后,即可对整个数据集进行修改和序列化;示例还展示了可读性较好的 .pbtxt 输出,以及将单条反应转换为 JSON。
集成时需要注意若干重要的表示限制。Dataset.reaction_ids 不会持久化,reaction_id 列才是权威数据源,而且空数据集无法写入。索引获取的反应是重新反序列化生成的副本,因此修改它们不会改变存储文件。名称相似的 ord_schema.parquet.load_dataset 始终会物化数据,而不是以流方式读取。对于旧引用,retired_datasets.csv 会映射已合并的数据集 ID,而 USPTO 反应记录保留了专利来源信息。数据集许可与存储库代码许可彼此独立。
README 将仓库辅助代码的许可标为 Apache-2.0,将数据集及其描述性元数据的许可标为 CC-BY-SA-4.0。使用时请分别核对这些组件,并检查所用数据的署名与再分发条件。
主要功能
- 每个 Parquet 文件存储一个数据集,其中包含序列化的反应 Protobuf 记录,以及数据集级别的名称、描述和 ID 元数据。
- 支持通过自动配置的 Hugging Face 镜像下载完整的 Git LFS 数据,并可使用随附的辅助工具仅下载数据或下载子集。
- 通过 ord_schema 提供文档所述的流式访问方式,包括迭代、索引、切片、按反应 ID 查找以及仅枚举 ID。
- 提供行组迭代,返回 `(reaction_id, Reaction)` 对,以便将大型文件的处理任务分区。
- 说明如何转换为便于阅读的 `.pbtxt`,以及如何将单条反应消息转换为 JSON。
- 将已停用的数据集 ID 映射到合并后的替代数据集,并为 USPTO 数据保留逐条反应的专利来源信息。
使用场景
- 建议评估:检查具有代表性的反应记录,再决定所选数据集是否适用于反应预测训练或基准测试工作流。
- 建议评估:构建基于行组的数据提取流程,并检查流式访问是否满足本地内存和处理需求。
- 建议评估:将选定记录转换为 JSON 或 `.pbtxt`,以检查架构并与下游化学数据工具集成。
- 建议评估:将旧数据集引用与合并后的 ID 对应起来,并检查 USPTO 专利来源信息以便追溯。
使用方式
- 阅读存储库 README,并确定所需数据集。请将
ord-data视为数据存储库,而非需要安装的软件包。 - 选择通过 Git LFS 访问完整存储库,或浏览 Hugging Face 镜像。如需选择性下载,请按照 README 中的辅助脚本说明操作,而不要获取整个数据集。
- 按照文档中针对选定 Parquet 文件的
ord_schema加载示例进行操作。先使用默认的流式视图,并检查其元数据、记录数量和有代表性的反应。 - 根据工作流选择迭代、ID 查找或行组处理。仅在需要修改或序列化整个数据集时,才将其物化为 Dataset proto;如需输出
.pbtxt或 JSON,请使用文档中的示例。 - 在重新分发或提交数据之前,请查阅数据集许可、使用条款,并在相关情况下查阅提交工作流。