openmm / pdbfixer

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

addMissingAtoms() adds a linear chain of residues to protein termini in PDB ID 2a07 #220

Closed lancelot-droid closed 3 years ago

lancelot-droid commented 3 years ago

Hello there!

I am trying to run PDBFixer on structure PDB ID 2a07 using the following commands:

from simtk.openmm.app import from simtk.openmm import from simtk.unit import * from sys import stdout from pdbfixer.pdbfixer import PDBFixer

fixer = PDBFixer(pdbid='2a07') fixer.findMissingResidues() fixer.findNonstandardResidues() fixer.replaceNonstandardResidues() fixer.removeHeterogens(keepWater=False) fixer.findMissingAtoms() fixer.addMissingAtoms() fixer.addMissingHydrogens(pH=7.0)

The output structure contains several new residues, arranged in a linear chain, added to protein termini. I have traced the bug to addMissingAtoms() but cannot explain this behavior.

I welcome your guidance.

PS. You can compare the input (top image) and output (bottom image) structures below to see the linear chain of new residues added to the protein's termini.

input output

peastman commented 3 years ago

That means those residues are listed in the SEQRES section of the input file. You tell it to add missing residues, so it does. It has no idea what their conformation should be, so it just adds them sticking outward in a direction that won't clash with anything else. When there are missing residues at the end of a chain, that often means they're flexible and couldn't be resolved in the electron density.

lancelot-droid commented 3 years ago

Thanks for clarifying. I'll just download structures as PDB and filter out non ATOM and HETATM records.

peastman commented 3 years ago

See the manual for information about this. If you don't want to add missing residues, remove the call to findMissingResidues() and replace it with

fixer.missingResidues = {}

There's also an example that shows how to add missing residues in the middle of the chain but not at the ends.

lancelot-droid commented 3 years ago

Awesome. Thanks. I'll spend some more time with the manual.