[cctbxbb] Writing a pdb file from an xray_structure object

Pavel Afonine pafonine at lbl.gov
Wed Dec 12 09:39:19 PST 2012


Hi Claudia,

> i have been using the xray_structure_simple() method to get an 
> xray.structure object from a pdb object and use it to perform some 
> calculations on it, one of them being expand it to P1. After, i tried 
> to write a new pdb out of this xray_structure in P1. For that purpose, 
> i used the following method:
>
> cctbx.xray.structure.as_pdb_file(self, remark=None, remarks=[], 
> fractional_coordinates=False, resname=None, connect=None)
>
> but using it both with the original xray structure and with the one on 
> P1 I get very bad lookings pdbs, with incorrect formating, like that 
> for the case of the one in P1:
>
> ATOM      1 PDB= PDB     1      12.330  -6.948 -40.820  1.00 19.26     
>       N
> ATOM      2 PDB= PDB     2      49.988  55.370   3.948  1.00 19.26     
>       N
> ATOM      3 PDB= PDB     3      36.092  30.710  93.483  1.00 19.26     
>       N
> ATOM      4 PDB= PDB     4      55.370  49.988 175.123  1.00 19.26     
>       N
> ATOM      5 PDB= PDB     5      30.710  36.092  85.587  1.00 19.26     
>       N

xray_structure object does not have information about 
atom/residue/chain/etc labels. Conceptually, it is supposed to contain 
minimally necessary amount amount of data in order to calculate Fcalc. 
It gets stripped off the moment you go from pdb input object to 
xray_structure_simple().

To write a meaningful PDB file you need to use PDB hierarchy machinery. 
For details, see "cctbx PDB handling tools" article here:
http://phenix-online.org/newsletter/CCN_2010_07.pdf

There are numerous examples scattered across cctbx code of going back 
and forth between xray_structure object and pdb files.

Pavel



More information about the cctbxbb mailing list