You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/simulations.rst
+42-3Lines changed: 42 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -127,7 +127,8 @@ by the single GRO file, but the user should also be able to initialize different
127
127
configurations (represented by multiple GRO files) in the near future. Also, the MDP template should contain parameters
128
128
common across all replicas and define the coupling parmaeters for all possible intermediate states,
129
129
so that we can cusotmize different MDP files by defining a subset of alchemical states in different
130
-
replicas. Importantly, to extend an EEXE simulation, one needs to additionally provide the following
130
+
replicas. For EEXE simulations, some MDP parameters need additional care to be taken, which we describe in
131
+
:ref:`doc_mdp_params`. Importantly, to extend an EEXE simulation, one needs to additionally provide the following
131
132
two checkpoint files:
132
133
133
134
* One NPY file containing the replica-space trajectories of different configurations saved by the previous run of EEXE simulation with a default name as :code:`rep_trajs.npy`.
@@ -206,9 +207,9 @@ iterations (:code:`n_iterations`) is reached.
206
207
207
208
.. _doc_parameters:
208
209
209
-
3. Simulation parameters
210
+
3. Input YAML parameters
210
211
========================
211
-
In the current implementation of the algorithm, 22 parameters can be specified in the input YAML file.
212
+
In the current implementation of the algorithm, 27 parameters can be specified in the input YAML file.
212
213
Note that the two CLIs :code:`run_EEXE` and :code:`analyze_EEXE` share the same input YAML file, so we also
213
214
include parameters for data analysis here.
214
215
@@ -378,3 +379,41 @@ parameters left with a blank. Note that specifying :code:`null` is the same as l
378
379
n_bootstrap: 50
379
380
seed : null
380
381
382
+
.. _doc_mdp_params:
383
+
384
+
4. Input MDP parameters
385
+
=======================
386
+
As mentioned above, a template MDP file should have all the parameters that will be shared
387
+
across all replicas. It should also define the coupling parameters for the whole range of
388
+
states so that different MDP files can be customized for different replicas. For an EEXE simulation
389
+
launched by the CLI :code:`run_EEXE`, any GROMACS MDP parameter that could potentially lead to issues
390
+
in the EEXE simulation will raise a warning. If the number of warnings is larger than the value
391
+
specified for the flag `-m`/`--maxwarn` in the CLI :code:`run_EEXE`, the simulation will error
392
+
out. To avoid warnings arised from MDP specification, we need to take extra care for the following
393
+
MDP parameters:
394
+
395
+
- We recommend setting :code:`lmc_seed = -1` so that a different random seed
396
+
for Monte Carlo moves in the state space will be used for each iteration.
397
+
- We recommend setting :code:`gen_vel = yes` to re-generating new velocities for each iteration to avoid
398
+
potential issues with detailed balance.
399
+
- We recommend setting :code:`gen_seed = -1` so that a different random seed for velocity generation
400
+
will be used for each iteration.
401
+
- The MDP parameter :code:`nstlog` must be a factor of the YAML parameter :code:`nst_sim` so that the final status
402
+
of the simulation can be correctly parsed from the LOG file.
403
+
- The MDP parameter :code:`nstdhdl` must be a factor of the YAML parameter :code:`nst_sim` so that the time series
404
+
of the state index can be correctly parsed from the DHDL file.
405
+
- In EEXE, the MDP parameter :code:`nstdhdl` must be a factor of the MDP parameter :code:`nstexpanded`, or
406
+
the calculation of the acceptance ratio may be wrong.
407
+
- Be careful with the pull code specification if you want to apply a distance restraint between two pull groups.
408
+
Specifically, in an EEXE simulation, all iterations should use the same reference distance. Otherwise, poor sampling
409
+
can be observed in a fixed-weight EEXE simulation and the equilibration time may be much longer for a weight-updating
410
+
EEXE simulation. To ensure the same reference distance across all iterations in an EEXE simulation, consider the
411
+
following scenarios:
412
+
- If you would like to use the COM distance between the pull groups in the input GRO file as the reference distance
413
+
for all the iterations (whatever that value is), then specify :code:`pull_coord1_start = yes` with
414
+
:code:`pull_coord1_init = 0` in your input MDP template. In this case, :obj:`.update_MDP` will parse :code:`pullx.xvg`
415
+
from the first iteration to get the initial COM distance (:code:`d`) and use it as the reference distance for all the following
416
+
iterations using :code:`pull_coord1_start = no` with :code:`pull_coord1_init = d`. Note that this implies that
417
+
the MDP parameter :code:`pull_nstxout` should not be 0.
418
+
- If you want to explicitly specify a reference distance (:code:`d`) to use for all iterations, simply use
419
+
:code:`pull_coord1_start = no` with :code:`pull_coord1_init = d` in your input MDP template.
self.warnings.append('Warning: We recommend generating new velocities for each iteration to avoid potential issues with the detailed balance.') # noqa: E501
308
+
self.warnings.append('Warning: We recommend generating new velocities for each iteration to avoid potential issues with detailed balance.') # noqa: E501
'In EEXE, the parameter "nstdhdl" must be a factor of the parameter "nstexpanded", or the calculation of acceptance ratios might be wrong.') # noqa: E501
0 commit comments