Skip to content
OpenMM plugin to implement single-decoupling method in alchemical free energy calculations
C++ CMake Python Cuda C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

OpenMM SDM Plugin

A plugin to implement the Single-Decoupling alchemical protocol in OpenMM


Emilio Gallicchio
Rajat Pal
Baofeng Zhang


This software is released under the LGPL license. See LICENSE.


This software is maintained by the Gallicchio's laboratory at Department of Chemistry of Brooklyn College of CUNY. Development and maintenance of this software is supported in part from a grant from the National Science Foundation (CAREER 1750511).

The plugin interface is based on the openmmexampleplugin by Peter Eastman.


OpenMM 7. Known to work with the OpenMM 7.2.2 and OpenMM 7.3.1

Platforms supported: Reference and OpenCL (CUDA will be supported soon).

Our workflow to set up SDM calculations with this plugin openmm_sdm_workflow assumes input from structure and parameter files in desmond file format. This requires the latest desmond file reader. Copy the desmond file reader in your OpenMM source tree and rebuild it.


Locate the OpenMM installation directory, otherwise it will default to /usr/local/openmm. See above regarding patching OpenMM's desmond file reader.

Download the package from github:

git clone

Build and install the plugin with cmake. Assuming a unix system:

mkdir build_openmm_sdm_plugin
cd build_openmm_sdm_plugin
ccmake -i ../openmm_sdm_plugin

Hit c (configure) until all variables are correctly set, then g to generate the makefiles. OPENMM_DIR should point to an existing OpenMM installation. CMAKE_INSTALL_PREFIX normally is the same as OPENMM_DIR. The SDM plugin requires the python API. You need python and swig to install it.

Once the configuration is done do:

make install
make PythonInstall

The last two steps may need superuser access depending on the installation target. It is recommended to to build the plugin under a conda environment to install the python modules without superuser access.


cd example
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<openmm_dir>/lib:<openmm_dir>/lib/plugins

<openmm_dir> is the OpenMM installation directory. Again, the last step is best accomplished under the same virtualenv environment used to build the python modules.

You can’t perform that action at this time.