PROFASI  Version 1.5
Tutorial 5: Simulated tempering

In simulated tempering, the temperature is treated like a dynamical variable, and varies throughout the run depending on the current energy. The probability to go to a higher or lower temperature depends also on a set of pre-determined parameters that we will call "g-parameters". These parameters can be obtained iteratively by using information obtained from one run as input to the next run. When the input g-parameters are roughly equal to the output values produced by the program, the simulations are likely to have converged. In this section, we will outline how you will run simulated tempering with PROFASI, and how you will obtain these g-parameters.

Since obtaining g-parameters is an iterative process, we will use a smaller peptide so that we can quickly run many simulations... Please start with an empty directory for the following...

prompt> $profasi_dir/bin/SimTempRun -ac 1 "*KLVFFAE*" -ntmp 8 \
-tmin "274 Kelvin" -tmax "374 Kelvin" -ncyc 10000 -b 45

As in simann, we use ntmp, tmin and tmax options to set the number and range of temperatures. In simulated tempering, it is advisable to use a small number of temperatures. Otherwise, the convergence of the g-parameters might take rather long. Notice that there was an error message at the beginning of the run:

File "gpars.in" not found.
Simulated tempering> No g-parameter file! All g values set to 0. This run will
probably not visit many temperatures.

This is because we started this run without any input g-parameters file, by default named "gpars.in". This starts the program with all g-parameters set to 0. If you look at the run-time history file, the temperature index column will look quite different from what we saw in simann. In fact, it is quite probable that all the values are 0, as if it were a BasicMCRun. Bad g parameters make it difficult for the system to explore all available temperatures. But you will also find a file called "gpars.out" in the output directory. This file contains recommendations for a new g-parameters file, based on what the program saw in that run. Copy that file to the run directory renaming it as "gpars.in":

cp n0/gpars.out ./gpars.in

Remove the output directory, and start the run with the same command as above. This time, you will see that the temperature index column will have a few non-zero entries. Still, when the program ends, the new gpars.out file will differ considerably from the one you used as the input. So, repeat the process of copying the gpars.out to gpars.in and running the program. After 4 or 5 runs, each lasting about 10 seconds for this simple case, you will see that the output g-parameter values are pretty similar to the input values. You will then have to run a somewhat longer simulation to make sure that the convergence is real. If it is, you can trust the statistics in the histogram and average files.

For a longer peptide or protein, or for a multiple chain system, obtaining a good set of g-parameters can take several days, instead of the few minutes you spent for this tiny peptide. The convergence can be quickened a little by using many runs in parallel, and taking averages of the recommended g-values from all the runs.

The histograms and averages files created by SimTempRun are similar in structure to those described in simann. For more information on the averages files and how to combine the statistics from all the run and make separate plot files for each run, please see below in the section partmp. The settings file given above for simulated annealing will also work for simulated tempering. The only difference in available commands in the settings file is that simulated tempering has no "schema_file" command, but instead a "g_parameter_file" command.

If you compiled the parallel parts of PROFASI during installation (e.g., make CC=g++ parallel), you can run multiple instances of simulated tempering like this:

mpirun -np 8 $profasi_dir/bin/SimTempRun.mex -ac 1 "*KLVFFAE*" \
    -ntmp 8 -tmin "274 Kelvin" -tmax "374 Kelvin" -ncyc 10000 -b 45

This will start 8 independent runs on processors available to MPI using a trivial parallelization. The different runs do not "talk" to each other, as simulated tempering is not an intrinsically parallel alogrithm. The next simulation method we describe is.

See Also
Tutorial 4: Replica-exchange or parallel tempering MC simulations

PROFASI: Protein Folding and Aggregation Simulator, Version 1.5
© (2005-2016) Anders Irbäck and Sandipan Mohanty
Documentation generated on Mon Jul 18 2016 using Doxygen version 1.8.2