The Bennett Acceptance Ratio (BAR) is one of the earliest free energy methods which draws on data from multiple states to estimate the free energy difference; This method has significantly improved results over EXP. Both EXP and TI require the ensemble average from a single state to estimate free energies. Although TI needs the derivatives at state [math]k[/math], it does not require the configurations from any neighboring state; BAR however, requires configuration information from two states to estimate free energy differences.

BAR works under the principal that at the same configuration, [math]\vec{q}[/math], at two separate states, [math]i[/math] and [math]j[/math], there is a pathway connecting the two potentials and a difference of [math]\Delta U_{ij}(\vec{q})[/math]. Because the states are in the same configuration, there is a exact relationship between the distributions of potential energy differences [math]\Delta U_{ij}(\vec{q})[/math] of states sampled from [math]i[/math] and [math]\Delta U_{ji}(\vec{q})[/math] the distribution of potential energy differences sampled from the state [math]j[/math].[1]. Since it's an exact function of distributions, statistics can be applied to find the optimal way to use the information between two states, improving the free energy estimate. This is where Bennett started his derivation and, since he was the first to derive this, the method was named after him.[2]

which is true for any [math]\alpha(\vec{q})\gt0[/math] for all [math]\vec{q}[/math]. This was Bennett's start point and he then used variational calculus to select the value pf [math]\alpha(\vec{q})[/math] minimizing the variance of the free energy. The end result is an implicit function of the free energy, and the number of samples at each state, [math]n_i[/math] and [math]n_j[/math], and is

which must be solved numerically. This is the full BAR equation and its full derivation can be found in Bennett's paper.[2] To get the equation above from Bennett's paper, you will have to take the exponential of both sides of his self-consistent Equation 12, then a bit of algebra to get the end result. This equation can also be derived from a maximum likelihood approach.[3] There are a number of other equivalent ways to express this implicit equation.

Comparison with Other Methods

BAR has been shown to be superior to EXP in every way (save maybe simplicity). BAR is not only better from a practical and theoretical aspect,[4][5] and it is shown to converge to EXP in assuming all samples come from one state.[2][3] Even so, less phase overlap is needed to run BAR effectively.

Comparing TI and BAR is not such a simple thing since each approach requires very different information. Based on experience, BAR will do better than TI on average, although more details are needed to make a better comparison. One such detail is that BAR can give in fewer intermediate states the same statistical precision as TI. However, if the integrand is very smooth for TI, it will perform at the same level as BAR (examples of this are changes, not removing, non- and bonded parameters).[3][6] One advantage that could be attributed to BAR over TI is that you do not need to calculate [math]\frac{dU}{d\lambda}
[/math] and so you do not have to modify your code to do so.

Estimating Accurate Free Energies with BAR

BAR has a very straightforward method to calculate the free energy difference between two states. It still suffers from the same general problems as the other methods do with regards to variance along the pathway, what parameters are changing, sequence of change etc. and must still be treated with care. BAR can estimate free energies between many states, however, it must do this a pair at a time. As such, BAR requires information collected from [math]k-1[/math], [math]k[/math], and [math]k+1[/math] state for each configuration stored.

BAR require an iterative solution but all the samples will be correlated since results are taken from adjacent states. Unlike in TI, however, the results are not so clean to get an error estimate. More indirect methods, such as Bootstrap Sampling are required to get variances. Furthermore, subsampling is needed since each state can have different correlation times.

Download BAR

Although you could write your own BAR code for analysis, there is a free, python-based code available for download at https://simtk.org/home/pymbar. Although this site is mostly for MBAR, there is a BAR implementation bundled with it along with examples.