Converge
Is your simulation converged, and are your error bars honest? Find where equilibration ends, measure correlation, and get error bars that hold up.
Check a simulation in seconds
Drop in a gmx energy file or any time series. Converge works out how much of the run to discard, how many truly independent samples you have, and whether the average is still drifting. Or start with an example:
What am I looking at?
The grey region at the start is discarded as equilibration. Its end (dashed line) can be dragged to set the cut by hand. The orange line and band show the production average and its confidence interval. The dark line is the running average: if it is still trending when the run ends, the average has not converged.
Distribution of production values
A single smooth peak is reassuring. Two peaks, or a long tail, usually mean the system is switching between states that are not yet sampled in the right proportions. In that case a longer run, or enhanced sampling, is needed before the average means much.
How is the equilibration point chosen?
Discarding more of the start removes bias but also throws away data. Chodera's method plots the number of independent samples left after discarding the first t₀ (curve) and picks the maximum, which balances the two automatically. MSER-5 (dotted marker) is an independent rule; when the two agree, the choice is robust.
Why two error estimates, and how long should I run?
Block averaging (left) averages the data in blocks of growing size. Once the blocks are longer than the correlation time, the error stops growing and reaches a plateau, which is the honest error bar. If the curve never flattens, slow motions are still being sampled.
Projection (right) uses SEM ∝ 1/√T to show how the error bar shrinks as the production run gets longer, and where it reaches your target error.
What is the autocorrelation telling me?
The autocorrelation ρ(lag) measures how similar the data are to themselves a given time later. Its integral is the autocorrelation time τint. Frames closer together than about 2τint are not independent, so the number of independent samples is N / (2τint/Δt). The dashed line marks Sokal's integration window.
| Quantity | Mean | ± CI | Discarded | τint | Indep. samples | Score | Verdict | Run length for target |
|---|
Click a row to inspect that quantity.
Why Converge?
Consecutive simulation frames are correlated, the start of a run is rarely equilibrated, and slow drifts hide in noisy data. The naive standard error ignores all three. On correlated test data it covered the true mean only 38% of the time, although it claims 95%. Converge's intervals covered it 94.8% of the time.
The same algorithms are in the Python package (pip install git+https://github.com/siba-p/converge), and the web app and the package give identical numbers.
Method
Autocorrelation time (Sokal window ) and statistical inefficiency
Standard error of the production mean
Equilibration: discard the start that leaves the most independent samples (Chodera)
Block averaging (Flyvbjerg–Petersen), plateau of
Run length for a target error
- J. D. Chodera, J. Chem. Theory Comput. 12, 1799 (2016).
- H. Flyvbjerg & H. G. Petersen, J. Chem. Phys. 91, 461 (1989).
- A. D. Sokal, Monte Carlo Methods in Statistical Mechanics (1997).
- K. P. White Jr., Simulation 69, 323 (1997) (MSER).