[phenixbb] automatic weight optimization

Pavel Afonine pafonine at lbl.gov
Sun Jun 30 23:38:23 PDT 2013


Hi Michael,

> I have a few questions about the automatic weight optimization in phenix.refine. I have read the manual, but I feel like maybe I'm missing something. I apologize in advance if these are naive questions, but here goes. I ran phenix.refine with a .def file, in which I set the following parameters:
>
>   target_weights {
>      optimize_xyz_weight = True
>      optimize_adp_weight = True
>      wxu_scale = 2.72
>   }
>
>
> My goal was to optimize both xyz and adp weights. In the log file, I see something like this:
>
>
> ===================== xyz refinement (lbfgs minimization) =====================
>
>      R-FACTORS           RMSD     CLASH  RAMA  ROTA CBET WEIGHT    TARGETS
>   work  free  delta  bonds  angl                                  data   restr
> 21.06 20.38  -0.67  0.033   2.0    6.1   0.0   6.6    0   none  0.154  0.1685
> 19.79 21.26   1.47  0.012   1.3    7.6   0.0   5.8    0  2.494  0.131  0.0499
>
> Legend:
>    - first line corresponds to starting state (before refinement)
>    - R-factors reported in percent
>    - delta is Rfree-Rwork in percent
>    - CLASH is all-atom Molprobity clashscore
>    - ROTA is percent of side-chain rotamer outliers
>    - RAMA is percent of Ramachandran plot outliers
>    - CBET is number of Cbeta deviations
>    - WEIGHT is relative weight between X-ray (or neutron) target and restraints
>    - TARGETS: the values of X-ray (or neutron) and restraints target functions
>
> ================================ ADP refinement ===============================
>
>
>                   ----------Individual ADP refinement----------
>
>      R-FACTORS      <Bi-Bj>  <B>   WEIGHT       TARGETS
>   work  free  delta                           data restr
> 19.79 21.26   1.47  1.909  20.062  0.661    0.131
> 19.80 21.28   1.49  1.761  20.011  0.007    0.130
> 19.77 21.41   1.64  1.838  19.884  0.030    0.125
> 20.30 22.63   2.34  2.369  19.168  0.122    0.111
> 20.17 22.82   2.64  2.886  18.929  0.243    0.107
> 20.07 23.04   2.97  3.771  18.737  0.365    0.104
> 20.04 23.14   3.10  4.106  18.751  0.486    0.103
> 20.00 23.19   3.19  4.496  18.794  0.608    0.103
> 19.98 23.23   3.25  4.846  18.851  0.729    0.102
> 19.97 23.27   3.29  5.115  18.940  0.851    0.102
> 19.95 23.30   3.36  5.420  18.988  0.972    0.101
> 19.94 23.33   3.39  5.579  19.008  1.094    0.101
> 19.93 23.29   3.36  5.598  18.917  1.215    0.101
>    max suggested <Bi-Bj> for this run:   10.00
>    max allowed Rfree-Rwork gap:   5.0
>    range of equivalent Rfree:   0.0
> Best ADP weight:    0.007
> Accepted refinement result:
> 19.80 21.28   1.49  1.761  20.011  0.007    0.130
>
>
> The output kind of makes me feel like the adp weight is being optimized, but the xyz weight might not be. There is a list of statistics for varying values of the adp weight, but there is no similar list in the output from the xyz refinement stages.
>
> So my questions are:
>
> Is the xyz weight being optimized?

since starting Rfree (=20.38) is less than Rwork (=21.06), weight 
optimization is skipped for this macro-cycle. Once the gap between Rwork 
and Rfree becomes greater than a certain threshold (I forgot what I put 
as the exact value for this, perhaps 1..2%) then weight optimization 
will start taking place.

Sorry, it's not in the original paper that describes it:

"Improved target weight optimization in phenix.refine"
http://www.phenix-online.org/newsletter/

since we realized we need to do it later after the publication.

Also, if
     optimize_xyz_weight = True
     optimize_adp_weight = True
then any values set for wxu_scale or wxc_scale are ignored.

Also note if you have multiple CPU machine you can use 
nproc=NUMBER_OF_CPUs - that will speed up refinement (with weights 
optimization) significantly!

> Did I miss something in the input that is required to turn on xyz weight optimization?

No, most likely you didn't !

>   How can I check to make sure the xyz weight optimization is running?

If it's not obvious from the output logs then just do what you just did 
- ask us directly or on mailing list!

All the best,
Pavel



More information about the phenixbb mailing list