path-search¶
mlmm path-search builds a continuous minimum-energy path (MEP) across two or more structures using the selected MEP engine (GSM by default, or DMF). It selectively refines only those regions where covalent bond changes are detected, then stitches the resolved subpaths into a single trajectory. Use it to drive a multistep mechanism from R + (optional intermediates) + P, where the recursive segmentation auto-detects elementary steps. Complex multistep mechanisms may require manual trial-and-error—adjusting input intermediates, MEP-engine settings, or convergence thresholds—to obtain a satisfactory pathway.
Examples¶
mlmm path-search -i reactant.pdb product.pdb --parm real.parm7 \
--model-pdb ml_region.pdb -q 0 --out-dir ./result_path_search
Build a multistep path with explicit intermediates:
# 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
Lighter pass without pre-optimization or alignment:
# 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
General command form:
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-gsm N] [--max-cycles-dmf N] [--climb/--no-climb]
[--thresh PRESET] [--dump/--no-dump] [--out-dir DIR]
[--show-config/--no-show-config] [--dry-run/--no-dry-run]
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 use L-BFGS 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 with the selected MEP engine 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 bond changes. 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 new recursive segment replaces the bridge.Optional alignment/refinement – After optional preoptimization,
--alignrigidly aligns inputs to the first input. With frozen anchors, the shared owner also performs a freeze-guided scan and L-BFGS relaxation toward the reference, then re-matches the freeze-atom selection. Segments are annotated for plotting/analysis.
Bond-change detection relies on bond_changes.compare_structures with thresholds surfaced under the bond YAML section.
Outputs¶
out_dir/ (default: ./result_path_search/)
summary.json # 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
CLI options¶
mlmm path-search --help shows core options; mlmm path-search --help-advanced shows the full option list. The full flag list is also in the generated command reference; the table below covers the options that need explanation.
Option |
Description |
Default |
|---|---|---|
|
Two or more PDB/mmCIF structures, or XYZ files with corresponding |
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 |
|
|
Automatically read B-factor layers (B=0/10/20). With explicit ML membership, only the MM sublayers are retained; otherwise B-factors also define ML membership. |
Enabled |
|
Net charge of the ML region (integer). Required unless |
None |
|
Per-residue charge map, e.g. |
None |
|
Spin multiplicity (2S+1). |
|
|
MEP backend for segment/bridge searches. |
|
|
DMF compute backend ( |
|
|
HEI refinement seed rule. |
|
|
Comma-separated 1-based indices to freeze (merged with YAML |
None |
|
Distance cutoff (Å) from ML region for movable MM atoms. MM atoms beyond this are frozen. Providing |
None |
|
Movable internal images per GSM or DMF segment ( |
|
|
GSM node parameterization after string growth. |
|
|
GSM string-optimizer cycle cap. |
|
|
DMF IPOPT iteration cap. |
|
|
Enable TS refinement for segment GSM. |
|
|
Pre-optimize endpoints with L-BFGS before segmentation. |
|
|
After preoptimization, align inputs and, with frozen anchors, run freeze-guided scan/relaxation before re-matching freeze atoms. |
|
|
Convergence preset for single-structure L-BFGS runs only ( |
|
|
Convergence preset for the GSM string optimizer ( |
|
|
IPOPT dual-infeasibility tolerance of the DMF optimizer ( |
|
|
MM backend. Hessians use finite differences by default; set |
|
|
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: |
|
|
Preserve CMAP in both REAL and MODEL MM layers. |
|
|
Toggle XYZ/TRJ to PDB companions when a PDB template is available. |
|
YAML configuration¶
Merge order is defaults < config < explicit CLI. The YAML root must be a mapping. The relevant sections are geom/calc(alias mlmm)/gs/opt (shared with path-opt) plus lbfgs (HEI+/-1 single-structure refinement), bond (bond-change detection), and search (recursive segmentation logic, path-search only).
# Minimal path-search YAML (every key and default: see YAML Reference)
calc:
backend: uma
search:
max_depth: 10 # recursion depth cap
refine_mode: null # peak | minima | null (auto)
bond:
bond_factor: 1.2 # covalent-radius scaling for bond-change cutoff
Full schema (every key and default): YAML Reference.
Notes¶
If you only have two endpoints and do not need recursive refinement, prefer path-opt.
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 (uses single-pass path-opt by default;
--refine-pathfor recursive path-search)trj2fig — Plot energy profiles from MEP trajectories
YAML Reference — Full
gs,bond,searchconfiguration options