Tutorials & Examples


This page contains a series of tutorials & examples broken up into sections to help you get started with biceps. Within each subsection, you will find a tutorial with a description.
To execute these notebooks interactively, the biceps GitHub repository must be cloned. Navigate to biceps/docs/examples to find this current directory. Start a Jupyter Notebook server and open the notebook:

$ jupyter notebook

Please note that the tutorials found in both sections the workflow & additional tools use Cineromycin B as the test system. See full examples for the notebook that puts it all together.

The workflow

Preparation

Prepare input files using the biceps.Restraint.Preparation class. Here, the raw model & experimental data is organized inside a Pandas DataFrame. This class requires experimental data as well as correspondingly precomputed experimental observables from simulation. We recommend users to use MDTraj to compute all necessary experimental quantities from simulation or use our prepared functions in biceps.toolbox.

Ensemble

Construct a container to store state and restraint information using the biceps.Ensemble class. An ensemble will need to be instantiated for each lambda value, each with different scaled energies. Using this class, we can call on the method biceps.Ensemble.initialize_restraints to fill the container with biceps.Restraint objects for each conformational state by passing the input data and/or optional parameters.

PosteriorSampler

For a given ensemble, the posterior distribution can be sampled by Markov Chain Monte Carlo (MCMC) using the biceps.PosteriorSampler class. MCMC sampling is performed using the Metroplis-Hastings criterion.

Analysis

Predict populations of conformational states and compute the BICePs score using the biceps.Analysis class.
The analysis is comprised of two parts:
1. Using the MBAR algorithm to compute populations and BICePs scores.
2. Plot and save figures that show population and sampled nuisance parameters.

Additional tools

Convergence

The convergence of our PosteriorSampler MCMC trajectories can be checked using the biceps.Convergence class.

Multiprocessing Lambda Values

Run the typical biceps workflow in a fraction of the time by parallelizing lambda values with the @biceps.multiprocess(iterable=lambda_values) decorator.

Toolbox

A collection of methods considered to be useful outside of the typical workflow.

Full examples

Cineromycin B

Determine the solution-state conformational populations of a 14-membered macrolide antibiotic. This example contains the use of experimental scalar coupling constant alongside NOE data and is based on a previously published work by Voelz et al (DOI: 10.1002/jcc.23738).

Albocycline

Compute conforamtional populations of a 14-membered macrolactone. Multiprocess lambda values and sample the posterior distribution for each simultaneously. This example is based on a previously published work by Zhou et al (DOI: 10.1016/j.bmc.2018.05.017).

Apomyoglobin

An example using experimental HDX protetion factors and chemical shift data after obtaining the forward model. This example is base on a previously published work by Wan et al (DOI: 10.1021/acs.jctc.9b01240). Posterior sampling of ln PF forward model parameters were calculated for ubiquitin and BPTI experimental HDX protection factors (ln PF) data for ubiquitin and BPTI. More information regarding the forward model can be found here.

You are welcome to contribute your own examples and please let us know by simply submit a pull request on our Github!