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.

🎓 Tutorials

Step-by-step lessons. Start here if you’re new.

Tutorials
🛠 How-to guides

Task-focused recipes. “How do I X?”

How-to guides
📖 Reference

Full API documentation, generated from source.

API reference
💡 Explanation

Concepts and mental models.

Explanation

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 SimMetricTICA → clustering → ModelKinetics pipeline. See The MSM analysis workflow.

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