Skip to main content

BoostMut

Powered by MDAnalysis

BoostMut is a python package to analyze high-throughput molecular dynamics simulations to investigate the effect of point mutations on stability. Full details and benchmarking can be found in the published paper. Since molecular dynamics simulations are costly, the simulations are expected to be short (50ps-1ns), using multiple (~5) runs to enhance sampling. Two of the analyses (the flexibility score of sidechains and hydrophobic surface exposure) require time and forcefield benchmarks against which the results are compared, but if these are ignored, BoostMut can be used with any ensemble of protein structures. The analysis and ranking produced by BoostMut is meant to serve as a secondary filter after an initial selection has been made using a primary stability predictor such a FoldX.

Setup

BoostMut is pip installable. To avoid conflicts with other packages, it is safest to do this within a virtual environment:

python -m venv boostmut-venv
source boostmut-venv/bin/activate
pip install BoostMut

BoostMut relies on the freesasa package to calculate solvent accessible surface. This package makes use of Cython to optimise calculations, which can cause problems in cases where C compilers are missing. After installing, BoostMut has a command line interface called boostmut_run for running calculations, and boostmut_process for processing the outputs. To get an overview of the available input flags, use:

boostmut_run -h
boostmut_process -h

Input

BoostMut has the following advanced settings

--inputdir        input directory containing subdirectories with trajectories for each mutation 
--output          name of the output .csv
--mutfile         file containing a list of mutations to analyze, if kept default, will analyze all mutations in input directory
--selection       reported selections per analysis
--time            length of the trajectory in picoseconds
--forcefield      forcefield with which the trajectory was run
--wtname          subdirectory for the wildtype
--mutname         regex the subdirectories for each mutation has to satisfy
--topname         regex each of the topology files has to satisfy 
--trajname        regex each of the trajectory files has to satify 
--bondsname       regex for seperate files with bondinfo if the topologies do not contain it 
--guessbonds      lets MDAnalysis guess bonds if topology is missing, making the calculations significantly slower (default: False)
--sasafile        name of custom file containing the benchmarks of residue sasa located in benchmarks. overrides time/forcefield 
--rmsffile        name of custom file containing the benchmarks for sidechain rmsf located in benchmarks. overrides time/forcefield 
--rangesur        range around the mutation used in the surrounding selection in Å (default: 8)
--rejecttraj      if set to True, rejects the trajectory with highest RMSD for each mutation (default: True)
--lastcheck       filename of the .csv from the last checkpoint from which to continue
--checkpoint      if set to True, saves the result after each mutation (default: True)

The input directory is set using --inputdir. BoostMut requires a directory with subdirectories for the wildtype and each of the mutations, each subdirectory in turn containing a set of trajectories and a topology. The input directory should have the following file structure:

input_directory
├── Subdir_D24K
├── ...
├── Subdir_T85V
└── Subdir_template
    ├── trajectory_1.xtc
    ├── ...
    ├── trajectory_5.xtc
    └── topology.tpr

By default BoostMut assumes Subdir_template as the directory name for the wildtype, Subdir_[mutation] as the directory name for each mutation, and the GROMACS specific .xtc and .tpr files for the trajectories and topologies, but since BoostMut relies on MDAnalysis for parsing trajectories, it can handle all trajectory and topology formats compatible with MDAnalsyis. The expected pattern for the directory names, topologies and trajectories can be set by providing a regex. If the topology does not include bond information (such as .pdb files), bonds can be inferred by adding the --guessbonds flag, although this can significantly slow down calculation. Bonds can also be provided separately in a .tab file set using the --bondsname flag. If the default settings are sufficient, BoostMut can be run using:

boostmut_run --inputdir input_directory

The provided example files are trajectories and topologies converted from an example FRESCO run, where the proprietary YASARA .sim files have been converted into .xtc files and a .pdb with bond information is used as a topology file. In this case, the default topology regex should be changed to accept .pdb files instead:

boostmut_run --inputdir input_directory --topname "^[\w\d].*\.pdb$"

Analyses

BoostMut can analyze hydrogen bonding, RMSF of backbone and sidechains, hydrophobic surface exposure, and other structural checks. This can be done on three selections: the whole protein, 8Å surrounding a given mutation, or just the residue of the mutation. The final output returns a .csv with for each analysis and mutation the difference between mutant and wildtype. The analyses and the selections for each analysis can be customized in the command line. For example, if you want the surrounding and residue selections for hydrogen bonding, but only the whole protein selection for the other analyses, this can be specified with the -s flag with the desired analysis and selection divided by a colon:

boostmut_run --inputdir input_directory --selection hbse:sr c:p 

where the analyses are specified using:

  • h : hydrogen bonding
  • b : RMSF of backbone
  • s : flexibility score of sidechains
  • e : hydrophobic surface exposure
  • c : other structural checks

and the selections are specified using:

  • p : whole protein selection
  • s : 8Å surrounding selection
  • r : residue selection

By default, BoostMut assumes each trajectory is 50ps long and simulated with an amber forcefield. The analyses for the sidechain score and hydrophobic exposure rely on benchmark data for specific simulation lengths. The other analyses do not use benchmarks and therefore work the same regardless of timestep or forcefield. Benchmarks for different forcefields (available options are amber99, yamber3, charm27, and opls) in 50ps intervals for simulations up to 1000ps long are provided, and can be selected by setting the --forcefield and --time The appropriate benchmark files can be selected by providing the simulation length in the commandline interface:

boostmut_run --inputdir input_directory_500ps --time 500 --fforcefield opls

Alternatively, custom benchmark files can be set using --sasafile For the expected hydrophobic exposure, and --rmsffile for the expected sidechain flexibilities per residue. For faster calculations (the main computational cost comes from re-aligning the structure for each side-chain when calculating the sidechain score) or simulations for which no forcefield benchmarks are available, the sidechain score and hydrophobic exposure can simply be left out of the analysis selection:

boostmut_run --inputdir input_directory --selection hb:sr c:p 

Processsing

After the calculations have finished, the output can be processed with one of the tools in boostmut_process if needed. If the calculation of the mutations has been split up into separate parallel runs, the output has to be combined and rescaled. Combining can be done using boostmut_process combine. Rescaling the newly combined output file, or adding additional metrics can be done using boostmut_process scale. To obtain an easy human-readable excel version of the data, use boostmut_process excel.

BoostMut tends to perform best if the primary predictors is included as an additional metric into the total ranking. For FRESCO, this means including the FoldX score. This requires the FoldX scores in a .csv format. The unscaled energies should be added to the unscaled BoostMut scores using:

boostmut_process combine  -i BoostMut_out.csv -m MutationsEnergies_CompleteList_FoldX.csv -n foldx_ddg -o BoostMut_combined.csv

Which takes the column -n foldx_ddg from the file -m MutationsEnergies_CompleteList_FoldX.csv, matches the right rows with the mutations in -i BoostMut_out.csv, and saves the result as a new .csv. This file can then be rescaled using:

boostmut_process scale -i BoostMut_combined.csv -n foldx_ddg -s -1 -o BoostMut_combined_scaled.csv

Which rescales all the BoostMut columns, and rescales any added metric specified using -n foldx_ddg by scaling factor -s -1. FoldX reports stabilizing mutations as negative ΔΔG scores, so the -1 guarantees stabilizing mutations result in high scaled scores. How a metric needs to be scaled depends on how the primary predictor reports its output.

Metadata

Release files for BoostMut 1.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for BoostMut 1.0.9
File Size Uploaded
boostmut-1.0.9.tar.gz 2.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for BoostMut 1.0.9
File Interpreter ABI Platform
boostmut-1.0.9-py3-none-any.whl Python 3 none any Details

Total release size: 4.9 MB

Release files / boostmut-1.0.9.tar.gz

Download URL boostmut-1.0.9.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
fe4df6428b99bbf1616eb9851c2184c25f1c6628117afd585bd06feed73da565
BLAKE2b-256 checksum
How to use checksums
fd2f34ce12571f5d5d721c520b509c2610fe4f0bf0d7a36da73196e5a550910f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.7

Release files / boostmut-1.0.9-py3-none-any.whl

Download URL boostmut-1.0.9-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
cb81c567f817fed49ccd1b56943a3c7d133835a5a8f07117d10addf28a6d4e5c
BLAKE2b-256 checksum
How to use checksums
4997b071b241746e65f2fb79b69d779f996747c6edccb253604992ea2423e571
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.7

Release history Release notifications | RSS feed

This release

1.0.9 This release

2 release files

1.0.8

2 release files

1.0.4

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page