PLUMED

PLUMED is an open source library for free energy calculations in molecular systems which works together with some of the most popular molecular dynamics engines.

Free energy calculations can be performed as a function of many order parameters with a particular focus on biological problems, using state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD. The software, written in C++, can be easily interfaced with both fortran and C/C++ codes.

Policy

PLUMED is freely available to users at HPC2N.

Citations

See “How to cite PLUMED” for how to include acknowledgement of the use of this program into scientific papers.

Overview

The community-developed PLUgin for MolEcular Dynamics.

PLUMED is an open-source, community-developed library that provides a wide range of different methods, which include:

  • enhanced-sampling algorithms
  • free-energy methods
  • tools to analyze the vast amounts of data produced by molecular dynamics (MD) simulations.

These techniques can be used in combination with a large toolbox of collective variables that describe complex processes in physics, chemistry, material science, and biology.

PLUMED works together with some of the most popular MD engines, such as

In addition, PLUMED can be used to augment the capabilities of analysis tools such as

and as a standalone utility to analyze pre-calculated MD trajectories.

PLUMED can be interfaced with the host code using a single well-documented API that enables the PLUMED functionalities to be imported. The API is accessible from multiple languages (C, C++, FORTRAN, and Python), and is thus compatible with the majority of the codes used in the community. The PLUMED license (L-GPL) also allows it to be interfaced with proprietary software.

Usage at HPC2N

On HPC2N we have PLUMED available as a standalone module and also integrated into some GROMACS versions.

Loading

To use the PLUMED module, add it to your environment. You can find versions with

module spider PLUMED 

and you can then find how to load a specific version (including prerequisites), with

module spider PLUMED/<VERSION> 

Example, loading PLUMED version 2.9.2

ml GCC/13.2.0 OpenMPI/4.1.6
ml PLUMED/2.9.2

Running

PLUMED can be incorporated into an MD code and used to analyze or bias a molecular dynamics run on the fly. Some MD code could already include calls to the PLUMED library and be PLUMED-ready in its original distribution, for instance the following MD codes can be used with PLUMED out of the box:

  • Amber, pmemd module, since version 20.
  • AmberTools, sander module, since version 15.
  • CP2K, since Feb 2015.
  • ESPResSo, in a version that has been patched with PLUMED can be found here.
  • OpenMM, using the openmm-plumed plugin.
  • LAMMPS since Nov 2018.
  • ASE
  • GROMACS (as of version 2025, with limited support (no replica exchange, no ENERGY collective variable, no lambda dynamics))

Please refer to the documentation of the MD code to know how to use it with the latest PLUMED release. If you maintain another MD code that is PLUMED-ready let us know and we will add it to this list.

In addition, you can use PLUMED as a command line tool for postprocessing the results from molecular dynamics or enhanced sampling calculations.

On the following link is a list of stand-alone tools for use on the command line.

You can also get this list with plumed --help.

Note

For any of the tools and to use PLUMED as a plugin in an MD calculation you will need an input file.

PLUMED to analyze trajectories

To get the options, do plumed driver --help.

You need to write an input file to use these. There is an example in this tutorial”.

Batch example

To use PLUMED command line tools through the batch system, write a batch script as shown in the below example. For using it with other MD codes, refer to those documentation pages.

Example, batch script

This is for using PLUMED version 2.9.2 command line tools

#!/bin/bash
# Project to run under - change to your own 
#SBATCH -A hpc2nXXXX-YYY
# name of the error file - change as you want, but keep %J 
#SBATCH --error=my_plumed_job_%J.err
# name of the output file - change as you want, but keep %J 
#SBATCH --output=my_plumed_job_%J.out
# asking for 1 core 
#SBATCH -n 1 
# asking for the job may to use up to 30 minutes to run
#SBATCH -t 00:30:00

# Purge any loaded modules and then load the PLINK module and its prerequisites  
ml GCC/13.2.0 OpenMPI/4.1.6 
ml PLUMED/2.9.2

# run the job
plumed <options tools> <input-file.inp> 

Additional info

More information can be found on