openmaterials.ai / codes / PLUMED

PLUMED: collective variables and bias forces plugged into MD engines

A C++ library that computes collective variables from the positions an MD engine passes it and returns bias forces, so one implementation of each method serves every engine.

What it is and how it works

Bias forces by the chain rule

Each input line creates an Action: a collective variable, a function of variables, a bias or an output. PLUMED differentiates the bias through the variable derivatives and returns forces to the engine (Tribello 2014).

Actions and pilots

Pilot Actions such as METAD, UPPER_WALL and PRINT set the schedule. Only the Actions the active pilots need run at a step, so costly variables wait (Tribello 2014).

Collective variables

Distances, angles, torsions, coordination numbers, RMSD, path variables, secondary structure, radius of gyration, cell volume, energy, dipoles, MATHEVAL (Tribello 2014).

Free-energy methods

Umbrella sampling, steered MD with MOVINGRESTRAINT, well-tempered metadynamics with adaptive hills, parallel tempering, multiple walkers, bias exchange (Tribello 2014).

Engine interface

Engines call create, a generic data call, finalize (Tribello 2014). C, C++, Fortran, Python APIs. Native in AMBER, LAMMPS, DL_POLY, i-PI, OpenMM (PLUMED consortium 2019).

PLUMED-NEST

A public repository of input files and data to reproduce published enhanced-sampling runs, each parsed against current and development PLUMED (PLUMED consortium 2019).

What people do with it

Folding of HIV-1 protease in a Go model

Parallel tempering in the well-tempered ensemble with GROMACS and PLUMED converges the folding free energy in under 2.5e7 steps. Plain PT has not converged after 2.4e8 (Bonomi 2010). Bonomi 2010

Ligand binding to trypsin and COX-2

Funnel metadynamics in NAMD with PLUMED: -8.5 +/- 0.7 kcal/mol for benzamidine-trypsin (measured -6.4 to -7.3) and -11.1 +/- 1.5 for SC-558/COX-2 (about -12) (Limongelli 2013). Limongelli 2013

Polymorphs of urea and naphthalene

Well-tempered metadynamics in GROMACS 5.1.4 with PLUMED 2 crystallizes 108 urea and 36 naphthalene molecules from the liquid, finds the known forms and predicts new ones (Piaggi 2018). Piaggi 2018

How it is used

  1. Write the input

    One Action per line: labelled variables, biases with ARG=, PRINT ... FILE=colvar STRIDE=.

  2. Link the engine

    Use the native interface or a patch. The engine calls PLUMED after each force evaluation.

  3. Run the biased MD

    PLUMED adds the bias forces and virial and writes COLVAR and the hills at the set stride.

  4. Reconstruct F(s)

    plumed sum_hills on the hills, or plumed driver with HISTOGRAM and reweighting on a run.