# Side predict

### From Jacobson Lab Wiki

**Predict** is a side plop command used to optimize side chain positions. The command structure is

side predict residue selection & gridres real & ofac_init real & ofac_min real & iter[ations] integer & rand[omize]yes/no & failsafeyes/no

The parameter "gridres" controls the resolution of the rotamer library. Currently, the options are 10 degrees (default), as well as 20, 30, and 40 degrees. Using lower resolution for the rotamer library will generally decrease accuracy but increase speed.

The basic algorithm proceeds by optimizing one side chain at a time (keeping others fixed), and keeps looping through the residues until they stop changing conformation (i.e., a self-consistent – locally minimum energy – solution is obtained). This algorithm obviously is sensitive to the initial conformations of the side chains (although not as much as one might naively expect). If you have some reason to believe that the side chains may already be in reasonable (although not fully optimized) conformations, this may be perfectly acceptable. On the other hand, you can also run the side chain prediction algorithm multiple times starting with different random initial conformations and then pick the lowest energy resultant conformation. The latter corresponds to "randomize yes" and "iterations" set to some value greater than 1. Note that if you choose "randomize no" (i.e., start with the side chains in their current configuration and not randomize their conformations), there will only be 1 "iteration" of the procedure, regardless of what number you specify. The default values are "randomize yes" and "iterations 2". With respect to the latter, 2 iterations may not be sufficient for many cases, but it is chosen as the default to avoid very long runs when you just want to get some reasonable conformation for the side chains.

As with the other algorithms, steric clashes are identified using the "overlap factor"; only those rotamer conformations that are free from steric clash have their energies evaluated. There are 2 parameters related to the overlap factor cutoff, "ofac_init" and "ofac_min". The idea here is to allow the algorithm to automatically adapt to different scenarios. If the side chains are in random or otherwise highly non-optimal conformations, then it may be impossible to find a conformation of any one side chain that is free from steric clashes, using any reasonable value of the overlap factor. However, just setting the minimal overlap factor to some very low value means that virtually all of the side chain rotamers will be scored energetically, which is generally wasteful. So, the algorithm starts with some reasonable overlap factor ("ofac_init"), and if no conformations are found to be free of steric clash, the overlap factor is decreased in steps until at least one conformation survives the steric screening. The "ofac_min" criterion is only evaluated once the algorithm has converged (given a set of initial side chain conformations); if this criterion is not satisfied, then the minimization is not invoked, and the solution is discarded. The default values are "ofac_init 0.75" and "ofac_min 0.7".

The "failsafe" parameter permits a final "sanity check" on the results of the side chain optimization. If "failsafe yes" is employed, then the new side chain conformations will only be accepted if the energy is lower than the energy of the initial conformations (i.e., whatever the energy was before the "side predict" command). If this criterion is not satisfied, then the side chain sampling is probably insufficient, and the new side chain positions are ignored, and the structure is restored to what it looked like before the "side pred" command.

After the side chain rotamer prediction algorithm is finished, a full energy minimization is applied to all optimized side chains (if multiple "iterations" are used, then each resultant structure is minimized). Although not normally necessary, it is possible to change any of the minimization parameters from their default values. For example, to change the rms gradient cutoff for the minimization to 0.1, the option would be

minim rmsg 0.1

That is, the values for any of the minimization parameters can be "nested" inside the side chain prediction parameters, and these values will be passed to the minimization algorithm at the appropriate time.