irc¶
Runs EulerPC-based IRC (Intrinsic Reaction Coordinate) integration from a transition state toward reactants and products using the ML/MM calculator. Use it to validate that an optimized TS connects the expected reactant and product, or to generate reactant/product structures for downstream thermochemistry and DFT single-point energy evaluation — typically as tsopt -> freq (confirm one imaginary mode) -> irc. By default both forward and backward branches are computed. mlmm irc keeps the CLI intentionally narrow; parameters not surfaced on the command line should be provided via YAML so the run remains explicit and reproducible. Inputs can be any structure readable by pysisyphus.helpers.geom_loader (.pdb, .xyz, _trj.xyz,…); if the input is .pdb, the generated trajectories are additionally converted to PDB.
Examples¶
# Minimal run from a TS PDB
mlmm irc -i ts.pdb --parm real.parm7 --model-pdb ml_region.pdb \
--no-detect-layer -q 0 -m 1 --max-cycles 50 --out-dir ./result_irc
Forward branch only:
# Forward branch only
mlmm irc -i ts.pdb --parm real.parm7 --model-pdb ml_region.pdb \
-q 0 --no-backward --out-dir ./result_irc_forward
Larger step size with analytical Hessians:
# Larger step size with analytical Hessians
mlmm irc -i ts.pdb --parm real.parm7 --model-pdb ml_region.pdb \
--no-detect-layer -q 0 -m 1 --step-size 0.20 \
--hessian-calc-mode Analytical --out-dir ./result_irc_analytical
# keep both branches and raise the step limit with --max-cycles 150
Command form:
mlmm irc -i TS_STRUCTURE --parm PARM7 --model-pdb ML_REGION [options]
mlmm irc --help shows core options; mlmm irc --help-advanced shows the full option list.
Workflow¶
Input preparation – Load the TS structure, Amber topology (
--parm), and ML-region definition (--model-pdb/--model-indices); resolve charge and spin. Any format supported bygeom_loaderis accepted, and when a reference PDB is available (input is.pdbor--ref-pdbis supplied), EulerPC trajectories are converted to PDB using that topology.ML/MM calculator setup – Build the ML/MM calculator from
--parmand--model-pdb. The-b/--backendoption selects the MLIP (uma,orb,mace, oraimnet2; defaultuma). The--hessian-calc-modecontrols ML backend Hessian evaluation. When--embedchargeis enabled, xTB point-charge embedding (experimental) is applied to correct for MM environment effects on the ML region.IRC integration – The EulerPC integrator propagates along the IRC in both directions (unless
--no-forwardor--no-backwarddisables a branch). Step size and cycle count control integration length.Output & conversion – Trajectories are written as XYZ; PDB companions are generated when a PDB template is available and
--convert-filesis enabled.
Outputs¶
out_dir/ (default: ./result_irc/)
├─ <prefix>irc_data.h5 # HDF5 dump written every irc.dump_every steps
├─ <prefix>finished_irc_trj.xyz # Full IRC trajectory (XYZ/TRJ)
├─ <prefix>forward_irc_trj.xyz # Forward path segment
├─ <prefix>backward_irc_trj.xyz # Backward path segment
├─ <prefix>finished_irc.pdb # PDB conversion (only if input was .pdb)
├─ <prefix>forward_irc.pdb # PDB conversion (only if input was .pdb)
├─ <prefix>backward_irc.pdb # PDB conversion (only if input was .pdb)
├─ <prefix>forward_last.xyz # Single-frame forward IRC endpoint (XYZ)
├─ <prefix>forward_last.pdb # Single-frame forward IRC endpoint (PDB, when available)
├─ <prefix>backward_last.xyz # Single-frame backward IRC endpoint (XYZ)
└─ <prefix>backward_last.pdb # Single-frame backward IRC endpoint (PDB, when available)
CLI options¶
The full flag list is in the generated command reference; the table below covers the options that need explanation. Do not hand-duplicate the exhaustive list.
Option |
Description |
Default |
|---|---|---|
|
Structure file ( |
Required |
|
Amber topology for the full enzyme/MM region. Required unless |
None |
|
PDB defining the ML region. Required when |
None |
|
Comma-separated ML-region atom indices (ranges allowed, e.g. |
None |
|
Interpret |
|
|
Detect ML/MM layers from input PDB B-factors ( |
|
|
Net charge; overrides |
None (required unless |
|
Per-resname charge mapping (e.g., |
None |
|
Spin multiplicity (2S+1); overrides |
|
|
Max number of IRC steps; overrides |
|
|
Step length in Bohr (unweighted Cartesian); overrides |
|
|
Imaginary mode index for the initial displacement; overrides |
|
|
Run the forward IRC; overrides |
|
|
Run the backward IRC; overrides |
|
|
Output directory; overrides |
|
|
Reference PDB topology to use when |
None |
|
Toggle XYZ/TRJ to PDB companions when a reference PDB is available. |
|
|
How the ML backend builds the Hessian ( |
|
|
Base YAML configuration applied before explicit CLI options. |
None |
|
Print resolved YAML layers/config and continue. |
|
|
MLIP backend for the ML region: |
|
|
Enable xTB point-charge embedding correction for MM-to-ML environmental effects (experimental). |
|
|
Cutoff radius (Å) for embed-charge MM atoms. |
|
|
Enable CMAP (backbone cross-map dihedral correction) in model parm7. Default: disabled (consistent with Gaussian ONIOM). |
|
|
Device for initial Hessian storage and IRC operations: |
|
|
Read initial Hessian from a |
None |
|
MM backend (analytical Hessian vs OpenMM finite-difference). |
|
|
Link-atom placement: scaled ($g$-factor) or fixed 1.09/1.01 Å. |
|
|
Write machine-readable |
|
|
Validate and print execution plan without running IRC. Shown in |
|
YAML configuration¶
Provide mappings with merge order defaults < config < explicit CLI < override.
Shared sections reuse YAML Reference for geometry/calculator keys. For irc, geom.coord_type is forced to cart after YAML/CLI merging. calc.return_partial_hessian is forced to true (partial Hessian with active-DOF processing).
geom:
coord_type: cart # forced to cart for irc (YAML value ignored)
freeze_atoms: [] # 1-based frozen atoms merged with CLI/link detection
calc:
charge: 0 # net charge (CLI override)
spin: 1 # spin multiplicity 2S+1
mlmm:
real_parm7: real.parm7 # Amber parm7 topology
model_pdb: ml_region.pdb # ML-region definition
backend: uma # MLIP backend: uma | orb | mace | aimnet2
embedcharge: false # xTB point-charge embedding correction
uma_model: uma-s-1p1 # uma-s-1p1 | uma-m-1p1
uma_task_name: omol # UMA task name (UMA backend only)
ml_device: auto # ML backend device selection
hessian_calc_mode: Analytical # override; default is FiniteDifference
return_partial_hessian: true # forced true for irc (partial Hessian with active-DOF processing)
irc:
step_length: 0.1 # integration step length (CLI: --step-size)
max_cycles: 125 # maximum steps along IRC (CLI: --max-cycles)
forward: true # propagate forward branch (CLI: --forward)
backward: true # propagate backward branch (CLI: --backward)
Full schema (every irc key and default): YAML Reference.
Notes¶
Both branches run by default; disable one with
--no-forwardor--no-backwardwhen you only need a single direction.
See Also¶
Common Error Recipes — Symptom-first failure routing
Troubleshooting — Detailed troubleshooting guide
tsopt — Optimize the TS before running IRC
freq — Verify the TS candidate has one imaginary frequency; analyze IRC endpoints
opt — Optimize IRC endpoints to true minima
all — End-to-end workflow that runs IRC after tsopt
YAML Reference — Full
ircconfiguration optionsGlossary — Definition of IRC (Intrinsic Reaction Coordinate)