BAR

The BAR estimator is a light wrapper around the implementation of the Bennett Acceptance Ratio (BAR) method [Bennett1976] from pymbar (pymbar.mbar.BAR). It uses information from neighboring sampled states to generate an estimate for the free energy difference between these state.

API Reference

class alchemlyb.estimators.BAR(maximum_iterations=10000, relative_tolerance=1e-07, method='false-position', verbose=False)

Bennett acceptance ratio (BAR).

Parameters
  • maximum_iterations (int, optional) – Set to limit the maximum number of iterations performed.

  • relative_tolerance (float, optional) – Set to determine the relative tolerance convergence criteria.

  • method (str, optional, default='false-position') – choice of method to solve BAR nonlinear equations, one of ‘self-consistent-iteration’ or ‘false-position’ (default: ‘false-position’)

  • verbose (bool, optional) – Set to True if verbose debug output is desired.

delta_f_

The estimated dimensionless free energy difference between each state.

Type

DataFrame

d_delta_f_

The estimated statistical uncertainty (one standard deviation) in dimensionless free energy differences.

Type

DataFrame

states_

Lambda states for which free energy differences were obtained.

Type

list

Notes

See [Bennett1976] for details of the derivation and cite the paper (together with [Shirts2008] for the Python implementation in pymbar) when using BAR in published work.

When possible, use MBAR instead of BAR as it makes better use of the available data.

See also

MBAR

Changed in version 1.0.0: delta_f_, d_delta_f_, states_ are view of the original object.

fit(u_nk)

Compute overlap matrix of reduced potentials using Bennett acceptance ratio.

Parameters

u_nk (DataFrame) – u_nk[n,k] is the reduced potential energy of uncorrelated configuration n evaluated at state k.

get_params(deep=True)

Get parameters for this estimator.

Parameters

deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns

params – Parameter names mapped to their values.

Return type

dict

set_params(**params)

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as Pipeline). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters

**params (dict) – Estimator parameters.

Returns

self – Estimator instance.

Return type

estimator instance