[phenixbb] geometry weight help

Pavel Afonine pafonine at lbl.gov
Mon Jun 25 13:50:29 PDT 2012

Hi Wenchang,

nothing really to add to Nat's reply - this is exactly what I would suggest!

One small comment: if starting Rwork ~ Rfree the program will not 
optimize weights for the first one or a few macro-cycles until Rwork and 
Rfree naturally diverge up to a certain gap (default is 1% as I just 
figured out looking at the code). In this case you just need to run more 
than default 3 macro-cycles to achieve a meaningful result.

Now explaining what you are seeing:

- if you let phenix.refine to find and use weights automatically, then 
the refinement target is

T = wxc * wxc_scale * Txray + wc * Trestraints

where wxc is determined from ratio of target gradients, wc = 1, and 
wxc_scale is user-adjustable parameter by default set to something like 
1 or 0.5.

- if you let phenix.refine to optimize weights automatically, then the 
refinement target is

T = weight * Txray + wc * Trestraints

where weight is optimal weight found as described here:
"Improved target weight optimization in phenix.refine"

- finally, if you specify weights manually (as you attempted to do using 
fix_wxc), then

T = fix_wxc * Txray + wc * Trestraints

which internally done by setting wxc=fix_wxc and wxc_scale=1.

Sorry for flood of cryptic technicalities, but you asked for that!


On 6/25/12 1:28 PM, Nathaniel Echols wrote:
> On Mon, Jun 25, 2012 at 1:18 PM, 周文昌<wenchangyu2006 at gmail.com>  wrote:
>> Last week, I played a little bit with geometry weight in phenix refinement.
>> When I check the log file, what I found is that if I use wxc_scale and
>> fix_wxc in my refinement, actually phenix will ignore the wxc_scale, while
>> if I only use wxc_scale, phenix will follow the value specified in the
>> command line, but the wxc value will change from one macro cycle to another
>> cycle.
> I don't know the explanation for what you're seeing (this is Pavel's
> territory), but I do have a more general piece of advice: don't waste
> time trying to set the weights manually.  Just use the automatic
> weight optimization (i.e. optimize_xyz_weight=True), using as many
> processor cores as you can spare (nproc=X), and leave the computer for
> a few hours.  The only time this doesn't work, in my experience, is
> when R-work and R-free are nearly the same (or R-free<  R-work),
> because the optimization will be skipped in these circumstances.
> -Nat

More information about the phenixbb mailing list