OpenMM MD takes a protein structure from PDB to an equilibrated simulation in one job: it cleans the structure, assigns protonation states, solvates it, minimizes, and runs Langevin dynamics with OpenMM, then optionally analyzes the trajectory. It runs on a GPU by default (T4); CPU is for short test runs.
How it works
- Prepare. PDBFixer repairs missing atoms and residues (and removes heterogens if you ask), PROPKA assigns protonation states at
preparation.ph(7.4 by default), and OpenMM's Modeller adds a water box withpadding_nm(1.0) of padding and ions ationic_strength(0.15 M). - Simulate. Energy minimization, then
simulation.num_stepsof Langevin dynamics (up to 500,000) attemperature_k(300 K). Hydrogen mass repartitioning (hmr, on by default) allows a 4 fs time step instead of 2 fs, so the default 50,000 steps cover about 0.2 ns. - Analyze (optional). Each entry in
analyticsruns on the trajectory with MDAnalysis and writes a CSV.
Ensembles
simulation.ensemble | Behavior |
|---|---|
nvt (default) | Constant volume |
npt | Adds a Monte Carlo barostat at pressure_bar (1.0 by default). Needs explicit water. |
Force fields and solvent
preparation.force_field | preparation.solvent_model |
|---|---|
amber14 (default) | tip3pfb (default), tip3p, tip4pew, spce, or implicit_obc2 |
amber99sbildn | tip3p or implicit_obc2 |
implicit_obc2 skips the water box and uses OBC2 generalized-Born implicit solvent, with NVT only. Only force fields we can license for this use are offered; CHARMM36 for proteins isn't available yet.
Analytics
metric | Fields | Measures |
|---|---|---|
rmsf | selection | Per-atom fluctuation over the trajectory |
contact_map | selection_a, selection_b, cutoff (4.5 Å) | How often each pair of residues is in contact |
buried_surface_area | selection_a, selection_b | Surface area buried at the interface |
com_distance | selection_a, selection_b | Distance between the two centers of mass |
Selections use MDAnalysis syntax, for example protein and name CA or segid A.
System modes
protein_protein(default): a protein or complex fromstructure.pdb_text, as above.membrane_small_molecule: a small molecule fromligand.smiles, parameterized with OpenFF Sage and placed in the water above a small prebuilt lipid bilayer patch (box_id: lnp_hspc_chol_v1, rebuilt as a POPC bilayer for CHARMM36) with 150 mM NaCl. It doesn't need a PDB, but in a workflow the step still needs itsstructureinput connected.
Outputs
| File | Contents |
|---|---|
simulation/minimized.pdb | The minimized starting system |
simulation/trajectory.dcd | The trajectory |
simulation/equil_log.csv | Step, potential energy, temperature, and density (plus volume for NPT) |
analytics/<metric>_<n>.csv | One file per analytics entry |
pipeline_summary.json | The settings used, files, and analytics results |
Intermediate structures (cleaned, protonated, and solvated) are in intermediate/. Analyze the trajectory further with the MD Trajectory Analyzer, or rescore binding with MM-GBSA Rescoring.
Not covered
- Constant-energy (NVE) runs.
- CHARMM36, COMPASS, and DREIDING for proteins, and implicit solvents other than OBC2.