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=1to avoid OpenBLAS threading conflicts for parallel MM-PBSA calculations.