4 个版本 (2 个破坏性更新)
0.3.0 | 2020年10月25日 |
---|---|
0.2.0 | 2020年10月22日 |
0.1.1 | 2020年10月22日 |
0.1.0 | 2020年10月21日 |
#1518 in 数学
48KB
646 行
mbar-rs
mbar-rs 是 pymbar 的安全且 Rust 风格的绑定。感谢 Kyle A. Beauchamp、John D. Chodera、Levi N. Naden 和 Michael R. Shirts 对底层 Python 库的工作,此库必须存在于您的机器上才能正常工作。我还毫无顾忌地借鉴了他们的文档。
示例
use mbar_rs::*;
fn main() {
// Construct the MBar struct
let mbar = MBar::builder()
// The potential energies of each snapshot, evaluated at all states
.u_kn(array![
[1.4, 2.3, 3.7, 4.1, 7.7, 9.1],
[-1.6, -2.3, 9.7, 34.1, 27.7, 19.1],
[4.4, 7.3, 9.7, 8.1, 4.7, 3.1],
])
// The number of snapshots from each state
.n_k(array![2, 2, 2])
.build()
.unwrap();
// And then compute a PMF
let pmf = mbar
.compute_pmf(
// The potential energies at the target state
&[1.4, 2.3, 3.7, 4.1, 7.7, 9.1],
// The bins of each snapshot
&[0, 1, 2, 0, 2, 1],
// The number of bins
3,
// How to compute the uncertainties
PmfUncertainties::FromLowest,
)
// If there's a Python error, display it nicely
// This shouldn't happen, as the Rust API should catch everything (mostly at compile time!)
.map_err(|e| e.print())
.unwrap();
// Print out the pmf!
println!("{:?}", pmf)
}
参考文献
- 请引用原始 MBAR 论文
[1] Shirts MR and Chodera JD. Statistically optimal analysis of samples from multiple equilibrium states. J. Chem. Phys. 129:124105 (2008). DOI
- 以下参考文献中可以找到一些时序算法
[2] Chodera JD, Swope WC, Pitera JW, Seok C, and Dill KA. Use of the weighted histogram analysis method for the analysis of simulated and parallel tempering simulations. J. Chem. Theor. Comput. 3(1):26-41 (2007). DOI
pymbar.timeseries.detectEquilibration()
中提供的自动平衡检测方法在此处描述
[3] Chodera JD. A simple method for automated equilibration detection in molecular simulations. J. Chem. Theor. Comput. 12:1799, 2016. DOI
依赖项
~5.5MB
~105K SLoC