A script written in Julia to automate runs of Extended Thermodynamic Integration by repeated calls of the GROMOS simulation and analysis packages.
The script only loads one argument from the command line interface: the absolute path of the extended TI simulation directory.
This is to make it callable from GROMOS scripts generated with mk_script
.
The library file for mk_script
should include the following line in the MISCELLANEOUS block.
lastcommand echo $OUTPUTTRE.gz >> en_files.dat && echo $OUTPUTTRG.gz >> fr_files.dat && julia /path/to/autexti/autexti.jl $SIMULDIR
(assuming there’s a working Julia installation is in PATH
)
A sample library file can be found in examples/
.
Additionally, the script will look for a configuration file ext_ti.conf
in the simulation directory.
Based on a working mk_script
argument file, autexti.jl
will generate Extended TI simulations; either adding new
To start the process, call the program passing the same directory specified with @dir
in the mk_script
argument file.
$ julia /path/to/autexti/autexti.jl /path/to/simuldir/
A sample configuration file can be found in examples/
header
String, currently unused.
prefix
String. Prefix for simulation folders. Following the GROMOS tutorial it would be “L_”
queuefile
String. File where queued jobs will be kept track of. Relative to simuldir
.
logfile
String. File where lines of queuefile
will be saved to after running lobs. Only relevant if logqueue=1
. Relative to simuldir
.
statefile
String. File where progress is logged. Relative to simuldir
.
command
String. Command to call the GROMOS scripts with, such as sbatch
for running with slurm
. If left blank, the script will be run directly.
mk_script_args
String. Argument file for mk_script
. Relative to simuldir
.
ene_ana_lib
Library file for ene_ana
and ext_ti_ana
. Relative to simuldir
.
gromospath
Path to a gromos++
installation (in case it’s not in path).
-
eq_scripts
Int. Number of equilibration scripts. -
eq_steps
Int. Number of steps (NSTLIM) for equilibration scripts. -
md_steps
Int. Number of steps (NSTLIM) for non-equilibration scripts. -
min_md_scripts
Int. Number of non-equilibration scripts to run before any analysis. -
max_md_scripts
Int. Maximum number of non-equilibration scripts to run regardless of analysis results. -
max_total_scripts
Int. Maximum number of non-equilibrium steps across all simulated $λ$s. Currently not implemented. -
stepsb4ext
Float. For the initial run, points will be created between$λ=0$ and$λ=1$ in increases ofstepsb4ext
. For example,stepsb4ext=1
will have an initial run of only 0 and 1, whilestepsb4ext=.2
would create an initial run of 0, .2, .4, .6, .8, and 1. 0 and 1 will always be generated. -
start_scripts
Int. If >0, set the number of non-equilibration simulations for$λ=0$ , ignoringmin_md_scripts
andmax_md_scripts
. Required for endpoints where$\frac{∂ \mathcal{V}}{∂ λ}$ is 0. -
end_scripts
Int. If >0, set the number of non-equilibration simulations for$λ=1$ , ignoringmin_md_scripts
andmax_md_scripts
. Required for endpoints where$\frac{∂ \mathcal{V}}{∂ λ}$ is 0.
-
dvdl_tol
Float. For a given$λ$ point, scripts will keep being generated until the error estimate for$\frac{∂ \mathcal{V}}{∂ λ}$ at that point falls belowdvdl_tol
. -
pred_tol
Float. Depends oncriteria
. If it’s set to “pred”, new$λ$ points will keep being added intil the error estimate for all points falls belowpred_tol
. For all other criteria, instead, points will keep being added until the difference between the integral of simulated points and that of predicted points falls belowpred_tol
. -
skip4ana
Int. Number of energy trajectories to skip for analysis, starting from the first equilibrium simulation. It is recommended to set equal toeq_scripts
.
-
logqueue
Bool. If set to 1, log simulations tologfile
as they are ran. -
logmerges
Bool. If set to 1, log previous resulults ofext_ti_ana
when a new$λ$ point is added. -
criteria
String. How the values of new points are decided. Currently accepts: pred, ydist, xydist, areamid.
When choosing a new point to simulate, the following criteria are currently implemented.
Optimize predicted points. Looks at the predicted PMF and chooses the point with the highest error estimate until all predicted points have an error estimate below pred_tol
.
Choose the point for which the prediction is furthest in the y-axis (energy) to a (linear interpolation) of simulated points.
Choose the point for which the predictions highest minimum distance (in both energy and
For each segment of the simulated PMF, compares the area under the curve to the integral of the corresponding segment of the predicted PMF. Adds the next simulation at the mid-point of the segment with the highest difference to the predicted PMF.