Package: run-brer
run_brerThis project is hosted in a git repository athttps://github.com/kassonlab/run_brerProject documentation is available in the repository or athttps://kassonlab.github.io/run_brer/.Therun_brerPython package provides a set of scripts for running BRER simulations usinggmxapi.
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.9b01407InstallationRequirementsIf you're going to use a pip or a conda environment, you'll need:Python 3.Xgmxapi for GROMACS 2019 or newer.InstallGROMACS 2019 and gmxapi 0.0.7,
orInstallcurrent GROMACS and gmxapi >= 0.1Theplugin codefor BRER.Otherwise, you can just use a Singularity container!SingularityBy 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:latestFor instructions on using the container, please see thesingularity-brerrepository.Conda environmentI suggest running this in a conda environment rather thanpip install. The following conda command will handle all thegmxapiandsample_restraintpython dependencies, as well as the ones for this repository.conda create -n BRER numpy scipy networkx setuptools mpi4py cmakeIf you want to run the tests, then installpytestas well.Source the environment and thenpip install:source activate BRER
git clone https://github.com/kassonlab/run_brer.git
cd run_brer
pip install .Running BRERLaunching a single ensemble member.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 sysTheimport run_brer.run_configstatement imports aRunConfigobject, which handles the following thingsfor a single ensemble member:Initializing/setting up parameters for the BRER run.Launching the run.Then we provide some files and directory paths to theRunConfigobject.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 :atpr(compatible with GROMACS 2019).The path to our ensemble. This directory should contain subdirectories of the formmem_<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.jsonFinally, we launch the run!config.run()You may change various parameters before launching the run usingconfig.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.Launching an ensembleRight now, the way to launch an ensemble is to launch multiple jobs. We hope to soon use thegmxapifeaturesthat allow a user to launch many ensemble members in one job.