path-search¶
Overview¶
Summary: Build a continuous MEP from two or more structures with recursive GSM segmentation. Automatically refines only regions with bond changes and exports the highest-energy image (HEI) as a TS candidate.
mlmm path-search builds a continuous minimum-energy path (MEP) across two or more structures using GSM. It selectively refines only those regions where covalent bond changes are detected, then stitches the resolved subpaths into a single trajectory.
If you only have two endpoints and do not need recursive refinement, path-opt is the simpler option.
Minimal example¶
mlmm path-search -i reactant.pdb product.pdb --parm real.parm7 \
--model-pdb ml_region.pdb -q 0 --out-dir ./result_path_search
Output checklist¶
result_path_search/mep_trj.xyzresult_path_search/summary.yamlresult_path_search/summary.logresult_path_search/mep_plot.png(when plotting succeeds)
Common examples¶
Build a multistep path with explicit intermediates.
mlmm path-search -i R.pdb IM1.pdb IM2.pdb P.pdb --parm real.parm7 \
--model-pdb ml_region.pdb -q -1 --out-dir ./result_path_search_multi
Run a lighter pass without pre-optimization or alignment.
mlmm path-search -i reactant.pdb product.pdb --parm real.parm7 \
--model-pdb ml_region.pdb -q 0 --no-preopt --no-align --max-nodes 8 \
--out-dir ./result_path_search_fast
Usage¶
mlmm path-search -i R.pdb IM1.pdb P.pdb \
--parm real.parm7 --model-pdb ml_region.pdb -q CHARGE [-m MULT]
[--mep-mode gsm|dmf] [--refine-mode peak|minima]
[--freeze-atoms "1,3,5"] [--max-nodes N] [--max-cycles N] [--climb/--no-climb]
[--opt-mode grad|hess]
[--thresh PRESET] [--dump/--no-dump] [--out-dir DIR]
[--show-config/--no-show-config] [--dry-run/--no-dry-run]
Examples¶
# Minimal pocket-only MEP between two states
mlmm path-search -i reactant.pdb product.pdb --parm real.parm7 \
--model-pdb ml_region.pdb -q 0
# Multistep path with YAML overrides and frozen atoms
mlmm path-search -i R.pdb IM1.pdb P.pdb --parm real.parm7 \
--model-pdb ml_region.pdb -q -1 --freeze-atoms "1,3,5" \
--ref-pdb holo_template.pdb --out-dir ./run_ps
Workflow¶
Initial segment per pair (GSM/DMF) – Run the selected MEP engine (
--mep-mode) between each adjacent input (A->B) to obtain a coarse MEP and identify the highest-energy image (HEI).Local relaxation around HEI – Seed refinement from
--refine-mode(peak: HEI+/-1,minima: nearest local minima), then optimize with the chosen single-structure optimizer (opt-mode) to recover nearby minima (End1,End2).Decide between kink vs. refinement:
If no covalent bond change is detected between
End1andEnd2, treat the region as a kink: insertsearch.kink_max_nodeslinear nodes and optimize each individually.Otherwise, launch a refinement segment (GSM) between
End1andEnd2to sharpen the barrier.
Selective recursion – Compare bond changes for
(A->End1)and(End2->B)using thebondthresholds. Recurse only on sub-intervals that still contain covalent updates. Recursion depth is capped bysearch.max_depth.Stitching & bridging – Concatenate resolved subpaths, dropping duplicate endpoints when RMSD <=
search.stitch_rmsd_thresh. If the RMSD gap between two stitched pieces exceedssearch.bridge_rmsd_thresh, insert a bridge MEP segment using the selected--mep-mode. When the interface itself shows a bond change, a brand-new recursive segment replaces the bridge.Optional alignment – After pre-opt,
--alignrigidly co-aligns inputs and refines freezes. Segments are annotated for plotting/analysis.
Bond-change detection relies on bond_changes.compare_structures with thresholds surfaced under the bond YAML section.
CLI options¶
Option |
Description |
Default |
|---|---|---|
|
Two or more full-enzyme PDBs in reaction order. Repeat |
Required |
|
Amber parm7 topology for the full enzyme complex. |
Required |
|
PDB defining the ML (high-level) region atoms for ML/MM. Optional when |
None |
|
Comma-separated atom indices for the ML region (ranges allowed like |
None |
|
Interpret |
|
|
Detect ML/MM layers from input PDB B-factors (B=0/10/20). If disabled, you must provide |
|
|
Charge of the ML region (integer). |
Required |
|
Per-residue charge map, e.g. |
None |
|
Spin multiplicity (2S+1). |
|
|
MEP backend for segment/bridge searches. |
|
|
HEI refinement seed rule. |
|
|
Comma-separated 1-based indices to freeze (merged with YAML |
None |
|
Distance cutoff (Å) from ML region for MM atoms to include in Hessian calculation. Applied to movable MM atoms. |
None |
|
Distance cutoff (Å) from ML region for movable MM atoms. MM atoms beyond this are frozen. Providing |
None |
|
Internal nodes for segment GSM. |
|
|
Max GSM macro-cycles. |
|
|
Enable TS refinement for segment GSM. |
|
|
Single-structure optimizer preset ( |
|
|
Pre-optimize endpoints with LBFGS before segmentation. |
|
|
Rigidly align inputs after pre-opt. |
|
|
Convergence preset ( |
None (effective: |
|
Save optimizer dumps. |
|
|
Output directory. |
|
|
Full template PDB(s) for XYZ→PDB conversion and topology reference. |
None |
|
Base YAML configuration layer applied before explicit CLI values. |
None |
|
Print resolved configuration (including YAML layer metadata) and continue. |
|
|
Validate options and print the execution plan without running path search. Shown in |
|
|
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. |
|
|
Toggle XYZ/TRJ to PDB companions when a PDB template is available. |
|
Outputs¶
out_dir/ (default: ./result_path_search/)
summary.yaml # MEP-level run summary (no full settings dump)
summary.log # Human-readable summary
mep_trj.xyz # Final MEP (always written)
mep.pdb # Final MEP (PDB when ref template available)
mep_seg_XX_trj.xyz / mep_seg_XX.pdb # Per-segment paths
hei_seg_XX.xyz / hei_seg_XX.pdb # HEI per bond-change segment
mep_plot.png # Delta-E profile vs image index (from trj2fig)
energy_diagram_MEP.png # State-level energy diagram relative to the reactant (kcal/mol)
seg_000_*/ # Segment-level GSM and refinement artifacts
YAML configuration¶
Merge order is defaults < config < explicit CLI < override. The YAML root must be a mapping. Accepted sections:
geom–coord_type("cart"default),freeze_atoms(0-based indices).calc/mlmm– ML/MM calculator settings:input_pdb,real_parm7,model_pdb,model_charge,model_mult, backend selection (backend,embedcharge), UMA controls (uma_model,uma_task_name,ml_hessian_mode), device selection, freeze atoms.gs– Growing String settings:max_nodes,climb,climb_rms,climb_fixed,reparam_every_full,reparam_check.opt– StringOptimizer controls:max_cycles,print_every,dump,dump_restart,out_dir.lbfgs– Single-structure optimizer controls for HEI+/-1 refinement:keep_last,beta,gamma_mult,max_step,control_step,double_damp,mu_reg,max_mu_reg_adaptions.bond– Bond-change detection:bond_factor,margin_fraction,delta_fraction.search– Recursion logic:max_depth,stitch_rmsd_thresh,bridge_rmsd_thresh,max_nodes_segment,max_nodes_bridge,kink_max_nodes,max_seq_kink,refine_mode.
See Also¶
Common Error Recipes – Symptom-first failure routing
Troubleshooting – Detailed troubleshooting guide
path-opt – Single-pass MEP optimization (no recursive refinement)
opt – Single-structure geometry optimization
all – End-to-end workflow that calls path-search internally
trj2fig – Plot energy profiles from MEP trajectories