> > #for line in open("PDBfile.pdb"): > # if "ATOM" in line: > # column=line.split() > # c4=column[4] If you're dealing with a pdb that may have REMARK lines, you're better off using "if line.startswith('ATOM') or line.startswith('HETATM')" for your conditional here. I'd also use the string slicing approach Ed recommended to handle the column formatting. The default options for "line.split()" is equivalent to splitting on whitespace; if there's no whitespace between columns it'll fail. > > 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 >