Skip to content
Self-adjusted mixture sampling experiments
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.

Build Status

Self-adjusted mixture sampling (SAMS)

Self-adjusted mixture sampling experiments, based on ideas from Zhiqiang Tan (Rutgers).

Self-adjusted mixture sampling (SAMS), like the closely related Wang-Landau methods, automatically adjust the weights of different thermodynamic states in an expanded ensemble simulation to achieve a desired target distribution over the states (often a uniform distribution). Unlike Wang-Landau, however, SAMS is both asymptotically consistent (in that it converges to the true unbiased free energies) and is asymptotically optimal (converging to the true unbiased free energies in minimum time). See Reference [1] for more information and proofs.

This package explores the use of SAMS methods in various molecular simulation contexts using the OpenMM GPU-accelerated molecular simulation package. See the examples/ for more information about specific applications.


Please be aware that this code is made available in the spirit of open science, but is currently pre-alpha--that is, it is not guaranteed to be completely tested or provide the correct results, and the API can change at any time without warning. If you do use this code, do so at your own risk. We appreciate your input, including raising issues about potential problems with the code, but may not be able to address your issue until other development activities have concluded.



Getting started

Make sure you have the omnia channel and dev label added to your conda path:

# Add omnia channel for stable omnia packages
conda config --add channels omnia
# Add omnia dev channels to pick up `openmm 7.1.0` pre-release
conda config --add channels omnia/label/dev

Make sure you have the OpenMM 7.1.0 preview installed:

# Clean out cached version of openmm package
conda clean -pltis --yes
# Install OpenMM 7.1.0 dev preview
conda install --yes openmm==7.1.0

Install sams:

conda install --yes sams

Try the example in examples/abl-imatinib-explicit/, which illustrates how to alchemically soften a small molecule (imatinib) in the binding site of a protein (Abl kinase) in explicit solvent:

# Check out the repository (if you haven't done so already)
git clone
# Go to the example directory
cd examples/abl-imatinib-explicit/
# Run the example!

A GPU is heavily recommended!


  • examples/ - various example applications of SAMS
  • notebooks/ - exploratory notebooks for SAMS applied to simple analytical systems
  • references/ - some SAMS reference articles
  • manuscripts/ - manuscripts in progress
You can’t perform that action at this time.