Configuration System#

Enerzyme workflows are composed from YAML sections. Different commands read different subsets; some sections override training defaults at inference time.

Section index#

Section

Used by

Reference config

Datahub

train, predict, extract, collect

train.yaml

Modelhub

train; loaded from model dir at infer

train.yaml

Trainer

train; partial use in predict/extract

train.yaml

Metric

train, predict

predict.yaml

Simulation

simulate

opt.yaml, etc.

System

simulate

all sim YAMLs

Extractor

extract

extract.yaml

Supplier

annotate

annotate.yaml

QMDriver

annotate

annotate.yaml

Training artifacts#

After enerzyme train -c train.yaml -o out/:

  • out/config.yaml — resolved configuration (use as -mc for predict/simulate)

  • out/FFxx/ or out/FFxx_suffix/ — model checkpoints (best/, last/)

  • out/processed_dataset_<hash>/ — preprocessed HDF5 cache

  • out/logs/ — training logs

Override rules at inference#

Predict (enerzyme predict -c pred.yaml -m model_dir -mc train.yaml):

  • -c overrides Datahub (test path, features) and Metric

  • -mc supplies Modelhub and default transforms/neighbor list consistency

  • Neighbor list and transform settings should match training unless you know the effect

Simulate (enerzyme simulate -c sim.yaml -m model_dir -mc train.yaml):

  • -c supplies Simulation and System

  • -mc supplies model architecture and Datahub transforms for the ASE calculator

  • Optional -cp (calculator patch) and -pp (PLUMED patch) add external plugins

Extract — combines predict-style Datahub with Extractor radii and reference molecule.

AnnotateSupplier + QMDriver only; independent of Modelhub.

Legacy vs current schema#

Older configs use a flat Datahub with compression:; current configs use compressed: and optional datasets: for multi-dataset training. Both layouts are still accepted; new projects should follow enerzyme/config/train.yaml.

Splitter configs similarly support:

  • Old: parts: [training, validation] + ratios: [...]

  • New: parts: [{name, dataset, ratio}, ...] for multi-dataset splits

See /user_guide/data/splitting.