ChemReporter


ChemReporter is a framework that converts arbitrary molecular and materials datasets into a unified, queryable representation and exports the results directly into MLIP-ready training data. It operates in three decoupled stages:

  • Process — parse raw datasets into a partitioned Apache Parquet repository enriched with structural, physical, and chemical metadata.

  • Query — filter and sample this repository via a CLI or Python API using arbitrary selection criteria, from simple physical constraints to custom, user-defined strategies.

  • Export — stream the selected subset into an HDF5 file ready for direct use in modern MLIP training frameworks.

ChemReporter is available on GitHub and PyPI under the Apache License 2.0.

ChemReporter workflow

Getting started

New to ChemReporter? Head to Installation to install the package, then see the Command Line Interface (CLI) reference to run your first process / query / export pipeline.

Beyond that walkthrough, these docs also cover:

  • Configuration (Configuration) — every YAML field accepted by the process / query / export commands.

  • Query syntax (Query Examples) and the Database Schema (Query Database Schema) — how to write filter expressions and which fields are available to filter on.

  • Sampling (Sampling) — built-in and custom strategies for selecting a subset from your filtered results.

  • Export Schema (Export Schema) and Units (Units and Physical Quantities) — the internal layout of exported HDF5 files and the physical units used throughout.

  • Supported Source Datasets (Supported Source Datasets) — which raw datasets ChemReporter can ingest, and how each one’s reader implementation differs.

  • Advanced Tutorials (Advanced Tutorials) — hands-on, Python-API examples for leak-free data splits, dataset audits, and data curation, going beyond the standard CLI usage above.