[phenixbb] modify_start_model.adp.set_b_iso doesn't seem to work on PDB files with ANISOU cards

Pavel Afonine pafonine at lbl.gov
Mon Jan 21 14:09:46 PST 2008

Hi Stephen,

what you are seeing is actually a feature. If you have a PDB file with a 
mixture of isotropic and anisotropic B-factors and you use a command 
"modify_start_model.adp.set_b_iso=60" the program sets all isotropic 
B-factors to 60 and leaves anisotropic ones unchanged (this is what the 
command name suggest: set_b_iso).

The easiest way to do what you want is to use phenix.pdbtools -- it is 
very powerful tool for PDB file manipulations:

1) First, convert all atoms to isotropic:
phenix.pdbtools model.pdb convert_to_isotropic=True 

2) Then set all isotropic b to a desired value:
phenix.pdbtools model.pdb adp.set_b_iso=60 

You can do these manipulations with the whole PDB file content or its 
any selected part.

I think in future we can change the behaviour of "convert_to_isotropic" 
so if you say "convert_to_isotropic=True", then it just converts all 
anisotropic B-factors to isotropic and if you say 
"convert_to_isotropic=60", then it set all b to 60 regardless anything. 
Something like this. Please let me know if you have a better idea.

For more information on phenix.pdbtools:


Stephen Graham wrote:
> Hi all,
> I just tried to reset my B values to the wilson B before TLS
> refinement (in an attampt to shake some model bias that I am sure is
> hiding somewhere in my temperature factors...).  My start model was a
> TLS-refined PDB file from phenix.refine (hence with ANISOU cards).  I
> issued the following command:
>> phenix.refine my_model.pdb my_data.mtz modify_start_model.adp.set_b_iso=60 output.prefix=my_model_resetB main.number_of_macro_cycles=0
> As far as I can tell, this should reset my B values to 60 and then
> exit.  However, when I look at the resultant PDB file the Bs for all
> the solvent molecules 60 but for the protein they are not; rather the
> protein Bs are almost identical to the starting PDB file.
> If I try to remove the TLS-derived ANISOU cards by adding the command
> line option "adp.convert_to_isotropic=true" the result is the same
> (except the output PDB file no longer has ANISOU cards).
> However, if I strip out the ANISOU cards from my starting pdb file and
> _then_ run the above command the resultant PDB file _does_ have the
> correct values for both protein and solvent.
> It seems like modify_start_model.adp.set_b_iso=60 does not work when
> atom has an ANISOU card.  The behaviour I would *expect* would be for
> the adp be reset to an 'isotropic' 60 (i.e. set the diagonal elements
> to 1 and the off-diagonals to 0).  Is this a bug, or am I doing
> something silly?
> Cheers,
> Stephen

More information about the phenixbb mailing list