MBAR

The MBAR estimator is a light wrapper around the reference implementation of MBAR from pymbar (pymbar.mbar.MBAR). As a generalization of BAR, it uses information from all sampled states to generate an estimate for the free energy difference between each state.

API Reference

class alchemlyb.estimators.MBAR(maximum_iterations=10000, relative_tolerance=1e-07, initial_f_k=None, method='hybr', verbose=False)

Multi-state Bennett acceptance ratio (MBAR).

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.
  • initial_f_k (np.ndarray, float, shape=(K), optional) – Set to the initial dimensionless free energies to use as a guess (default None, which sets all f_k = 0).
  • method (str, optional, default="hybr") – The optimization routine to use. This can be any of the methods available via scipy.optimize.minimize() or scipy.optimize.root().
  • verbose (bool, optional) – Set to True if verbose debug output is desired.
delta_f_

DataFrame – The estimated dimensionless free energy difference between each state.

d_delta_f_

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

theta_

DataFrame – The theta matrix.

states_

list – Lambda states for which free energy differences were obtained.

fit(u_nk)

Compute overlap matrix of reduced potentials using multi-state 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 (boolean, optional) – 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:mapping of string to any
set_params(**params)

Set the parameters of this estimator.

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

Returns:
Return type:self