HTMD#
HTMD is a Python environment for preparing, parameterizing, simulating, and analysing biomolecular systems at scale. It builds on moleculekit; see HTMD and moleculekit for which package owns which feature.
Step-by-step lessons. Start here if you’re new.
Task-focused recipes. “How do I X?”
Full API documentation, generated from source.
Concepts and mental models.
Headline capabilities#
Capability |
What it covers |
|---|---|
System building |
Solvating, ionising, and parameterizing proteins, ligands, membranes, non-canonical amino acids, stapled peptides, isopeptides, cyclic peptides, and disulfide-crosslinked assemblies through AMBER, OpenMM, or CHARMM. See System building. |
MD simulation & MSM analysis |
Queue-aware simulation drivers plus the |
Adaptive sampling |
Multi-epoch simulation campaigns whose next starting frames are picked from an on-the-fly MSM. See Adaptive sampling. |
Installation#
pip install acellera-htmd
See Installation for the conda install, uv, and licence registration.
Quick start: build, simulate and analyse#
A complete run end to end - prepare a protein, build it under AMBER, equilibrate, produce, then project, cluster, build an MSM, and extract kinetics.
from htmd.ui import *
from moleculekit.tools.preparation import systemPrepare
from acemd.protocols import setup_equilibration, setup_production
from acemd import acemd
from sklearn.cluster import MiniBatchKMeans
# 1. Build Trp-cage for AMBER.
mol = Molecule("1L2Y")
prepared, specs = systemPrepare(mol, pH=7.4)
amber.build(prepared, outdir="./build")
# 2. Equilibrate, then run production.
setup_equilibration("./build", "./equil", run="10ns")
acemd("./equil")
setup_production("./equil", "./prod", run="100ns", temperature=300)
acemd("./prod")
# 3. Project Cα-Cα distances, cluster, build the MSM, and extract kinetics.
sims = simlist(datafolders="./prod", topologies="./prod")
metr = Metric(sims)
metr.set(MetricSelfDistance("protein and name CA"))
data = metr.project()
data.cluster(MiniBatchKMeans(n_clusters=100))
model = Model(data)
model.markovModel(lag=20, macronum=4)
kin = Kinetics(model, temperature=300)
print(kin.getRates())
For protein-ligand and non-canonical-residue builds, see the system-building tutorials; for the analysis pipeline in depth, see the MSM analysis tutorials.
Citing#
If you use HTMD in published work, please cite:
S. Doerr, M. J. Harvey, F. Noé, and G. De Fabritiis. HTMD: High-throughput molecular dynamics for molecular discovery. J. Chem. Theory Comput. 2016, 12 (4), 1845-1852. doi:10.1021/acs.jctc.6b00049