SimStore: Support for OpenMM Snapshots¶
This module adds support for OpenMM snapshots in SimStore, the new storage subsystem used by OpenPathSampling.
Previous modules have provided the core of the SimStore storage interface for OPS, as well as integration for OPS simulations using either the internal toy engine or using the Gromacs engine. However, one of the most commonly used engines for OPS is OpenMM. Because OpenMM data carries explicit units, it requires special techniques for storing. Additionally, OpenMM snapshots in OPS are split such that the configurational components can be reused for multiple initial velocities, which also requires special treatment. This module adds those techniques, thus adding support for OpenMM simulations in the new SimStore storage subsystem in OPS. SimStore is faster than the current OPS storage, and is essential for the parallelization of OPS.
This module builds on OpenPathSampling, a Python package for path sampling simulations. To learn more about OpenPathSampling, you might be interested in reading:
- OPS documentation: http://openpathsampling.org
- OPS source code: http://github.com/openpathsampling/openpathsampling
Tests in OpenPathSampling use pytest.
This was included in the version 1.4 release of OpenPathSampling.
It can be installed via the
conda package manager with:
conda install -c conda-forge openpathsampling
In addition to previous OPS requirements, this module requires SQLAlchemy,
and other parts of the new storage require Dill.
These can be installed with, e.g.,
conda install -c conda-forge
The tests for this module are split between unit tests included in the OpenPathSampling repository and integration tests in a separate repository. The easiest way to run both sets of tests is to download or clone the integration test repository at https://github.com/dwhswenson/ops-storage-notebooks. Install the required testing software, e.g., with:
conda install -c conda-forge pytest pytest-cov nbval
Then just run the
test-storage.sh script in that repository. Note:
although the module will work with Python 3.6+, some of the notebook tests
are not compatible with more recent versions of Python, so the tests should
be run with Python 3.7.
This module has been merged into OpenPathSampling. It is composed of the following pull request: