[Bioperl-l] pdb.pm bug in atom/residue recognition

Dave Howorth dhoworth at mrc-lmb.cam.ac.uk
Wed Jul 30 07:12:50 EDT 2003


I was just browsing this code and think I have found a bug.
(# $Id: pdb.pm,v 1.9 2002/10/22 07:38:44 lapp Exp $ #)

In sub _read_PDB_coordinate_section there is a section of code that 
determines whether the atom is part of a new residue:

1202   my $res_name_num = $resname."-".$resseq;
1203   if ($res_name_num ne $residue_name) { # new residue

It tries to establish uniqueness from the combination of the residue 
name and the sequence number, but this won't work if two conditions occur:
(1) there are two adjacent residues of the same type (so $resname does 
not change from one residue to the next)
(2) there are insertion codes on the sequence numbers (so $resseq does 
not change from one residue to the next).

I believe the correct definition of $res_name_num is:

1202   my $res_name_num = $resname."-".$resseq.$icode;

The insertion code needs to be used every time the sequence number is 
used. A sequence number alone is not a unique identifier, the 
combination is.

Cheers, Dave
Dave Howorth
MRC Centre for Protein Engineering
Hills Road, Cambridge, CB2 2QH
01223 252960

More information about the Bioperl-l mailing list