# Minimization

Score optimization allows the conformation and orientation of a molecule to be adjusted to improve the score. Although the calculation is expensive, it makes the conformation and orientation search more efficient because less sampling becomes necessary. Optimization is activated with the minimize_ligand parameter. The optimizer currently uses the simplex algorithm, which does not require evaluation of derivatives (Nelder et al, ComputerJournal, 1964). It does however depend on a random number generator which makes it sensitive to the initial seed provided with random_seed parameter. The amount of variance should be small, though. For detailed calculations, it is recommended that the optimization be repeated with different random number seeds to check convergence.

The initial step size of the minimizer is specified with the initial_translation, initial_rotation, and initial_torsion parameters. The length of minimization may be controlled with the maximum_iterations parameter. Users can choose to minimize the rigid anchors, minimize during flexible growth, and minimize the final conformation. The anchor minimization is always done rigidly; also, if no flexible growth is being done, this step will minimize the entire molecule. The minimization during the flexible growth is a complete (torsions + rigid) minimization. When the simplex shrinks enough so that the highest and lowest points are within the scoring tolerance or if the number of requested minimizer steps is reached, the minimizer terminates.

NOTE: The following parameter definitions will use the format below:

parameter_name [default] (value): #description

In some cases, parameters are only needed (questions will only be asked) if the parameter above is enforced. These parameters are indicated below by additional indentation.

Score Optimization Parameters

* minimize_ligand [yes] (yes, no): #Flag to perform score optimization (if flexible_ligand = no) simplex_max_iterations [50] (int): #Maximum number of minimization cycles (if flexible_ligand = yes) o minimize_anchor [yes] (yes, no): # Flag to perform rigid optimization of the anchor + simplex_anchor_max_iterations [500] (int): #Maximum number of iterations per cycle per anchor o minimize_flexible_growth [yes] (yes, no): # Flag to perform complete optimization during conformational search + simplex_grow_max_iterations [500] (int): #Maximum number of iterations per cycle per growth step o use_advanced_simplex_parameters [no] (yes, no): #Flag to use a simplified set of common minimization parameters for each of the #minimization steps listed above (see below for list of these options) (if minimize_ligand = yes) o simplex_final_min_add_internal [no] (yes, no): #Flag to perform one more cycle of minimization, this time adding ligand internal energy to #primary scoring function o simplex_final_max_iterations [0] (int): # Maximum number of iterations for final cycle (if secondary_score = yes) o simplex_secondary_minimize_pose [yes] (yes, no): #Flag to perform an additional cycle of minimization using the secondary scoring #function o use_advanced_secondary_simplex_parameters [no] (yes,no): #Flag to use a simplified set of common minimization parameters for each of the #minimization steps listed above (see below for list of these options) o secondary_min_add_internal [no] (yes,no): #Flag to perform one more cycle of minimization, this time adding ligand internal #energy to primary scoring function (if minimize = yes) o simplex_random_seed [0] (int): #Seed for random number generator

Generic Minimizer Parameters

- 1. if flexible_ligand = no OR use_advanced_simplex_parameters = no, XXX = simplex
- 2. if use_advanced_simplex_parameters = no AND minimize_anchor = yes, XXX = simplex_anchor
- 3. if use_advanced_simplex_parameters = no AND minimize_flexible_growth = yes, XXX = simplex_growth
- 4. if use_advanced_simplex_parameters = no AND simplex_final_min_add_internal = yes, XXX = simplex_final
- 5. if simplex_secondary_minimize_pose AND use_advanced_secondary_simplex_parameters, XXX = simplex_secondary

o XXX_max_cycles [1] (int): #Maximum number of minimization cycles o XXX_score_converge [0.1] (float): #Exit cycle at when energy converges at cutoff o XXX_cycle_converge [1.0] (float): # Exit minimization when cycles converge at cutoff o XXX_trans_step [1.0] (float): #Initial translation step size o XXX_rot_step [0.1] (float): #Initial rotation step size o XXX_tors_step [10.0] (float): #Initial torsion angle step size