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.
See also
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
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
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_metadata_routing()¶
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:
routing – A
MetadataRequest
encapsulating routing information.- Return type:
MetadataRequest
- get_params(deep=True)¶
Get parameters for this estimator.
- set_fit_request(*, u_nk: bool | None | str = '$UNCHANGED$') BAR ¶
Request metadata passed to the
fit
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config()
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed tofit
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it tofit
.None
: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str
: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED
) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
Note
This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a
Pipeline
. Otherwise it has no effect.
- 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