So far our studies have generally used the same number of windows for each perturbation in a given dataset. However the number of windows needed is perturbation specific.
To have a robust workflow we should optimise this.
Option 1) Run a short simulation with a small number of windows (say 8). Analyse precision and reproducibility of forward and backward runs. Add new windows to systems that converge poorly. Resume simulations.
Problem with this is MBAR needs adapting so we post-process again already computed trajectories to get the energies of the new perturbed states. This will increase storage needs significantly, at least until a job is declared converged. Or have to restart everything from scratch. TI has the advantage that adding new lambda values does not require re-analysing old trajectories.
Option 2) Analyse how much the end states differ with an ad hoc rule and guess number of windows accordingly. Ad hoc rule based on prior experience. Less rigorous but easier to code. A more refined variant could make guess by looking up a database of free energy calculation results. The database could be automatically compiled by submitting results of a free energy run to a remote server. This would help refine ad hoc rules as data is collected.
Similar considerations apply to guess the number of cycles to perform.
Here MBAR/TI are both straightforward.
Any other option? Other pros & cons of option 1 & 2 ?
So far our studies have generally used the same number of windows for each perturbation in a given dataset. However the number of windows needed is perturbation specific. To have a robust workflow we should optimise this.
Option 1) Run a short simulation with a small number of windows (say 8). Analyse precision and reproducibility of forward and backward runs. Add new windows to systems that converge poorly. Resume simulations.
Problem with this is MBAR needs adapting so we post-process again already computed trajectories to get the energies of the new perturbed states. This will increase storage needs significantly, at least until a job is declared converged. Or have to restart everything from scratch. TI has the advantage that adding new lambda values does not require re-analysing old trajectories.
Option 2) Analyse how much the end states differ with an ad hoc rule and guess number of windows accordingly. Ad hoc rule based on prior experience. Less rigorous but easier to code. A more refined variant could make guess by looking up a database of free energy calculation results. The database could be automatically compiled by submitting results of a free energy run to a remote server. This would help refine ad hoc rules as data is collected.
Similar considerations apply to guess the number of cycles to perform. Here MBAR/TI are both straightforward.
Any other option? Other pros & cons of option 1 & 2 ?