The program WLRun performs Wang-Landau iterations. The basic algorithm is as described in "Fugao Wang and D.P. Landau, Physical Review Letters,
86 (10) 2050", with the following modifications:
- If the energy exceeds the given upper limit, an update is by default rejected. But if the flag –use_htmc is given, the update is accepted or rejected as if it was a Metropolis MC update with a high temperature. New Metropolis MC updates are done until the energy comes back into the specified range again.
- For protein systems, it is not possible to know ahead of time what a good lower bound for energy should be. If the lower limit is set below what is possible for the given system, the simulation will never converge. Therefore, the simulations should be started with a conservative estimate of the lower bound. It is ok if it is too high. If the simulation finds a state with energy lower than the lower bound, it is not rejected. It is kept, and the lower bound is adjusted by adding new bins until the range includes the newly found state. If the range is changed, the density of states must now be determined over a wider range. The simulation continues with the existing estimate of the density of states for the pre-existing bins.
As of now, the Wang Landau algorithm is less well tested in ProFASi than the other simulation algorithms. Please carefully check the code and test it thoroughly before using it for anything serious. Of course, if you find a bug or improve its performance, we would like to know.
Options
This implementation uses the program BasicMCRun as a base class. Most options available for BasicMCRun can be used for WLRun. In particular setting up the protein population, updates etc. proceeds exactly as in BasicMCRun. In addition to those options, this program accepts
Example
$ WLRun --energy_range 20 70 --n_bins 50 -htmc --n_stages 10 \
--add_chain 1 "*GEWTYDDATKTFTVTE*" -ncyc 1000000 -lcyc -1 -time 9:00:00
This is how the above configures a Wang-Landau run:
- The energy histogram is initially between 10 and 70 profasi units
- The histogram initially has 50 bins. It will grow when lower energy states are found.
- It will use the high temperature MC method to put back a trajectory which exits the given range on the higher side.
- It will try to perform 10 rounds of refinement of the Wang-Landau update factor f: f–>sqrt(f).
- The population will contain 1 chain of sequence "*GEWTYDDATKTFTVTE*". The initial and final asterix ("*") symbols are toggle markers in ProFASi to switch back and forth between 3 letter codes and one letter codes for residues. The same sequence could be written without the asterixes as "GLY GLU TRP THR TYR
ASP ASP ALA THR LYS THR PHE THR VAL THR GLU".
- The run will have 1000000 Monte Carlo sweeps, unless it converges before that.
- -lcyc -1 : Each sweep will consist of as many MC updates as there are degrees of freedom in the system. You could write -lcyc 100 to force 100 updates per sweep. The value -1 is a convenient shorthand for the number of degrees of freedom in the current system.
- The run will suspend automatically if it is not finished within 9 hours.