[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()