ATOM records have fixed format so you can (and should) use string
slicing instead, like so (one-liner)

serial, aname, altloc, resn, chid, resi, insCode, x, y, z, occ, b,
element, q = line[6:11], line[12:16], line[16], line[17:20], line[21],
line[22:26], line[26], line[30:38], line[38:46], line[46:54],
line[54:60], line[60:66], line[76:78], line[78:80]

or with more explicit typing

serial, aname, altloc, resn, chid, resi, insCode, x, y, z, occ, b,
element, q = int(line[6:11]), line[12:16].strip(), line[16].strip(),
line[17:20].strip(), line[21], int(line[22:26]), line[26],
float(line[30:38]), float(line[38:46]), float(line[46:54]),
float(line[54:60]), float(line[60:66]), line[76:78].strip(), line[78:80]

Cheers,

Ed.



On Thu, 2013-06-06 at 04:37 +0000, GRANT MILLS wrote:
> Dear CCP4BB,
> 
> I'm trying to write a simple python script to retrieve and manipulate
> PDB data using the following code:
> 
> #for line in open("PDBfile.pdb"):
> #    if "ATOM" in line:
> #        column=line.split()
> #        c4=column[4]
> 
> and then writing to a new document with:
> 
> #with open("selection.pdb", "a") as myfile:
> #        myfile.write(c4+"\n")
> 
> Except for if the PDB contains columns which run together such as the
> occupancy and B-factor in the following:
> 
> ATOM    608  SG  CYS A  47      12.866 -28.741  -1.611  1.00201.10
> S  
> ATOM    609  OXT CYS A  47      14.622 -24.151  -1.842  1.00100.24
> O 
> 
> My script seems to miscount the columns and read the two as one
> column, does anyone know how to avoid this? (PS, I've googled this
> like crazy but I either don't understand or the link is irrelevant)
> 
> Any advice would help.
> Thanks for your time,
> Grant
> 

-- 
Edwin Pozharski, PhD, Assistant Professor
University of Maryland, Baltimore
----------------------------------------------
When the Way is forgotten duty and justice appear;
Then knowledge and wisdom are born along with hypocrisy.
When harmonious relationships dissolve then respect and devotion arise;
When a nation falls to chaos then loyalty and patriotism are born.
------------------------------   / Lao Tse /

Reply via email to