Skip to content
/ wepy Public
forked from ADicksonLab/wepy

Weighted Ensemble simulation framework in Python (Mirror of main private development repo. After the main release the development of the project will become public. See the release-features branch for the cutting edge)

License

Notifications You must be signed in to change notification settings

leelasdSI/wepy

 
 

Repository files navigation

Weighted Ensemble Python (wepy)

Modular implementation and framework for running weighted ensemble simulations in pure python, where the aim is to have simple things simple and complicated things possible. The latter being the priority.

The goal of the architecture is that it should be highly modular to allow extension, but provide a “killer app” for most uses that just works, no questions asked.

Comes equipped with support for OpenMM molecular dynamics, parallelization using multiprocessing, the WExplore and REVO (Resampling Ensembles by Variance Optimization) resampling algorithms, and an HDF5 file format and library for storing and querying your WE datasets that can be used from the command line.

The deeper architecture of wepy is intended to be loosely coupled, so that unforeseen use cases can be accomodated, but tightly integrated for the most common of use cases, i.e. molecular dynamics.

This allows freedom for fast development of new methods.

Community

Discussion takes place on riot.im (#wepy:matrix.org) which is a slack-like app that works on the Matrix protocol: https://riot.im/app/#/room/#wepy:matrix.org

You can also contact me directly:

samuel.lotz@salotz.info

Installation

We are on pip now:

pip install wepy

Which will install most dependencies, except for OpenMM (which you potentially might not even need). To install it you can just use the omnia anaconda repository for the version you want.

conda install -c omnia openmm

You can always install from git as well for the latest:

git clone https://github.com/ADicksonLab/wepy
cd wepy
pip install -e .

If installation went alright you should have this command line interface for working with orchestration available:

wepy --help

Getting Started

Until there is proper documentation there are a few examples here (https://github.com/ADicksonLab/wepy/tree/master/examples).

There is an example with a pair of Lennard-Jones particles that runs on the reference implementation. This is the “Hello World” example and should be your starting point.

A more advanced (and interesting) example is a non-equilibrium unbinding WExplore simulation of the soluble epoxide hydrolase (sEH) protein with the inhibitor TPPU, which was the subject of this paper:

Lotz and Dickson. 2018. JACS 140 (2) pp. 618-628 (DOI: 10.1021/jacs.7b08572)

Developing

Building Docs

Install these packages:

pip install ipython sphinx guzzle_sphinx_theme sphinxcontrib-napoleon nbsphinx

Install pandoc for converting org-mode files to rst (optional).

You can follow the instructions on the site or just use anaconda:

conda install pandoc

Then run the build script. This uses the make file and additionally runs api-doc, and converts org-mode source files to rst using pandoc.

cd sphinx
chmod u+x build.sh
./build.sh

This will build the HTML files in the ‘sphinx/_build/html’ directory and if you point your web browser there you can view them.

Deploying

To run the current deployments of the docs run the deploy script:

chmod u+x deploy.sh
./deploy.sh

About

Weighted Ensemble simulation framework in Python (Mirror of main private development repo. After the main release the development of the project will become public. See the release-features branch for the cutting edge)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 72.2%
  • Jupyter Notebook 27.6%
  • Other 0.2%