Dataset Downloads
The complete chemical reaction network (CRN) explored in this work is available as a structured PostgreSQL dataset: compounds, potential-energy-surface minima, transition states, and elementary reactions with ML reaction paths and PBE0/def2-TZVPP refinement.
The dataset is hosted on Zenodo (a persistent DOI is assigned on deposit).
Dataset at a glance
Compounds span C0–C4 backbones and charges from −3 to +2. For every reaction the dataset includes the full ML-predicted reaction path (TS, IRC trajectory, and connected reactant/product minima). For every reactive TS it includes PBE0/def2-TZVPP recomputed barriers, absolute energies of the TS and connected minima, and the Hessian. Where DFT indicates the ML-predicted TS is invalid, the corrected PBE0 TS, its energy difference, and the RMSD to the ML prediction are provided. PBE0 energies are additionally supplied with Grimme D3(BJ) and D4 dispersion corrections.
Restoring the database
The dump restores into a PostgreSQL 15 database. Create an empty database and stream the dump into it:
# 1. Create a database
createdb crn_atlas
# 2. Restore (gzipped plain-SQL dump)
gunzip -c reaction-atlas-*.sql.gz | psql -v ON_ERROR_STOP=1 -d crn_atlas
# The restored database is ≈26 GB including indexes — allow ample time and disk.Decoding the binary columns
bytea holding serialized NumPy arrays. Single-array fields (positions, atomic numbers, Hessians) use numpy.save (.npy); trajectory fields use numpy.savez_compressed (.npz) with keys energies, positions (n_frames, n_atoms, 3), forces, and per-frame hessian_i.import io, numpy as np
# Single array (e.g. minima.positions, reactions.ts_hessian_pbe0):
positions = np.load(io.BytesIO(row_bytes)) # -> (n_atoms, 3)
# Trajectory (e.g. reactions.reactant_trajectory):
npz = np.load(io.BytesIO(traj_bytes))
frames = npz["positions"] # -> (n_frames, n_atoms, 3)
energies = npz["energies"]Schema reference
The public dataset contains the following tables. Operational tables used only during exploration (job queues, worker heartbeats, kinetics snapshots, UI annotations) are excluded. A few columns hold internal variants — alternative barrier references and manual-equilibrium overrides — that can be ignored for most analyses.
compounds
One row per unique chemical species (canonical SMILES). 12,542 rows.
| Column | Type | Description |
|---|---|---|
| id | int PK | Primary key. |
| smiles | text | Canonical SMILES (unique). |
| formula | text | Molecular formula, e.g. C4H6O2. |
| charge | int | Net molecular charge (−3 … +2). |
| n_atoms | int | Number of atoms. |
| sorted_atomic_numbers | bytea (.npy) | Sorted atomic numbers of the compound. |
| is_seed | bool | Whether the compound was part of the initial seed set. |
| energy_pbe0 | float | PBE0/def2-TZVPP single-point energy at the lowest-energy minimum (reference energy). Nullable. |
| energy_pbe0_method | text | Method/basis string, e.g. 'PBE0/def2-TZVPP'. Nullable. |
| energy_d3bj | float | Grimme D3(BJ) dispersion correction to the PBE0 energy (Hartree). Nullable. |
| energy_d4 | float | Grimme D4 dispersion correction to the PBE0 energy (Hartree). Nullable. |
minima
PES minima (conformers). 33,659 rows, averaging 2.68 conformers per compound.
| Column | Type | Description |
|---|---|---|
| id | int PK | Primary key. |
| compound_id | int FK | → compounds.id. |
| local_id | int | Sequential conformer index within the compound (0, 1, 2 …). |
| positions | bytea (.npy) | Cartesian coordinates, shape (n_atoms, 3). |
| energy | float | ML potential energy of the minimum. |
| hessian | bytea (.npy) | Mass-independent Hessian, shape (3n, 3n). Nullable. |
| explored | bool | Whether this minimum was expanded during exploration. |
| n_merged | int | How many raw minima were deduplicated into this one. |
| energy_pbe0 | float | PBE0/def2-TZVPP single-point energy (populated for the lowest-E minimum). Nullable. |
| energy_d3bj | float | D3(BJ) dispersion correction to the PBE0 energy. Nullable. |
| energy_d4 | float | D4 dispersion correction to the PBE0 energy. Nullable. |
intra_transition_states
Intra-PES transition states connecting two conformers of the same compound. 24,172 rows.
| Column | Type | Description |
|---|---|---|
| id | int PK | Primary key. |
| compound_id | int FK | → compounds.id. |
| local_id | int | Sequential index within the compound. |
| positions | bytea (.npy) | TS Cartesian coordinates, shape (n_atoms, 3). |
| energy | float | ML potential energy at the TS. |
| eigenvalue | float | Imaginary-mode Hessian eigenvalue. |
| hessian | bytea (.npy) | Hessian at the TS, shape (3n, 3n). Nullable. |
| min_fwd_id / min_bwd_id | int FK | → minima.id: the two conformers this TS connects. |
| barrier_fwd / barrier_bwd | float | ML barrier heights to the forward / backward minimum. |
| rmsd_to_fwd_min / rmsd_to_bwd_min | float | RMSD from the TS to each connected minimum. |
| fwd_trajectory / bwd_trajectory | bytea (.npz) | Relaxation paths from the TS to each minimum. Nullable. |
reactions
Elementary chemical reactions (47,987 reactive TSs → 22,315 unique reactions by reactant–product identity). Includes the full ML reaction path, PBE0 refinement, and D3(BJ)/D4 dispersion corrections.
| Column | Type | Description |
|---|---|---|
| id | int PK | Primary key. |
| ts_id | bigint | Global transition-state id (unique). |
| ts_conformer_positions | bytea (.npy) | TS geometry of the reacting supersystem, shape (n_atoms, 3). |
| ts_conformer_atomic_numbers | bytea (.npy) | Atomic numbers for the TS supersystem. |
| ts_conformer_charge | int | Total charge of the reacting supersystem. |
| ts_energy | float | ML potential energy at the TS. |
| barrier_forward / barrier_backward | float | In-box ML barriers (TS − trajectory endpoint). |
| barrier_forward_separated / …_backward_separated | float | Separated ML barriers (TS − sum of reference-conformer energies). Nullable. |
| reactant_trajectory / product_trajectory | bytea (.npz) | ML IRC trajectories to the reactant / product side. Nullable. |
| energy_R_pbe0 / energy_TS_pbe0 / energy_P_pbe0 | float | PBE0/def2-TZVPP absolute energies of reactant, TS, product. Nullable. |
| barrier_forward_pbe0 / barrier_backward_pbe0 | float | In-box PBE0 barriers. Nullable. |
| barrier_forward_separated_pbe0 / …_backward… | float | Separated PBE0 barriers (primary for kinetics). Nullable. |
| energy_pbe0_method | text | PBE0 method/basis string. Nullable. |
| ts_hessian_pbe0 | bytea (.npy) | PBE0 Hessian on the TS geometry, shape (3n, 3n). Nullable. |
| ts_hessian_ml | bytea (.npy) | ML Hessian on the TS geometry, shape (3n, 3n). Nullable. |
| ts_ml_invalid | bool | True when DFT shows the ML TS is not a true saddle (≠ exactly one imaginary mode). |
| ts_pbe0_corrected_positions | bytea (.npy) | Corrected DFT TS geometry (PBE0 saddle-point opt). Populated only when ts_ml_invalid. Nullable. |
| ts_pbe0_corrected_energy | float | PBE0 energy of the corrected TS. Nullable. |
| ts_pbe0_corrected_de | float | E(corrected) − E(ML at ML geometry). Nullable. |
| ts_pbe0_corrected_rmsd | float | Kabsch-aligned RMSD of corrected TS vs ML TS. Nullable. |
| energy_R_d3bj / energy_TS_d3bj / energy_P_d3bj | float | D3(BJ) dispersion corrections to the reactant / TS / product PBE0 energies. Nullable. |
| energy_R_d4 / energy_TS_d4 / energy_P_d4 | float | D4 dispersion corrections to the reactant / TS / product PBE0 energies. Nullable. |
| ts_corrected_d3bj / ts_corrected_d4 | float | Dispersion corrections on the corrected DFT TS. Nullable. |
| barrier_*_pbe0_d3bj | float | PBE0+D3(BJ) dispersion-corrected barriers (forward / backward, in-box and separated). Nullable. |
| barrier_*_pbe0_d4 | float | PBE0+D4 dispersion-corrected barriers (forward / backward, in-box and separated). Nullable. |
| disp_method | text | Dispersion-correction method label. Nullable. |
reaction_reactants
Reactant side of each reaction (compound + conformer).
| Column | Type | Description |
|---|---|---|
| id | int PK | Primary key. |
| reaction_id | int FK | → reactions.id. |
| compound_id | int FK | → compounds.id (a reactant species). |
| conformer_local_id | int | Which conformer (minima.local_id) participates. Nullable. |
reaction_products
Product side of each reaction (compound + conformer).
| Column | Type | Description |
|---|---|---|
| id | int PK | Primary key. |
| reaction_id | int FK | → reactions.id. |
| compound_id | int FK | → compounds.id (a product species). |
| conformer_local_id | int | Which conformer participates. |
| energy | float | Energy of the product conformer. |
graph_edges
Materialized bipartite edges of the reaction network (compound ↔ reaction nodes) for the graph view. 129,969 rows.
| Column | Type | Description |
|---|---|---|
| id | int PK | Primary key. |
| source_node / target_node | text | Node identifiers (compound or reaction). |
| source_type / target_type | text | 'compound' or 'reaction'. |
| direction | text | Edge direction / role. Nullable. |
| stoichiometry | int | Stoichiometric coefficient. |
| energy_diff | float | Energy difference along the edge. Nullable. |
| reaction_id | int FK | → reactions.id. Nullable. |
License & citation
Please cite the accompanying paper when using this dataset; full citation details and the license are provided on the Zenodo record.