freq¶
Compute ML/MM vibrational frequencies and thermochemistry (zero-point energy (ZPE), Gibbs energy, etc.) on a layered enzyme PDB, with partial-Hessian vibrational analysis (PHVA) support.
When to use mlmm freq:
Validate stationary-point character of an optimized minimum, transition state, or IRC endpoint (a minimum has no imaginary frequencies; a transition state has exactly one).
Compute quasi-rigid-rotor-harmonic-oscillator (QRRHO) thermochemistry.
The command runs vibrational analysis with the ML/MM calculator, honoring frozen atoms via PHVA. It exports normal-mode animations as _trj.xyz and .pdb (mapped back onto the enzyme ordering), and prints a Gaussian-style thermochemistry summary when the optional thermoanalysis package is installed.
Imaginary frequencies appear as negative values. When VRAM permits, --hessian-calc-mode Analytical speeds up Hessian evaluation.
Examples¶
Basic frequency analysis:
mlmm freq -i pocket.pdb --parm real.parm7 --model-pdb ml_region.pdb \
-q 0 -m 1 --out-dir ./result_freq
Limit the number of exported modes for quick inspection:
# Limit the number of exported modes for quick inspection
mlmm freq -i pocket.pdb --parm real.parm7 --model-pdb ml_region.pdb \
-q 0 -m 1 --max-write 6 --out-dir ./result_freq_quick
PHVA with explicit frozen atoms and dump thermo payload:
# PHVA with explicit frozen atoms and dump thermo payload
mlmm freq -i pocket.pdb --parm real.parm7 --model-pdb ml_region.pdb \
-q 0 -m 1 --freeze-atoms "1,3,5,7" --dump --out-dir ./result_freq_phva
Analytical Hessian mode on VRAM-rich nodes:
# Analytical Hessian mode on VRAM-rich nodes
mlmm freq -i pocket.pdb --parm real.parm7 --model-pdb ml_region.pdb \
-q 0 -m 1 --hessian-calc-mode Analytical --out-dir ./result_freq_analytical
Workflow¶
ML/MM calculator setup — The ML region is supplied via
--model-pdb; Amber parameters are read from--parm.--hessian-calc-modeselects analytical or finite-difference Hessians. The calculator may return either the full 3N x 3N Hessian or an active degree-of-freedom (DOF) sub-block.PHVA & translation/rotation (TR) projection — With frozen atoms, eigenanalysis occurs inside the active subspace with translation/rotation modes projected there. Both 3N x 3N and active-block Hessians are accepted, and frequencies are reported in cm^-1 (negatives = imaginary).
Active DOF mode —
--active-dof-modeselects which atoms enter the analysis (defaultpartial); see the CLI options table for the four modes.Mode export —
--max-writelimits how many modes are animated. Modes are sorted by value (or absolute value with--sort abs). Each exported mode writes_trj.xyz(XYZ-like trajectory) and.pdbfiles (PDB animation mapped back onto the enzyme ordering). The sinusoidal animation amplitude (--amplitude-ang) and frame count (--n-frames) match the YAML defaults.Thermochemistry — If
thermoanalysisis installed, a QRRHO-like summary (EE, ZPE, E/H/G corrections, heat capacities, entropies) is printed using PHVA frequencies. CLI pressure in atm is converted internally to Pa. When--dump, athermoanalysis.yamlsnapshot is also written.Device selection —
ml_device="auto"triggers CUDA when available, otherwise CPU. The internal TR projection/mode assembly runs on the same device to minimize transfers.Exit behavior — Keyboard interrupts exit with code 130; other failures print a traceback and exit with code 1.
Outputs¶
out_dir/ (default: ./result_freq/)
├─ mode_XXXX_±freqcm-1_trj.xyz # Per-mode animations (XYZ-like trajectory)
├─ mode_XXXX_±freqcm-1.pdb # PDB animation mapped back onto the enzyme ordering
├─ frequencies_cm-1.txt # Full frequency list using the selected sort order
└─ thermoanalysis.yaml # Present when thermoanalysis is importable and --dump is True
Console blocks summarizing resolved
geom,calc,freq, and thermochemistry settings.
CLI options¶
mlmm freq --help shows core options; mlmm freq --help-advanced shows the full option list. The full flag list is in the generated command reference; the table below covers the options that need explanation.
Option |
Description |
Default |
|---|---|---|
Input & charge |
||
|
Full enzyme PDB (no link atoms). |
Required |
|
Amber parm7 topology for the full enzyme. |
Required |
|
PDB defining the ML region. Optional when |
None |
|
Explicit ML-region atom indices (alternative to |
None |
|
Indexing convention for |
|
|
Auto-detect ML/MM layers from B-factors. |
|
|
ML region charge. |
None (required unless |
|
Per-resname charge mapping (e.g., |
None |
|
Spin multiplicity (2S+1). |
|
|
Reference PDB topology for non-PDB inputs. |
None |
Backend & compute |
||
|
MLIP backend for the ML region: |
|
|
MLIP backend precision; routed to backend-native kwarg (UMA |
|
|
MM backend (analytical Hessian vs OpenMM finite-difference). |
|
|
Link-atom placement: scaled ($g$-factor) or fixed 1.09/1.01 Å. |
|
|
Enable CMAP (backbone cross-map dihedral correction) in model parm7. Default: disabled (consistent with Gaussian ONIOM). |
|
|
Enable xTB point-charge embedding correction for MM-to-ML environmental effects (experimental). |
|
|
Cutoff radius (Å) for embed-charge MM atoms. |
|
|
Device for Hessian assembly/diagonalization: |
|
Active-region freezing & Hessian |
||
|
1-based comma-separated frozen atom indices. |
None |
|
Active DOF selection: |
|
|
Cutoff distance for Hessian-target MM atoms. |
None |
|
Cutoff distance for movable-MM layer. |
None |
|
Hessian mode ( |
|
|
Save computed Hessian to a compressed |
None |
Mode export |
||
|
Number of modes to export. |
|
|
Mode ordering: |
|
|
Mode animation amplitude (angstrom). |
|
|
Frames per mode animation. |
|
|
Toggle XYZ/TRJ to PDB companions when a PDB template is available. |
|
Thermochemistry |
||
|
Thermochemistry temperature (K). |
|
|
Thermochemistry pressure (atm). |
|
|
Write |
|
Output & config |
||
|
Output directory. |
|
|
Write machine-readable |
|
|
Base YAML configuration applied before explicit CLI options. |
None |
|
Print resolved YAML layers/config and continue. |
|
|
Validate and print execution plan without running frequency analysis. Shown in |
|
YAML configuration¶
Provide mappings with merge order defaults < config < explicit CLI < override.
Shared sections reuse YAML Reference.
An additional thermo section is supported for thermochemistry controls.
geom:
coord_type: cart # coordinate type: cartesian vs dlc internals
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: FiniteDifference # Hessian mode (FiniteDifference default; Analytical for higher VRAM jobs)
out_hess_torch: true # request torch-form Hessian
mm_fd: true # MM finite-difference toggle
return_partial_hessian: true # allow partial Hessians (PHVA default)
freq:
amplitude_ang: 0.8 # displacement amplitude for modes (Å)
n_frames: 20 # number of frames per mode
max_write: 10 # maximum number of modes to write
sort: value # sort order: value vs abs
thermo:
temperature: 298.15 # thermochemistry temperature (K)
pressure_atm: 1.0 # thermochemistry pressure (atm)
dump: false # write thermoanalysis.yaml when true
See Also¶
tsopt — Optimize TS candidates (validate with freq/IRC; expected: one imaginary frequency)
opt — Geometry optimization (often precedes freq)
dft — Single-point DFT for higher-level energy refinement
all — End-to-end workflow with
--thermoCommon Error Recipes — Symptom-first failure routing
Troubleshooting — Detailed troubleshooting guide
YAML Reference — Full
freqandthermoconfiguration optionsGlossary — Definitions of ZPE, Gibbs Energy, Enthalpy, Entropy