openmm / pdbfixer

PDBFixer fixes problems in PDB files
Other
464 stars 114 forks source link

Residues are not recorded correctly #260

Open Ruibin-Liu opened 1 year ago

Ruibin-Liu commented 1 year ago

An example is 3CBJ chain A. It begins as {'57P': 'PHE', '58P': 'THR', '59P': 'GLU', '60P': 'ASP', '61P':'LEU', '62P':'LYS', '1': 'LEU', '2':'PRO', ...}. P is the insertion code but the residues 57-62 are in the SEQRES record so it's a problem in pdbfixer that the ids will be [58, 60, 62, 64, 66, 68, 7, 8,...], which makes minResidue wrong because pdbfixer uses int type for residue ids. In the end, the residues will begin from residue 7 to end and the added residues in the end will begin at the wrong resid.

peastman commented 1 year ago

I don't think I've ever seen a PDB file before where the residue IDs within a single chain weren't even monotonically increasing. How would one match them up to the SEQRES if you can't rely on the residue IDs to indicate sequence?