[−][src]Struct mbar_rs::MBar
Multistate Bennett acceptance ratio method (MBAR) for the analysis of multiple equilibrium samples.
Notes
Note that this method assumes the data are uncorrelated.
Correlated data must be subsampled to extract uncorrelated (effectively independent) samples.
References
[1] Shirts MR and Chodera JD. Statistically optimal analysis of samples from multiple equilibrium states. J. Chem. Phys. 129:124105, 2008 http://dx.doi.org/10.1063/1.2978177
Implementations
impl<const N_TOT: usize, const K: usize> MBar<N_TOT, K>
[src]
pub fn builder() -> MBarBuilder<N_TOT, K>
[src]
Get a new builder for the MBar
struct. MBar
can only be constructed via the builder.
pub fn compute_pmf(
&self,
u_n: [f64; N_TOT],
bin_n: [usize; N_TOT],
n_bins: usize,
uncertainties: PmfUncertainties
) -> Result<Pmf, Box<dyn Error>>
[src]
&self,
u_n: [f64; N_TOT],
bin_n: [usize; N_TOT],
n_bins: usize,
uncertainties: PmfUncertainties
) -> Result<Pmf, Box<dyn Error>>
Compute the free energy of occupying a number of bins.
This implementation computes the expectation of an indicator-function observable for each bin.
Parameters
u_n: [f64; N_TOT]
--- u_n[n]
is the reduced potential energy of snapshot n
of state k
`for which the PMF is to be computed.
bin_n: [usize; N_TOT]
--- bin_n[n]
is the bin index of snapshot n
of state k
.
bin_n
can assume a value in 0..n_bins
n_bins: usize
--- The number of bins
uncertainties: PmfUncertainties
--- Method for reporting uncertainties
Notes
- All bins must have some samples in them from at least one of the states – this will not
work if
bin_n.sum(0) == 0
. Empty bins should be removed before callingcompute_pmf()
. - This method works by computing the free energy of localizing the system to each bin for the given potential by aggregating the log weights for the given potential.
- To estimate uncertainties, the N×K weight matrix $W_nk$ is augmented to be N×(K+
n_bins
) in order to accomodate the normalized weights of states where the potential is given byu_kn
within each bin and infinite potential outside the bin. The uncertainties with respect to the bin of lowest free energy are then computed in the standard way.
Trait Implementations
Auto Trait Implementations
impl<const N_TOT: usize, const K: usize> !RefUnwindSafe for MBar<N_TOT, K>
impl<const N_TOT: usize, const K: usize> Send for MBar<N_TOT, K>
impl<const N_TOT: usize, const K: usize> Sync for MBar<N_TOT, K>
impl<const N_TOT: usize, const K: usize> Unpin for MBar<N_TOT, K>
impl<const N_TOT: usize, const K: usize> UnwindSafe for MBar<N_TOT, K>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,