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