QM Data Annotation#

Enerzyme can drive batch quantum chemistry calculations to label structures with energies, forces, charges, and dipoles. Labeled data is written to pickle format for training. The reference config is enerzyme/config/annotate.yaml.

Basic command#

enerzyme annotate -c annotate.yaml -o labeled/ -t tmp/ -s 0 -e 100

Arguments:

  • -c — annotation config (Supplier + QMDriver)

  • -o — output directory

  • -t — scratch directory for QM jobs

  • -s, -e — slice of molecules from the supplier (0-based start, exclusive end; -1 for all)

Configuration#

Supplier:
    path: molecules.sdf
QMDriver:
    engine: TeraChem
    bs: 6-31gs
    xc: b3lyp
    pcm: cosmo
    dftd: d3
    pcm_radii_file: /path/to/pcm_radii
    epsilon: 10
    keep_molden: false
    keep_output: false
    clean_tmp: true
    pickle_name: labeled/dataset.pkl

Supplier#

Supplier.path points to an SDF file. Each record must include total charge (RDKit formal charge). Enerzyme iterates structures and submits QM jobs.

QMDriver (TeraChem)#

The reference driver targets TeraChem. Required environment:

  • terachem executable on PATH

  • Valid license and scratch space

  • PCM radius file when pcm_radii mode needs it

Output pickle schema matches Datahub expectations—map fields in your training YAML the same way as in Preparing a Neural Network Potential Dataset.

Caution

Prepare TeraChem and RDKit before running annotate. These are not part of the core Enerzyme install.

Integrating labeled data into training#

  1. Run annotate to produce dataset.pkl

  2. Append or merge with existing training data

  3. Update train.yaml data_path or multi-dataset Datahub.datasets

  4. Retrain or resume active learning (Active Learning for Neural Network Potentials)

ORCA optimizer with TeraChem gradients (Enerzymette)#

Enerzymette bridges ORCA’s external optimizer (ExtOpt) to TeraChem GPU gradients:

enerzymette orca_terachem_request -i orca.extinp.tmp -t terachem_template.inp

Setup checklist:

  1. ORCA input with ! ExtOpt and %method ProgExt "/path/to/wrapper.sh" end

  2. TeraChem template with basis, functional, solvent, SCF settings

  3. Wrapper script: enerzymette orca_terachem_request -i $1 -t template.inp (executable)

  4. terachem available in the environment

This complements batch annotate when you need QC-level optimization with ORCA’s algorithms and TeraChem’s energy/gradient engine.

Monitoring TeraChem jobs (Enerzymette)#

enerzymette terachem_timing -f terachem.out

Reports total wall time, per-iteration averages, and flags unfinished calculations—useful for QC campaign quality control before merging data into training sets.