/mdcraft

A Python assistant for performing and analyzing molecular dynamics simulations of soft matter systems

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

MDCraft

continuous-integration Documentation Status

MDCraft is a toolkit of analysis modules and helper functions for molecular dynamics (MD) simulations.

Features

  • algorithm: Efficient Numba, NumPy, and SciPy algorithms for data wrangling and evaluating structural and dynamical properties.
  • analysis: Serial and parallel data analysis tools built on top of the MDAnalysis framework.
  • fit: Two-dimensional curve fitting models for use with SciPy.
  • lammps: Helper functions for setting up LAMMPS simulations.
  • openmm: Extensions to the high-performance OpenMM toolkit, such as custom bond/pair potentials, support for NetCDF trajectories, and much more.
  • plot: Settings and additional functionality for Matplotlib figures.

Benchmarks

The novel forcefield provided by MDCraft, Gaussian Core Model with smeared electrostatics (GCMe), provides multiple benefits discussed in more detail within our recent publication. Of note is the computational speed-up obtained from GCMe, especially when used in OpenMM:

benchmarks

The codes used to generate these benchmarks are provided in the associated repository.

Getting started

Prerequisites

If you use pip to manage your Python packages and plan on using the OpenMM simulation toolkit, you must compile and install OpenMM manually since OpenMM is not available in PyPI. See the "Compiling OpenMM from Source Code" section of the OpenMM User Guide for more information.

If you use Conda, it is recommended that you use the conda-forge channel to install dependencies. To make conda-forge the default channel, use

conda config --add channels conda-forge

Installation

MDCraft requires Python 3.9 or later.

For the most up-to-date version of MDCraft, clone the repository and install the package using pip:

git clone https://github.com/bbye98/mdcraft.git
cd mdcraft
python3 -m pip install -e .

Alternatively, MDCraft is available on Conda:

conda install bbye98::mdcraft

and PyPI:

python3 -m pip install mdcraft

Postrequisites

To use the method of image charges (mdcraft.openmm.system.add_image_charges()) in your OpenMM simulations, you must compile and install constvplugin or openmm-ic-plugin.

Tests

After installing, to run the MDCraft tests locally, use pytest:

pip install pytest
cd mdcraft
pytest