This repository contains a number of additional integrators for OpenMM in openmmtools.integrators
, including
MTSIntegrator
- a multiple timestep integratorDummyIntegrator
- a "dummy" integrator that does not update positionsGradientDescentMinimizationIntegrator
- a simple gradient descent minimizer (without line search)VelocityVerletIntegrator
- a velocity Verlet integratorAndersenVelocityVerletIntegrator
- a velocity Verlet integrator with Andersen thermostat using per-particle collisionsMetropolisMonteCarloIntegrator
- a Metropolis Monte Carlo integrator that uses Gaussian displacement trialsHMCIntegrator
- a hybrid Monte Carlo (HMC) integratorGHMCIntegrator
- a generalized hybrid Monte Carlo (GHMC) integratorVVVRIntegrator
- a velocity Verlet with velocity randomization (VVVR) integrator
The openmmtools.testsystems
module contains a large suite of test systems---including many with simple exactly-computable properties---that can be used to test molecular simulation algorithms
An implementation of an MCMCMove
encodes how to propagate an OpenMM System
to generate a new sample. Different MCMCMove
s can be combined for more advanced schemes.
LangevinDynamicsMove
: Langevin dynamics segment as a (pseudo) Monte Carlo move (WARNING: Does not preserve the true target distribution.).HMCMove
: Assigns velocities from the Maxwell-Boltzmann distribution and propagate through velocity Verlet steps.GHMCMove
: Generalized hybrid Monte Carlo Markov chain Monte Carlo.MonteCarloBarostatMove
: Attempts to update the box volume using Metropolis-Hastings Monte Carlo updates.SequenceMove
: Combine multipleMCMCMove
s to apply in sequence at each iteration.WeightedMove
: At each iteration, select oneMCMCMove
s to apply from a set with given probability.
The module openmmtools.states
contains classes to maintain a consistent state of the simulation.
ThermodynamicState
: Represent and manipulate the thermodynamic state of OpenMMSystem
s andContext
s.SamplerState
: Represent and cache the state of the simulation that changes when theSystem
is integrated.CompoundThermodynamicState
: Extend theThermodynamicState
to handle parameters other than temperature and pressure through the implementations of theIComposableState
abstract class.
The module openmmtools.cache
implements a shared LRU cache for Context
objects that tries to minimize the number of Context
in memory at the same time.
LRUCache
: A simple LRU cache with a dictionary-like interface. It supports a maximum capacity and expiration.ContextCache
: A LRU cache for OpenMMContext
objects.global_context_cache
: A sharedContextCache
that minimizes the number ofContext
creations when employingMCMCMove
s.
scripts/
contains a script that may be useful in testing your OpenMM installation is installed:
test-openmm-platforms
will test the various platforms available to OpenMM to ensure that all systems inopenmmtools.testsystems
give consistent potential energies. If differences in energies in excess ofENERGY_TOLERANCE
(default: 0.06 kcal/mol) are detected, these systems will be serialized to XML for further debugging.
This is installed onto the command line when the repository is installed.
This module openmmtools.storage
provides a user-friendly storage IO interface to store data to disk. The primary
function of this module is to remove the need for the user to define how to format and configure Python variables and
OpenMM Quantities to and from the disk. The module is extensible to any type of data a user wants. Currently supports
NetCDF storage types for now.
StorageIODriver
: Abstract extendable class to write format-specific IO drivers such as theNetCDFIODriver
NetCDFIODriver
: User-configurable IO driver for NetCDF files. Handles built in Python types andsimtk.unit.Quantity
'sStorageInterface
: A layer which runs on top of a providedStorageIODriver
to create an way for users to interface with the disk with as minimal effort as possible.