WindowWise
Plan, check and repair umbrella-sampling simulations. Design windows from first principles, diagnose finished runs, and get the exact windows to add, with Gaussian-process active learning.
How is the design derived?
On a locally flat profile a harmonic window samples a Gaussian, and two neighbours a distance apart overlap by
A slope shifts every window by . Keeping that below half a spacing gives the force constant
Pull-code settings
Script: one .mdp per window from your template
Put pull-coord1-init = XINIT and pull-coord1-k = KVAL in umbrella_template.mdp; the script writes window_00.mdp … and the matching gmx grompp commands.
Find the holes before your reviewers do
Drop the pullx.xvg files of your umbrella windows. WindowWise reconstructs the free-energy profile with error bars, checks every window, and proposes exactly which windows to add. Or start with an example:
What am I looking at?
Blue: the potential of mean force from WHAM, with a ±1σ band from block-bootstrap resampling of each window. Orange dashed: the Gaussian-process (GP) profile built only from each window's mean force k(c − ⟨ξ⟩), with its 95% Bayesian band. Where the two agree, the result is robust. Where the GP band widens, the data are thin. Stars mark the windows that active learning would run next.
What am I looking at?
Each curve is one window's histogram, shaded light to dark along ξ. A healthy run tiles the coordinate with overlapping bumps. Gaps between bumps, or a bump sitting far from its restraint centre (dot), are what WHAM cannot fix.
What am I looking at?
The overlap between each pair of neighbouring windows (sum of the minimum of their normalised histograms). Pairs below the dashed threshold are coloured, and marked ! (warning) or ✕ (critical).
Ready-to-paste settings
Edit centres and force constants, then press Run analysis again.
Why WindowWise?
Umbrella sampling fails quietly. Windows that are too far apart, or springs too soft for a steep wall, leave holes in the free-energy profile that WHAM smooths over. Usually you only find out after the compute is spent. WindowWise brings design, post-mortem and repair into one place.
Python package and CLI: pip install git+https://github.com/siba-p/windowwise. Validated against an analytic Morse-type PMF: WHAM RMSE 0.19 kJ/mol; GP 0.18–0.86 kJ/mol with 41 to 11 windows.
Method
Bias (GROMACS pull code) and WHAM self-consistency
Errors: block bootstrap of each window, block length . Diagnostics: neighbour overlap, drift , and per window.
GP umbrella integration (ML): each window gives an exact estimate of its mean force
used as derivative observations of a Gaussian-process prior , with from the marginal likelihood. Active learning places the next window where the posterior variance of is largest.
- S. Kumar et al., J. Comput. Chem. 13, 1011 (1992) (WHAM).
- J. Kästner & W. Thiel, J. Chem. Phys. 123, 144104 (2005) (umbrella integration).
- T. Stecher, N. Bernstein & G. Csányi, J. Chem. Theory Comput. 10, 4079 (2014) (GP free energies).