back to Table of Contents

20. Dihedral angle minimization - JOBTYPE minimize

20.1 Overview

Dihedral angle minimization adjusts the moving rotatable bonds continuously to minimize the energy of the structure. The Powell algorithm is used (Press et al 1999); an improved method should use dihedral-angle dependent energy gradients for increased efficiency (Abe et al 1984). Please keep in mind that this jobtype is only good for relieving strain; it will not fold a protein or anything else that dramatic. Conservatively, its utility is limited to relieving steric clashes. This jobtype may be useful for moving backbone designs that follow the method of Baker and colleagues in which cycles of fixed backbone design are alternated with restrained continuous minimization to relieve clashes (Kuhlman et al 2003).

By default, only the sidechains are allowed to move. Free-moving ligands are always kept fixed.

GBSA_FLAG is set to 0 by default since including solvation greatly increases runtime, yet seems to have little effect on the final minimized structures.

By default, a logfile is kept. As described above, LOGFILE_FLAG 0 may be used to not do this.

20.2 Moving the backbone

By default, the backbone is kept fixed during minimization. If the backbone is to be moved, the backbone torsions of the starting structure (TEMPLATE_PDB) must be adjusted with JOBTYPE ideal_backbone_geometry, as described above (examples/minimization/gb1.ideal_backbone.input).

Moving the backbone must be defined explicitly:
JOBTYPE minimize         # only sidechains move by default
    backbone             # allows the backbone to move

Rotations around backbone dihedrals can dramatically change the structure of the protein. This occurs because the moves are in dihedral-space. Small changes in dihedral angle can result in dramatic changes in conformation. The optimization method (Powell) follows the direction of the greatest energy decrease. For moves in dihedral-space, several clashes can be relieved at once by moving apart secondary structure elements. In contrast, the moves used by conventional minimizations in which bond geometries are permitted to change are much smaller in magnitude.

To prevent these problems, backbone moves should be restrained.
restrain dihedrals # restrain backbone dihedrals; default if backbone moves
restrain rmsd # restrain by backbone rmsd
unrestrained # unrestrained bkbn movement
        
The backbone rmsd restraint is far more restrictive than the dihedral restraint. The rmsd deviation between the minimized and initial structures are calculated (backbone heavy atoms). The score of the structure is adjusted:
         If E > 0
                  E = E*rmsd
         else
                  E = E/rmsd
where E is the forcefield energy of the structure.

For the dihedral restraint (default), a simple square well is used; backbone dihedrals that deviate greater than MAX_BACKBONE_DELTA_DIHEDRAL (default 5 degrees) are penalized by an arbitrary VDW_CUTOFF (default 1000 kcal/mol) penalty.
MAX_BACKBONE_DELTA_DIHEDRAL n # maximum backbone dihedral move between
                                # the initial and minimized structures
                                # default 5 degrees


Example of minimization on gb1 are shown in examples/minimization/.

The rmsd restrained minimized structure (gb1.backbone_rmsd_restrained.pdb) moves very little compared to the ideal-backbone structure (gb1.ideal_backbone.pdb). The dihedral restrained minimized structure (gb1.backbone_dihedral_restrained.pdb) is perturbed more, while the un-restrained minimized structure (gb1.backbone_unrestrained.pdb) moves even more significantly.

Restraint functions may be modified in minimization.cpp: minimization_objective_function , which scores the energy of a conformation, and applies the defined restraint.

20.3 Restricting moving positions

By default, all residues are allowed to move. FLOATING and FIXED residues may be defined in a manner similar to that used to define VARIABLE_POSITIONS and FIXED_POSITIONS for rotamer optimization:
START
...
END
FLOATING (optional)
         seq_position (residue allowed to move)  
...
END (required at end of FLOAT block)
FIXED (optional)
         seq_position (fixed residue)
...
END (required at end of FIXED block and at end of file)


By default, if FLOATING is defined, only user-defined positions are allowed to move. However, OTHER_RESIDUES may be used to allow neighboring residues to also move.
For example (examples/minimization/gb1.float_neighbors.input):
...
OTHER_RESIDUES neighbors
END
FLOATING
43
END
The neighbors for 43 are also allowed to move.

By default, all residues are allowed to move. FIXED residues are kept fixed. For example:
...
END
FIXED
45
END
All residues except 45 are allowed to move.

Finally, both FIXED and FLOATING can be defined if OTHER_RESIDUES is defined. For example (examples/minimization/gb1.fix_and_float.input):
...
OTHER_RESIDUES neighbors
END
FLOATING
43
END
FIXED
         52
END

As before, the neighbors for 43 are allowed to move. However, residue 52, if it is a neighbor of 43, is fixed.

For another example, consider the loop graft discussed above. Since the coordinates of the grafted residues are not actually known, while the coordinates of the remaining residues are known, only the grafted residues should be moved in order to relieve clashes. This is shown in examples/backbone_graft_stitch/minimize_basal_sos_stitched_loop_653_676.input. Only the transplanted residues are allowed to move.

20.4 Minimization exit

By default, the minimization job exits once convergence is achieved. However, this can take a long time. Therefore, as for the other jobtypes, RUNTIME may be used to define a maximum running time, as discussed above.

MAX_FUNCTION_CALLS may be used to define the maximum number of energy evaluations:
MAX_FUNCTION_CALLS n # after n energy evaluations, exit

back to Table of Contents