Dear all, 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. Below shows one of my examples in which the wxc_scale values are ignored when I use wxc_scale and fix_wxc at the same time. Anyone has similar problems? Thanks for all your considerations. ################## Command line arguments: "../new-unique.mtz" "../3tx8.pdb" "fix_rotamers=true" "strategy=individual_adp+individual_sites" "wxc_scale=0.01" "refinement.input.xray_data.labels=FP,SIGFP" "fix_wxc=10" "--overwrite" refinement.target_weights.wxc_scale = 0.01 refinement.target_weights.fix_wxc = 10 wxc_scale = 0.01 fix_wxc = 10 | XYZ refinement: T = Eexperimental * wxc * wxc_scale + Echem * wc | | wxc = 10.000000 wxc_scale = 1.000 wc = 1.000 | ... ################## Wenchang
On Mon, Jun 25, 2012 at 1:18 PM, 周文昌
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
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" http://www.phenix-online.org/newsletter/ - 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! Pavel On 6/25/12 1:28 PM, Nathaniel Echols 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
On Mon, Jun 25, 2012 at 1:18 PM, 周文昌
wrote: 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
participants (3)
-
Nathaniel Echols
-
Pavel Afonine
-
周文昌