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.
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:
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 :
tpr
(compatible with GROMACS 2019).mem_<my ensemble number>
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.