[phenixbb] phenix.refine questions: weights, docs, etc.
Ralf W. Grosse-Kunstleve
rwgk at cci.lbl.gov
Tue May 29 12:22:34 PDT 2007
> The sets of parameters that can be refined simultaneously is a result of the
> choice of optimization method, not the choice of the function being optimized.
> The crucial difference is how the second derivatives are handled. In the
> methods used in Phenix and CNS the seconds derivatives of all parameters are
> assumed to be equal and uncorrelated.
This is true only for the first iteration of a minimization in a phenix
macro cycle. After that the L-BFGS method builds up an approximation
of the second derivative information.
> To ensure that this assumption is true
> only parameters of the same category can be varied in a single cycle. This
> means that the coordinates can be varied, but the B factors and scale factors
> have to be held fixed. When the B factors are varied the coordinates and
> scale factors must be constant. When the scale factors are varied everything
> else must be fixed.
> Other refinement programs use second derivatives in a more explicit way
> than Phenix and do vary more types of parameters in a single cycle. Shelxd is
> the most powerful and, by default, varies all parameters of all classes each
> cycle. Refmac, to the best of my knowledge, refines both coordinates and ADPs
> together, but does refine TLS parameters in a separate step.
As far as I know, Shelx doesn't use second derivatives at all. Shelx is
shaped completely by the least-squares approach, using the Jacobian.
You couldn't plug another target function into Shelx as you can do
in the common macromolecular programs. I.e. there is in fact a link
between the minimization method and choice of the target function.
REFMAC uses a block-diagonal approach that only takes the correlations
of the parameters of one atom into account. phenix approximates these
with the L-BFGS method.
We have not actually tried to refine coordinates and B-factors
simultaneously since we've been too busy with other priorities. In
theory it should be possible, but I'm sure it will take a lot of
> Since all the parameters of our models are correlated with one another, it
> is better to refine as many of them at once as possible. Implementing
> the join refinement of all these kinds of parameters is difficult, so to save
> programmers' time approximations are sometimes made.
We'll spend the time when we find it. :-)
But I don't expect spectacular gains, no matter how long we beat on
the second derivatives.
More information about the phenixbb