PROFASI
Version 1.5

As of now, PROFASI provides two ways of fine tuning the conformational updates. The first is a probability for choosing a conformational update, and that will be described in this page. The other is the probability of using a certain degree of freedom, after an update has been selected. That procedure is described in XML configuration file for updates. Assignment of relative probabilities as described here, could also be done (most probably more elegantly) using the XML configuration file, but that part has not been programmed yet.
At present there are 5 conformation updates implemented in PROFASI : Rot, Pivot, BGS, Rotation and Translation. Rot acts on side chain DOFs alone. Pivot and BGS change backbone DOFs. Pivot makes a random change of one selected angle. BGS takes 4 consecutive residues and makes a concerted rotation to perform an almost local deformation of the chain. Rotation and Translation are rigid body updates operating on whole chains. During a Monte Carlo move, PROFASI simulations using the MC class or its derivatives first select one of the 5 updates and perform them. Then they go on to accept or reject the move with a Metropolis like criterion. The relative probabilities of the 5 updates can be controlled by putting a file called "updateprob.dat" in the same directory as the settings file. The contents of this file will be described below, but first note that it is also possible to just ignore this file alltogether. If one starts simulations with no updateprob.dat file in the run directory, the program analyses the system under study and automatically assigns quite reasonable probabilities for the updates at different temperatures. The automatic probabilities are based on proportions of backbone degrees of freedom, sidechain DOF and rigidbody DOF in the system. Most of the time, you could use the automatic probabilities, and worry about other things.
Now, if you decide on the probabilities using other criteria and want PROFASI to use them, you can do so using the "updateprob.dat" file. Here is the syntax:
#Updates This is used to specify the updates for which the file contains probability information. For example:
#Updates BGS Pivot Rotation Translation Rot
This tells the program that the file contains probabilities for the 5 updates in that order.
The probability values for any temperature are normalized in the program. So, as long as at least one update receives a nonzero value for a given temperature, the specified probability values do not need to be normalized in the updateprobs.dat file.
Example 1
First a case where the file "updateprobs.dat" contains the following lines
#Columns Updates #Updates Rot BGS Pivot Unknown Translation Rotation #T_indices 7  0 0.7 0.25 0.025 0.4 0.0 0.025 0.7 0.15 0.075 0.4 0.0 0.075 0.7 0.05 0.125 0.4 0.0 0.125
The following probabilities will be assgned:
Rot:(0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7)
Pivot:(0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.075, 0.025)
BGS:(0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.15, 0.25)
Translation:(0, 0, 0, 0, 0, 0, 0, 0)
Rotation:(0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.075, 0.025)
Notice that only 3 columns corresponding to 3 temperatures are given, and since the temperature indices are intreptreted 7  0, it is inferred that temperatures 7,6 and 5 have been specified and the remaining not. So, the values for temperatures 0 though 4 are copies of the values read for temperature 5. Notice also that the column for the update called Unknown here is completely skipped, as the update is not known.
Example 2
#Columns Temperatures #Updates BGS Pivot Rot #T_indices 0  7 0.05 0.05 0.1 0.15 0.2 0.25 0.25 0.25 0.2 0.15 0.1 0.05 0.7
The following probabilities will be assgned:
Rot:(0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7)
Pivot:(0.25, 0.25, 0.2, 0.15, 0.1, 0.05, 0.05, 0.05)
BGS:(0.05, 0.05, 0.1, 0.15, 0.2, 0.25, 0.25, 0.25)
The first row of the probability matrix is used for BGS, second for Pivot and third for Rot. The Rot line has equal entries for all temperatures, so it is sufficient to specify it just once.