irc¶
Overview¶
Summary: Runs EulerPC-based IRC (Intrinsic Reaction Coordinate) integration from a transition state toward reactants and products using the ML/MM calculator. By default both forward and backward branches are computed.
mlmm irc runs IRC calculations using the EulerPC integrator with the ML/MM calculator. The CLI is 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.
A typical workflow is tsopt -> freq (confirm one imaginary mode) -> irc.
Minimal example¶
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
Output checklist¶
result_irc/finished_irc_trj.xyzresult_irc/forward_irc_trj.xyz
Common examples¶
Run only the forward branch.
mlmm irc -i ts.pdb --parm real.parm7 --model-pdb ml_region.pdb \
-q 0 --no-backward --out-dir ./result_irc_forward
Increase step size and use 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.
mlmm irc -i ts.pdb --parm real.parm7 --model-pdb ml_region.pdb \
--no-detect-layer -q 0 -m 1 --max-cycles 150 \
--out-dir ./result_irc_long
Workflow¶
Input preparation – Any format supported by
geom_loaderis accepted. 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 is applied for MM-to-ML environmental corrections.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.
CLI options¶
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 ( |
|
|
Total 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 mass-weighted coordinates; 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. |
|
|
Cutoff radius (Å) for embed-charge MM atoms. |
|
|
Validate and print execution plan without running IRC. Shown in |
|
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)
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).
CLI-to-YAML mapping¶
CLI option |
YAML key |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example YAML¶
geom:
coord_type: cart # forced to cart for irc (YAML value ignored)
freeze_atoms: [] # 0-based frozen atoms merged with CLI/link detection
calc:
charge: 0 # total 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 # Hessian mode (alias: ml_hessian_mode)
return_partial_hessian: true # forced true for irc (partial Hessian with active-DOF processing)
irc:
step_length: 0.1 # integration step length
max_cycles: 125 # maximum steps along IRC
downhill: false # follow downhill direction only
forward: true # propagate in forward direction
backward: true # propagate in backward direction
root: 0 # normal-mode root index
hessian_init: calc # Hessian initialization source
displ: energy # displacement construction method
displ_energy: 0.001 # energy-based displacement scaling
displ_length: 0.1 # length-based displacement fallback
rms_grad_thresh: 0.001 # RMS gradient convergence threshold
hard_rms_grad_thresh: null # hard RMS gradient stop
energy_thresh: 0.000001 # energy change threshold
imag_below: 0.0 # imaginary frequency cutoff
force_inflection: true # enforce inflection detection
check_bonds: false # check bonds during propagation
out_dir: ./result_irc/ # output directory
prefix: "" # filename prefix
hessian_update: bofill # Hessian update scheme
hessian_recalc: null # Hessian rebuild cadence
max_pred_steps: 500 # predictor-corrector max steps
loose_cycles: 3 # loose cycles before tightening
corr_func: mbs # correlation function choice
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)