OpenMM is a high-performance, Python-based molecular dynamics simulation toolkit designed for computational modeling of protein dynamics, drug discovery, and mechanistic studies of Alzheimer's disease, Parkinson's disease, ALS, and Huntington's disease[1]. Unlike traditional MD engines that require separate configuration files and command-line tools, OpenMM provides a native Python API that enables flexible simulation design, custom force definitions, and seamless integration with machine learning workflows.
OpenMM is particularly valuable for simulating amyloid-beta aggregation in Alzheimer's disease, where metDynamics can reveal the kinetic pathways from monomer to oligomer to plaque. For Parkinson's disease, OpenMM simulates alpha-synuclein fibril formation and the formation of Lewy bodies. In ALS, OpenMM can model TDP-43 aggregation and C9orf72 dipeptide repeat toxicity. The platform is also used to study tau hyperphosphorylation dynamics in tauopathies including PSP and CBD. Drug discovery efforts leverage OpenMM for virtual screening of small molecule inhibitors targeting LRRK2 in Parkinson's disease and BACE inhibitors for Alzheimer's disease.
import openmm as mm
from openmm import unit as u
# Create system
system = mm.System()
# Add atoms, bonds, angles, dihedrals...
# Create platform (CUDA/OpenCL/CPU)
platform = mm.Platform.getPlatformByName('CUDA')
# Configure simulation
integrator = mm.LangevinIntegrator(
300*u.kelvin, # temperature
1/u.picosecond, # friction
0.002*u.picosecond # timestep
)
simulation = mm.Context(system, integrator, platform)
OpenMM enables implementation of disease-specific restraints for studying neurodegeneration:
# Distance restraint for [alpha-synuclein](/proteins/alpha-synuclein) dimerization in [Parkinson's disease](/diseases/parkinsons-disease)
force = mm.CustomBondForce('k*(r-r0)^2')
force.addBond(index1, index2, distance, force_constant)
system.addForce(force)
| Method | Application | Implementation |
|---|---|---|
| Metadynamics | Free energy landscapes | Collective variables |
| Accelerated MD | Conformational exploration | Bias potential |
| Gaussian accelerated MD | Enhanced sampling | Smooth biasing |
| Replica exchange | Temperature sampling | Multiple temperatures |
OpenMM enables detailed studies of amyloid-beta and alpha-synuclein aggregation[2] in neurodegenerative diseases:
1. Initial structure (AlphaFold2/RosettaFold)
→ 2. Energy minimization (OpenMM)
→ 3. Short equilibration
→ 4. Production MD (μs timescale)
→ 5. Binding free energy (MM-GBSA)
→ 6. Experimental validation
# Conda (recommended)
conda install -c conda-forge openmm
# pip
pip install openmm
# From source
git clone https://github.com/openmm/openmm.git
cd openmm
cmake ..
make -j$(nproc)
import openmm as mm
from openmm import unit as u
# Create a simple alanine dipeptide simulation
# (full implementation in OpenMM documentation)
# Minimize energy
simulation.minimizeEnergy()
# Equilibrate
simulation.step(50000)
# Production run
simulation.reporters.append(mm.DCDReporter('trajectory.dcd', 1000))
simulation.step(1000000) # 2 μs
# Check available platforms
for i in range(mm.Platform.getPlatformCount()):
print(mm.Platform.getPlatform(i).getName())
# Select CUDA for NVIDIA GPUs
platform = mm.Platform.getPlatformByName('CUDA')
# Configure GPU optimization
properties = {'CudaPrecision': 'mixed', 'CudaDeviceIndex': '0'}
| System Size | GPU | Timesteps/day |
|---|---|---|
| 10K atoms | A100 | ~10 μs |
| 50K atoms | A100 | ~2 μs |
| 100K atoms | A100 | ~0.5 μs |
| 500K atoms | A100 | ~50 ns |
Eastman P, et al. OpenMM 7: Rapid development of high performance algorithms for molecular dynamics. PLoS ONE. 2017. ↩︎
Vuong VV, et al. Molecular dynamics simulations of amyloid-beta and alpha-synuclein aggregation: A comparative review. Progress in Biophysics and Molecular Biology. 2017. ↩︎