Installation

Requirements

molecular-simulations requires Python 3.10 or later and depends on several scientific computing packages:

  • OpenMM ≥ 8.0 (for molecular dynamics simulations)

  • MDAnalysis ≥ 2.7 (for trajectory analysis)

  • Parsl ≥ 2024.1.29 (for HPC workflow management)

  • AmberTools (for system building with tleap)

  • NumPy, SciPy, scikit-learn, Polars

Installing from PyPI

The simplest way to install molecular-simulations is via pip:

$ pip install molecular-simulations

This installs the core package with all standard dependencies.

Optional Dependencies

Small Molecule Support

For parameterizing small molecules with GAFF2, you’ll need RDKit and OpenBabel:

$ pip install molecular-simulations[ligand]

Development Installation

For development and testing:

$ pip install molecular-simulations[dev]

Installing with Conda

For complex dependencies like OpenMM and AmberTools, conda is often easier. To install on a CUDA-enabled machine:

$ conda create -n molsim python=3.11
$ conda activate molsim
$ conda install -c conda-forge openmm[cuda] ambertools
$ pip install molecular-simulations

Installing from Source

To install the latest development version:

$ git clone https://github.com/msinclair-py/molecular-simulations.git
$ cd molecular-simulations
$ pip install -e .[dev]

Verifying Installation

You can verify your installation by importing the package:

import molecular_simulations
from molecular_simulations.build import ExplicitSolvent
from molecular_simulations.simulate import Simulator
from molecular_simulations.analysis import Fingerprinter

print("Installation successful!")

To verify OpenMM GPU support:

import openmm
print(openmm.Platform.getNumPlatforms())
for i in range(openmm.Platform.getNumPlatforms()):
    print(openmm.Platform.getPlatform(i).getName())

Known Issues

  • OpenMM versions 8.0-8.1 may exhibit slower integration times for larger systems due to a known bug. Consider using OpenMM ≥ 8.2 if available.

  • On some HPC systems, you may need to set OMP_NUM_THREADS=1 to avoid OpenBLAS threading conflicts for parallel MM-PBSA calculations.