• Stars
    star
    111
  • Rank 312,708 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created over 9 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open tool implementing some recommended practices for analyzing alchemical free energy calculations

Alchemical Analysis: An open tool implementing some recommended practices for analyzing alchemical free energy calculations

Use Alchemlyb instead

We are in the process of migrating all functionality from here to instead use alchemlyb, which focuses on being a general Python library for performing analysis of alchemical calculations rather than a stand-alone command-line tool for analyzing these calculations. We recommend you move to using, and contribute to the development of, alchemlyb instead. It already has the following advantages, among others:

  • Python 3 compatible
  • Works as a library rather than a stand-alone tool, allowing easier connection with trajectory analysis
  • Has automated testing/continuous integration testing
  • Easily extensible

However, some of the plotting functionality and analysis features available in alchemical analysis are not yet available in alchemlyb. If there is functionality which is particularly important to you which is missing there, please raise an issue on the alchemlyb issue tracker.

In the meantime, Alchemical Analysis is still available but deprecated and we discourage its use. Please use alchemlyb instead. We may occasionally perform minor/critical maintenance here, but intend to cease maintaining this package over time.

About Alchemical Analysis

Analyze alchemical free energy calculations conducted in GROMACS, AMBER or SIRE using recommended best practices from Klimovich et al., JCAMD 29:397-411 (2015).

This tool handles analysis via a slate of free energy methods, including BAR, MBAR, TI, and the Zwanzig relationship (exponential averaging) among others, and provides a good deal of analysis of computed free energies and convergence in order to help you assess the quality of your results.

If you have problems with this tool, please use the github issue tracker.

Citation DOI for Citing Alchemical Analysis

Alchemical Analysis is research software. If you make use of it in work which you publish, please cite it. The BibTex reference is

@article{Klimovich:2015er,
author = {Klimovich, Pavel V and Shirts, Michael R and Mobley, David L},
title = {Guidelines for the analysis of free energy calculations},
journal = {J Comput Aided Mol Des},
year = {2015},
volume = {29},
number = {5},
pages = {397--411},
doi = {10.1007/s10822-015-9840-9}
}

Prerequisites

Alchemical Analysis requires the pymbar module (we recommend installation via conda, but other options are also available). Version 3.0.0.dev0 or above is required. The latest version of pymbar can be found here.

Python 2 is required.

Installation

git clone https://github.com/MobleyLab/alchemical-analysis.git
cd alchemical-analysis
sudo python setup.py install

Usage

Script: alchemical_analysis

This implements recommended practices for analyzing alchemical free energy calculations, as described in Klimovich et al., JCAMD 29:397-411 (2015). This was motivated in part by earlier work illustrating how to apply MBAR to alchemical free energy calculations (and a comparison with other methods) in Paliwal and Shirts, J. Chem. Theory Comp, v. 7, 4115-4134 (2011).

See description in samples/gromacs/README.md, samples/sire/README.md, and samples/amber/README.md.

Help for alchemical_analysis.py (obtained with alchemical_analysis -h) is:

  -h, --help            show this help message and exit
  -a SOFTWARE, --software=SOFTWARE
                        Package's name the data files come from: Gromacs,
                        Sire, Desmond, or AMBER. Default: Gromacs.
  -b FRACTION, --fraction=FRACTION
                        The fraction of the energy file will be used to
                        calculate the statistics. Default: 1.0
  -c, --cfm             The Curve-Fitting-Method-based consistency inspector.
                        Default: False.
  -d DATAFILE_DIRECTORY, --dir=DATAFILE_DIRECTORY
                        Directory in which data files are stored. Default:
                        Current directory.
  -e, --backward        Extract the energy data from the backward direction.
                        Default: False
  -f BFORWREV, --forwrev=BFORWREV
                        Plot the free energy change as a function of time in
                        both directions, with the specified number of points
                        in the time plot. The number of time points (an
                        integer) must be provided. Default: 0
  -g, --breakdown       Plot the free energy differences evaluated for each
                        pair of adjacent states for all methods, including the
                        dH/dlambda curve for TI. Default: False.
  -i UNCORR_THRESHOLD, --threshold=UNCORR_THRESHOLD
                        Proceed with correlated samples if the number of
                        uncorrelated samples is found to be less than this
                        number. If 0 is given, the time series analysis will
                        not be performed at all. Default: 50.
  -j RESULTFILENAME, --resultfilename=RESULTFILENAME
                        custom defined result filename prefix. Default:
                        results
  -k BSKIPLAMBDAINDEX, --koff=BSKIPLAMBDAINDEX
                        Give a string of lambda indices separated by '-' and
                        they will be removed from the analysis. (Another
                        approach is to have only the files of interest present
                        in the directory). Default: None.
  -m METHODS, --methods=METHODS
                        A list of the methods to esitimate the free energy
                        with. Default: [TI, TI-CUBIC, DEXP, IEXP, BAR, MBAR].
                        To add/remove methods to the above list provide a
                        string formed of the method strings preceded with +/-.
                        For example, '-ti_cubic+gdel' will turn methods into
                        [TI, DEXP, IEXP, BAR, MBAR, GDEL]. 'ti_cubic+gdel', on
                        the other hand, will call [TI-CUBIC, GDEL]. 'all'
                        calls the full list of supported methods [TI, TI-
                        CUBIC, DEXP, IEXP, GINS, GDEL, BAR, UBAR, RBAR, MBAR].
  -n UNCORR, --uncorr=UNCORR
                        The observable to be used for the autocorrelation
                        analysis; either 'dhdl_all' (obtained as a sum over
                        all energy components) or 'dhdl' (obtained as a sum
                        over those energy components that are changing;
                        default) or 'dE'. In the latter case the energy
                        differences dE_{i,i+1} (dE_{i,i-1} for the last
                        lambda) are used.
  -o OUTPUT_DIRECTORY, --out=OUTPUT_DIRECTORY
                        Directory in which the output files produced by this
                        script will be stored. Default: Same as
                        datafile_directory.
  -p PREFIX, --prefix=PREFIX
                        Prefix for datafile sets, i.e.'dhdl' (default).
  -q SUFFIX, --suffix=SUFFIX
                        Suffix for datafile sets, i.e. 'xvg' (default).
  -r DECIMAL, --decimal=DECIMAL
                        The number of decimal places the free energies are to
                        be reported with. No worries, this is for the text
                        output only; the full-precision data will be stored in
                        'results.pickle'. Default: 3.
  -s EQUILTIME, --skiptime=EQUILTIME
                        Discard data prior to this specified time as
                        'equilibration' data. Units picoseconds. Default: 0
                        ps.
  -t TEMPERATURE, --temperature=TEMPERATURE
                        Temperature in K. Default: 298 K.
  -u UNITS, --units=UNITS
                        Units to report energies: 'kJ', 'kcal', and 'kBT'.
                        Default: 'kJ'
  -v, --verbose         Verbose option. Default: False.
  -w, --overlap         Print out and plot the overlap matrix. Default: False.
  -x, --ignoreWL        Do not check whether the WL weights are equilibrated.
                        No log file needed as an accompanying input.
  -y RELATIVE_TOLERANCE, --tolerance=RELATIVE_TOLERANCE
                        Convergence criterion for the energy estimates with
                        BAR and MBAR. Default: 1e-10.
  -z INIT_WITH, --initialize=INIT_WITH
                        The initial MBAR free energy guess; either 'BAR' or
                        'zeros'. Default: 'BAR'.

License

MIT.

More Repositories

1

drug-computing

Educational materials for, and related to, UC Irvine's Drug Discovery Computing Techniques course (PharmSci 175/275), currently taught by David Mobley.
Jupyter Notebook
142
star
2

basic_simulation_training

A document for the Living Journal of Computational Molecular Science (LiveCoMS) which describes basic training for molecular simulations (oriented towards molecular dynamics (MD)), providing some training itself and linking out to other helpful information elsewhere. The intent is that this provide information on the prerequisites which will be required for understanding/following many of the other "best practices" documents being prepared.
TeX
105
star
3

FreeSolv

Experimental and calculated small molecule hydration free energies
Python
98
star
4

benchmarksets

Benchmark sets for binding free energy calculations: Perpetual review paper, discussion, datasets, and standards
TeX
39
star
5

Lomap

Alchemical mutation scoring map
Python
36
star
6

Training

Lab policies, training, style guides, etc.
35
star
7

blues

Applications of nonequilibrium candidate Monte Carlo (NCMC) to ligand binding mode sampling
Python
33
star
8

SolvationToolkit

In-house tools for setting up arbitrary solute-solvent mixtures for simulation in GROMACS, Amber, OpenMM or other codes
Python
31
star
9

GuthrieSolv

Experimental small molecule hydration free energy dataset
Python
30
star
10

SeparatedTopologies

Exploratory work on free energy calculations with GROMACS using "separated topologies" approach (Rocklin et al., 2013).
Python
22
star
11

chemper

Repository for Chemical Perception Sampling Tools
Python
19
star
12

HiMap

High Information Mapper (HiMap), successor of the Lead Optimization Mapper (LOMAP)
Python
16
star
13

alchemical-setup

Python
15
star
14

benchmarkff

Compare optimized geometries and energies from various force fields with respect to a QM reference.
Python
13
star
15

DEL_analysis

Code to analyze the data from DNA-encoded libraries (DELs)
Jupyter Notebook
9
star
16

off-ffcompare

Compare molecular structures after energy minimization in various force fields.
Jupyter Notebook
8
star
17

D3R-2018-AutoDock-MMGBSA

binding affinity ranking using MM-GBSA and AutoDock score in D3R 2018
Shell
4
star
18

mobleylab.org

Lab website
SCSS
4
star
19

quanformer

quanformer: quantum mechanical analysis of molecular conformers
Python
3
star
20

SMIRNOFF_paper_code

Code/tools relating to the initial SMIRNOFF format paper
Jupyter Notebook
3
star
21

qm-theory-benchmark

Jupyter Notebook
3
star
22

openff-spellbook

Handy functionality for working with OpenFF data
Python
3
star
23

wbointerpolation

Analysis scripts for the development of wiberg bond order interpolated parameters in the Open Force Field.
Jupyter Notebook
3
star
24

thermoML_data

Jupyter Notebook
2
star
25

blues-water-hopping-paper

Contains files for blues-water-hopping paper
Python
2
star
26

off_nitrogens

Exploring the planar or pyramidal nature of conjugated nitrogens
Python
2
star
27

lysozyme_binding

Aggregator of binding data of small molecules to model binding sites in T4 lysozyme mutants, as popularized by Matthews, Shoichet and others.
Python
2
star
28

orphans

Orphaned tools/scripts that might be useful but don't currently have a good home
Python
2
star
29

slow-rotations

Python
2
star
30

DEL_BB_design

Computational enumeration of DNA-encoded libraries with various building block filtering and selection strategies
Jupyter Notebook
2
star
31

fitting-exp

Python
1
star
32

gmx_fileprep

Scripts for local gromacs input file preparation
1
star
33

gromacs-binding-scripts

Scripts relating to setup of binding studies for the GROMACS simulation package
1
star
34

yank-restraints

Benchmarking project testing different restraints schemes for free energy calculations with Yank
1
star
35

PME-RF-benchmark

Supporting information for a paper benchmarking PME vs RF performance for relative free energies
1
star
36

waterNES

Workflows to calculate relative free energies using non-equilibrium switching for buried water molecules
Python
1
star
37

Hydroxynator

Adjusts topology files with GAFF to have GAFF-DC charges
Python
1
star
38

buried-water-electrostatics

We examined the electrostatic potential at the locations of buried waters within proteins to see if this exhibited any asymmetric behavior (previous work we had done suggested perhaps it might) and found none. Here's the code to reproduce.
Python
1
star