This project is hosted in a git repository at https://github.com/kassonlab/run_brer
Project documentation is available in the repository or at https://kassonlab.github.io/run_brer/.
The run_brer
Python package provides a set of scripts for running BRER simulations using gmxapi.
Details of this method may be found in:
Hays, J. M., Cafiso, D. S., & Kasson, P. M. Hybrid Refinement of Heterogeneous Conformational Ensembles using Spectroscopic Data. The Journal of Physical Chemistry Letters. DOI: 10.1021/acs.jpclett.9b01407
If you're going to use a pip or a conda environment, you'll need:
-
Python 3.X
-
gmxapi for GROMACS 2019 or newer.
- Install GROMACS 2019 and gmxapi 0.0.7, or
- Install current GROMACS and gmxapi >= 0.1
-
The plugin code for BRER.
Otherwise, you can just use a Singularity container!
By far the easiest option!
If you have the latest and greatest Singuarity (v > 3), you can pull the container from the cloud repository:
singularity pull library://kassonlab/default/brer:latest
For instructions on using the container, please see the singularity-brer repository.
I suggest running this in a conda environment rather than pip install
. The following conda command will handle all the gmxapi
and sample_restraint
python dependencies, as well as the ones for this repository.
-
conda create -n BRER numpy scipy networkx setuptools mpi4py cmake
If you want to run the tests, then install
pytest
as well. -
Source the environment and then
pip install
:
source activate BRER
git clone https://github.com/kassonlab/run_brer.git
cd run_brer
pip install .
An example script, run.py
, is provided for ensemble simulations.
Let's work through it piece by piece.
#!/usr/bin/env python
"""
Example run script
for BRER simulations
"""
import run_brer.run_config as rc
import sys
The import run_brer.run_config
statement imports a RunConfig
object, which handles the following things for a single ensemble member:
- Initializing/setting up parameters for the BRER run.
- Launching the run.
Then we provide some files and directory paths to the RunConfig
object.
init = {
'tpr': '/home/jennifer/Git/run_brer/tests/syx.tpr',
'ensemble_dir': '/home/jennifer/test-brer',
'ensemble_num': 5,
'pairs_json': '/home/jennifer/Git/run_brer/tests/pair_data.json'
}
config = rc.RunConfig(**init)
In order to run a BRER simulation, we need to provide :
- a
tpr
(compatible with GROMACS 2019). - The path to our ensemble. This directory should contain subdirectories of the form
mem_<my ensemble number>
- The ensemble number. This is an integer used to identify which ensemble member we are running and thus, the subdirectory in which we will be running our simulations.
- The path to the DEER metadata. Please see the example json in this repository:
run_brer/data/pair_data.json
Finally, we launch the run!
config.run()
You may change various parameters before launching the run using config.set(**kwargs)
. For example:
config = rc.RunConfig(**init)
config.set(A=100)
config.run()
resets the energy constant A to 100 kcal/mol/nm^2 before launching a run.
Right now, the way to launch an ensemble is to launch multiple jobs. We hope to soon use the gmxapi
features that allow a user to launch many ensemble members in one job.