irc¶
Overview¶
Summary: Runs EulerPC (Euler Predictor-Corrector)-based intrinsic reaction coordinate (IRC) integration from a transition state toward reactants and products. By default both forward and backward branches are computed. Setting
--hessian-calc-mode Analyticalis strongly recommended when VRAM permits.
At a glance¶
Use when: You have a TS structure (ideally already optimized and validated by
tsopt) and want to trace the intrinsic reaction coordinate to confirm endpoint connectivity (R ↔ TS ↔ P).Method: EulerPC (Euler Predictor-Corrector) integration with an MLIP-backend Hessian (UMA by default; ORB/MACE/AIMNet2 also supported). Forward and backward branches run by default.
Outputs:
finished_irc_trj.xyz,forward_irc_trj.xyz,backward_irc_trj.xyz(and.pdbcompanions when a reference PDB is available).Defaults:
--max-cycles 125,--step-size 0.10Bohr,--root 0,--forward/--backwardboth on,--hessian-calc-mode FiniteDifference, backenduma. Hard overrides: IRC forcesgeom.coord_type = cartandcalc.return_partial_hessian = trueafter YAML/CLI merging.Next step: Optimize IRC endpoints to true minima with opt, or pair with freq for thermochemistry. For Hessian evaluation modes, see Hessian evaluation mode.
pdb2reaction irc runs EulerPC-based IRC integrations with an MLIP backend (UMA by default; -b/--backend also supports ORB, MACE, and AIMNet2).
For XYZ/GJF inputs, --ref-pdb supplies a reference PDB topology while keeping XYZ coordinates, enabling format-aware PDB output conversion. A typical workflow is tsopt (which includes an imaginary-frequency check; confirm one imaginary frequency) → irc.
Minimal example¶
pdb2reaction irc -i ts.pdb -q 0 -m 1 --max-cycles 50 --out-dir ./result_irc
Output checklist¶
result_irc/finished_irc_trj.xyzresult_irc/forward_irc_trj.xyzresult_irc/backward_irc_trj.xyz
Common examples¶
Run only the forward branch.
pdb2reaction irc -i ts.pdb -q 0 -m 1 --no-backward \
--out-dir ./result_irc_forward
Increase step size and use analytical Hessians.
pdb2reaction irc -i ts.pdb -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.
pdb2reaction irc -i ts.pdb -q 0 -m 1 --max-cycles 150 \
--out-dir ./result_irc_long
Usage¶
pdb2reaction irc -i INPUT.{pdb|xyz|trj|...} [-q CHARGE] [-l, --ligand-charge <number|'RES:Q,...'>] \
[-b/--backend uma|orb|mace|aimnet2] [--solvent SOLVENT] [--solvent-model alpb|cpcmx] \
[--workers N] [--workers-per-node N] [-m 2S+1] \
[--max-cycles N] [--step-size Δs] [--root k] \
[--forward/--no-forward] [--backward/--no-backward] \
[--freeze-links/--no-freeze-links] \
[--out-dir DIR] [--config FILE] \
[--convert-files/--no-convert-files] [--ref-pdb FILE] \
[--hessian-calc-mode Analytical|FiniteDifference] \
[--show-config] [--dry-run]
Examples¶
# Forward-only branch, finite-difference Hessian, larger step size
pdb2reaction irc -i ts.pdb -q 0 -m 1 --no-backward \
--step-size 0.2 --hessian-calc-mode FiniteDifference --out-dir ./irc_fd/
# PDB input so finished and directional trajectories are also exported as PDB
pdb2reaction irc -i ts.pdb -q 0 -m 1 --max-cycles 50 --out-dir ./result_irc/
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, and--freeze-linksaugmentsgeom.freeze_atomsby freezing parents of link hydrogens for PDB inputs. Note:geom.coord_typeis forced tocart(Cartesian) regardless of YAML/CLI settings, andcalc.return_partial_hessianis forced totrue(partial Hessian with active-DOF processing).EulerPC integration – The EulerPC predictor-corrector integrator traces the IRC path from the transition state. Forward and/or backward branches are run according to
--forward/--backwardflags. Each step uses an energy-based predictor followed by a corrector step.Trajectory output – Finished, forward, and backward IRC trajectories are written as XYZ files. When a reference PDB is available, PDB companions are also generated (
--convert-files).
CLI options¶
Option |
Description |
Default |
|---|---|---|
|
Transition-state structure accepted by |
Required |
|
Total charge; used unless YAML sets |
Required unless template/derivation applies |
|
Per-residue charge mapping (e.g., |
None |
|
MLIP predictor parallelism (workers > 1 disables analytic Hessians). See workers > 1 silent FD downgrade for diagnostic notes. |
|
|
Workers per node, forwarded to the parallel predictor. |
|
|
Spin multiplicity (2S+1); used unless YAML sets |
|
|
Maximum IRC steps; used unless YAML sets |
|
|
Step length in unweighted Cartesian coordinates (Bohr); used unless YAML sets |
|
|
0-based index into the projected Hessian’s eigenvalues sorted in ascending order (most-negative first), used to pick the mode for the initial IRC displacement. For a validated TS with exactly one imaginary mode, leave |
|
|
Run forward branch ( |
|
|
Run backward branch ( |
|
|
For PDB inputs, freeze link-H parents (merged with |
|
|
Comma-separated 1-based atom indices to freeze explicitly (e.g., |
None |
|
Output directory ( |
|
|
Toggle XYZ/TRJ → PDB companions when a reference PDB is available. |
|
|
Reference PDB topology to use when the input is XYZ/GJF (keeps XYZ coordinates). |
None |
|
MLIP Hessian mode ( |
|
|
Base YAML configuration applied before explicit CLI options. |
None |
|
Print resolved YAML layers/config and continue. |
|
|
Write a machine-readable |
|
|
MLIP backend. |
|
|
Implicit solvent name for xTB correction (e.g. |
|
|
xTB solvent model. |
|
|
Validate and print execution plan without running IRC. |
|
Outputs¶
out_dir/ (default:./result_irc/)
├─ <prefix>finished_irc_trj.xyz # Complete IRC trajectory
├─ <prefix>forward_irc_trj.xyz # Present when the forward branch runs
├─ <prefix>backward_irc_trj.xyz # Present when the backward branch runs
└─ *.pdb # Trajectory companions when a reference PDB is available (conversion enabled)
Console summaries of resolved
geom,calc, andircconfigurations plus wall-clock timing.
Exit codes¶
See Exit codes in CLI Conventions.
Notes¶
For symptom-first diagnosis, start with Common Error Recipes, then use Troubleshooting for detailed fixes.
The MLIP backend (UMA by default) is reused throughout the IRC; aggressive
step_lengthvalues can destabilize EulerPC.For Hessian evaluation modes, see Hessian evaluation mode.
When
--freeze-linksis active, link-hydrogen parent atoms are automatically frozen (see Link hydrogen and frozen atoms).
See CLI Conventions: Configuration precedence for the full resolution order.
The geom, calc, and irc sections are unchanged from the canonical definitions in YAML Reference: see geom, calc, and irc. --freeze-links augments geom.freeze_atoms for PDB inputs, and --hessian-calc-mode plus CLI charge/spin values supplement the merged calc block.
irc-specific hard overrides (applied after YAML/CLI merging, regardless of YAML values):
geom:
coord_type: cart # forced to cart for irc (YAML value ignored)
calc:
return_partial_hessian: true # forced true for irc (partial Hessian with active-DOF processing)
See Also¶
Common Error Recipes – Symptom-first failure routing
tsopt — Optimize the TS before running IRC
freq — Full vibrational analysis and thermochemistry (imaginary-frequency check is already included in
tsopt)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)