/PySAGES

Python Suite for Advanced General Ensemble Simulations

Primary LanguagePythonOtherNOASSERTION


Documentation   GitHub Actions   GitHub Actions   Trunk

PySAGES (Python Suite for Advanced General Ensemble Simulations) is a Python implementation of SSAGES with support for GPUs.

NOTICE: This is in early stages of development. Expect breaking changes.

Installation

Currently, there is only support for HOOMD-blue and OpenMM, but gradual support for other molecular dynamics engines is planned (for instance, for all engines already supported by the original SSAGES).

You first need to install one of the following plugins depending on your molecular dynamics engine:

PySAGES also depends on JAX, follow their installation guide to set it up. NOTE: make sure you have jaxlib installed before using PySAGES. Depending on your local setup, you will have to install the jaxlib CPU version or the CUDA compatible flavor.

To test GPU support HOOMD-blue, HOOMD-dlext and JAX need to be built or installed with CUDA support.

Our installation tutorial on Google Colab enable you to see how PySAGES, HOOMD-blue and OpenMM can be built and installed into such environment. Install Env

Usage

PySAGES provide a straightforward interface to setup Collective Variables and Enhanced Sampling methods in your MD simulations. See the documentation to learn more.

We provide ready-to-go examples for common methods. Checkout out the examples subfolder to look at different script and notebook examples. These include pre-set simulations and a tutorial on how to install PySAGES along with the supported MD engines.

Development

We believe in good software engineering and collaboration. As an open-source software we welcome all contributions. To ease collaboration we use trunk as a development tool free for open-source software. This includes version-checked linters that can be run automatically. We ship a launcher for trunk with this repo ./trunk, no installation required. For details about how to use ./trunk fmt to format existing code into this style and ./trunk check to verify a consistent code style, check out the trunk documentation page.