[phenixbb] Group B refinement / Simulated annealing / Omit maps

Pavel Afonine PAfonine at lbl.gov
Fri Mar 2 11:45:24 PST 2007

Hi Stephen,

thanks for your questions! I will try to answer all of them. Please keep 
asking if something is not clear!

> Firstly, is it possible to do 'grouped' adp refinement with 2 groups
> per residue (like the good old bgroup.inp of CNS)?

Since phenix.refine is constantly growing and getting more and more 
sophisticated day by day, below I will suppose that you're using the 
latest version of phenix.refine 

With the latest phenix.refine you can refine your B-factors in many 
various ways:
- individual (isotropic/anisotropic);
- grouped (one B per residue or one B per selected part of your model);
- using TLS;
- any combination of strategies above applied to any selected part of 
your structure.

For the data at around 3.0A I would suggest to:
- first try to refine individual Bs (it's not always the case that you 
need to refine grouped Bs at this resolution);
- if you notice the over-fitting, switch to refine 1 B per residue and 
keep increasing the group untill you're happy with Rfree and Rfree-Rwork;
- try to refine group B first and then later on switch to individual;
- the BEST and usually most efficient thing to try out is to refine the 
TLS along with individual or group B-factors.

Here are a few examples:

1) Refine only group B (1 per residue, this is default option):
% phenix.refine data.hkl model.pdb strategy=group_adp

2) This will refine one isotropic B for chain A and one B for chain B:
% phenix.refine data.hkl model.pdb strategy=group_adp 
one_adp_group_per_residue=false adp.group="chain A" adp.group="chain B"

3) Refine TLS in combination with individual B:
% phenix.refine data.hkl model.pdb tls_group_selections 
here tls_group_selections is the file containing the selections fro TLS 
refinement.refine.adp {
  tls = chain A
  tls = chain B

4) Same as 3) but refine group B instead of individual:
% phenix.refine data.hkl model.pdb tls_group_selections 

5) Of course, you can combine all the above with refinement of 
individual coordinates:
% phenix.refine data.hkl model.pdb tls_group_selections 
or rigid bodies:
% phenix.refine data.hkl model.pdb tls_group_selections 

> Secondly, is it possible to specify multiple starting trajectories for
> simulated annealing?  I often find it handy to do 10 runs of simulated
> annealing and overlay the output co-ordinates to see where the
> 'wobbly' bits are.

Are you asking for multi-start SA refinement? Indeed, sometimes this is 
very useful thing to do. If yes, then you can do it as follows:
- write a trivial script that does the following (very schematically):
for random_seed_i in random_seeds:
   % phenix.refine data.hkl model.pdb simulated annealing=true 
main.random_seed=random_seed_i output.prefix=random_seed_i

This script loops over list of random seeds, like [152454, 4445715, 
1544515, ...], and runs phenix.refine with each of them. This means that 
SA will start with different velocities. The output model names will 
have the random seed number (since I specified 
output.prefix=random_seed_i). Like this you will obtain an ensemble of 
somehow different models. I would try to do it with 5000K and 10000K 
temperature (simulated_annealing.start_temperature=10000 ; 5000K is the 

> Lastly, can the latest version of phenix.refine do SA omit maps?

No, but I think you can do kind of similar maps with Tom's (Terwilliger) 
tools. Please ask him for more details.

To get more information and examples, please look here:
(read "QuickFacts" and "Documentation")

Let me know if something is still not clear or you have problems with this.


More information about the phenixbb mailing list