freq¶
Compute vibrational frequencies and thermochemistry (ZPE, Gibbs energy, etc.) using an MLIP backend (UMA by default; -b/--backend also supports ORB, MACE, AIMNet2). Use it when full vibrational analysis is required — for example, to confirm that a stationary point is a true minimum with no imaginary frequencies, or that a TS has exactly one — or when thermochemistry corrections (ZPE, Gibbs energy) are needed. Finite differences are the default. --hessian-calc-mode Analytical avoids displacement error but may be faster or slower and usually needs more accelerator memory; benchmark and validate the selected backend/model on the target system. Imaginary frequencies appear as negative values.
Examples¶
Minimal run with explicit charge and spin:
# Minimal run with explicit charge and spin
pdb2reaction freq -i ts_or_min.pdb -q 0 -m 1 --out-dir ./result_freq
PHVA with cap-hydrogen parent freezing and dump thermo payload:
# PHVA with cap-hydrogen parent freezing and dump thermo payload
pdb2reaction freq -i ts_or_min.pdb -q 0 -m 1 --freeze-links --dump --out-dir ./result_freq_phva
Explicit analytical Hessian mode (after validating memory and runtime):
# Explicit analytical Hessian mode
pdb2reaction freq -i ts_or_min.pdb -q 0 -m 1 \
--hessian-calc-mode Analytical --out-dir ./result_freq_analytical
Workflow¶
Geometry loading & freeze handling: structures pass through the common structure bridge before
pysisyphus.helpers.geom_loader. For PDB/mmCIF topology inputs,--freeze-linksdetects cap hydrogens and freezes their parent atoms, then merges the resulting indices withgeom.freeze_atoms; the merged list is echoed and propagated to the MLIP backend and PHVA.MLIP backend:
--hessian-calc-modeselects analytical or finite-difference Hessians. The MLIP backend may return a partial (active) Hessian block whenever atoms are frozen. For Hessian evaluation modes, see Hessian evaluation mode.PHVA & rigid modes: with frozen atoms, eigenanalysis occurs inside the active subspace. The default
constrainedtreatment removes only full-system rigid motions that leave every frozen anchor fixed; a normal multi-anchor cluster boundary therefore usually has effective rank 0. Both 3N×3N and active-block Hessians are accepted. See Frozen Atoms.Mode export:
--max-writelimits how many mode trajectories are written. Modes are sorted by value (or absolute value with--sort abs). The sinusoidal trajectory amplitude (--amplitude-ang) and frame count (--n-frames) match the YAML defaults._trj.xyztrajectories are produced for every input; topology inputs also receive.pdbtrajectories when--convert-filesremains enabled, and mmCIF/oversized-PDB bridge inputs additionally receive.ciftrajectories with the original identifiers.Thermochemistry: if
thermoanalysisis installed, a QRRHO-like summary (E, 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. The console reports the structure energy in Hartree asE + G_corr = G(electronic energy + Gibbs free-energy correction = Gibbs free energy). The molecular point group and external rotational symmetry number are detected from each analyzed structure and the resulting1/sigmacorrection is always included. An expert can override the detected number withthermo.symmetry_numberin YAML.Frequency-treatment policy:
freqapplies the standalone-freq policy — QRRHO with a 100 cm⁻¹ rotor cutoff, unit frequency/ZPE scaling, no imaginary-frequency inversion, and no positive-frequency floor. This is deliberately different from the internalGeometry.get_thermoanalysispolicy used by some bundled-engine paths, which additionally inverts small imaginaries (from −15 cm⁻¹) and floors positive frequencies below 25 cm⁻¹. Neither is a universal scientific default; each is tied to its entry point. The effective policy (kind,rotor_cutoff_cm,frequency_scale,zpe_scale,invert_imag_from_cm,positive_frequency_floor_cm) is serialized underthermo_policyinthermoanalysis.yamland inresult.json.Performance: the implementation minimizes GPU memory usage by keeping a single Hessian resident.
Outputs¶
out_dir/ (default:./result_freq/)
├─ mode_XXXX_±freqcm-1_trj.xyz # Per-mode trajectories
├─ mode_XXXX_±freqcm-1.pdb # PDB/mmCIF topology exists and conversion is enabled
├─ mode_XXXX_±freqcm-1.cif # mmCIF/oversized-PDB bridge input
├─ 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.
Exit codes¶
See Exit codes in CLI Conventions.
CLI options¶
The tables below cover the options that need explanation; the full flag list is in the generated command reference.
Option |
Description |
Default |
|---|---|---|
|
Structure file accepted by the input bridge ( |
Required |
|
Total charge. Explicit |
Required unless YAML/template/derivation applies |
|
Either a scalar integer (e.g., |
None |
|
UMA predictor parallelism. |
|
|
Workers per node, forwarded to the parallel predictor. |
|
|
Spin multiplicity (2S+1). Explicit |
YAML/ |
|
PDB/mmCIF input (or XYZ/GJF with |
|
|
Comma-separated 1-based atom indices to freeze explicitly (e.g., |
None |
|
Number of modes to export. |
|
|
Mode-trajectory amplitude (Å). |
|
|
Frames per mode trajectory. |
|
|
Mode ordering: |
|
|
Output directory. |
|
|
Thermochemistry temperature (K). |
|
|
Thermochemistry pressure (atm). On the CLI this flag is |
|
|
Write |
|
|
MLIP Hessian mode ( |
|
|
Toggle XYZ/TRJ → PDB/CIF companions when a PDB/mmCIF topology is available (GJF is not written). |
|
|
Reference PDB or mmCIF topology to use when the input is XYZ/GJF (keeps XYZ coordinates). |
None |
|
Base YAML configuration applied before explicit CLI options. |
None |
|
Print resolved YAML layers/config and continue. |
|
|
Write a machine-readable |
|
|
MLIP backend. |
|
|
Validate and print execution plan without running frequency analysis. |
|
YAML configuration¶
The geom, calc, freq, and thermo sections follow the canonical definitions in YAML Reference: see geom, calc, freq, and thermo. freq forces calc.return_partial_hessian = true (PHVA) regardless of YAML.
The only freq-specific default that differs from the canonical block is the output directory:
freq:
zero_cutoff_cm: 5.0 # remove |frequency| <= 5.0 cm^-1
out_dir: ./result_freq/ # freq default
Notes¶
tsoptalready includes an imaginary-frequency check, so a separatefreqrun is mainly for thermochemistry or detailed mode inspection.A properly converged first-order saddle point (TS) is expected to have exactly one imaginary frequency.
freq.zero_cutoff_cmremoves|frequency| <= cutoffconsistently before standalone and TS-side classification.Imaginary frequencies are reported as negative values in cm⁻¹.
freqprints how many were detected and dumps details when--dump.An all-frozen structure has no active vibrational DOF and raises an explicit error.
--hessian-calc-modefollows the standard precedence (defaults < config < explicit CLI); an explicit CLI--hessian-calc-modevalue takes precedence overcalc.hessian_calc_modein the config YAML.
See Also¶
tsopt — Optimize TS candidates (includes imaginary-frequency check; follow with IRC for endpoint validation)
irc — IRC from TS (freq is often run on IRC endpoints for thermochemistry)
dft — Single-point DFT for higher-level energy evaluation
all — End-to-end workflow with
--thermoYAML Reference — Full
freqandthermoconfiguration optionsGlossary — Definitions of ZPE, Gibbs Energy, Enthalpy, Entropy
Common Error Recipes — Symptom-first failure routing
Troubleshooting — Detailed fixes for common failure modes