[MMTK] findHydrogenPositions()

Kyle Krull krullk@purdue.edu
Thu, 26 Sep 2002 17:31:44 -0500 (EST)


I have found a case where findHydrogenPositions() does not seem to work.
The function does not raise an exception, but it also does not assign a
position to one H.  I found this case while doing substitutions, which
creates one special case that is modeled below.

	The special case occurs when there is a Pro at the N-terminus
position in the chain.  If I replace the Pro with a different amino acid,
a position must be assigned for the new H_1 atom (proline_nt does not
contain an H_1 atom from which to copy the position).  After replacing the
residue, I call findHydrogenPositions(), which does not assign a position
to H_1 in the new residue.
	I have used the same procedure when replacing Pro residues in the
middle of the chain (for H instead of H_1), and it has worked.  Was the
function findHydrogenPositions() not meant to work this way, or is there a
bug?

Kyle Krull




from MMTK import *
from MMTK.PDB import PDBConfiguration
from MMTK.Proteins import *

pdbFile = '../pdb/1PPF.pdb' #PDB file containing enzyme and inhibitor

#Build PDBConfiguration and PeptideChains for both inhibitor and enzyme
config = PDBConfiguration(pdbFile)
structureChains = config.createPeptideChains()
inhibitChain = structureChains[1]
replaceRes = inhibitChain[0]
H1 = replaceRes.atoms[2]
H2 = replaceRes.atoms[3]

#Set H_1 position to None.  Try to find H position
H1.setPosition(None)
inhibitChain.findHydrogenPositions()
print 'H_1 Position:', H1.position(), '\n'  #Position is still None

#Also set H_2's position to None.  Find new H positions
H2.setPosition(None)
inhibitChain.findHydrogenPositions()
print 'H_1 Position:', H1.position() #Position is now set
print 'H_2 Position:', H2.position()