"wrappers/vscode:/vscode.git/clone" did not exist on "b3be7aecfd3b98a68c503e333bf6f9ea7b41abee"
Commit df60bf0d authored by Peter Eastman's avatar Peter Eastman
Browse files

Use PDB 3.0 nomenclature for the Topology created by AmberPrmtopFile

parent 6299521b
...@@ -5,6 +5,7 @@ __author__ = "Peter Eastman" ...@@ -5,6 +5,7 @@ __author__ = "Peter Eastman"
__version__ = "1.0" __version__ = "1.0"
from simtk.openmm.app import Topology from simtk.openmm.app import Topology
from simtk.openmm.app import PDBFile
from simtk.openmm.app.internal import amber_file_parser from simtk.openmm.app.internal import amber_file_parser
import forcefield as ff import forcefield as ff
import element as elem import element as elem
...@@ -30,15 +31,24 @@ class AmberPrmtopFile(object): ...@@ -30,15 +31,24 @@ class AmberPrmtopFile(object):
# Add atoms to the topology # Add atoms to the topology
PDBFile._loadNameReplacementTables()
lastResidue = None lastResidue = None
c = top.addChain() c = top.addChain()
for index in range(prmtop.getNumAtoms()): for index in range(prmtop.getNumAtoms()):
resNumber = prmtop.getResidueNumber(index) resNumber = prmtop.getResidueNumber(index)
if resNumber != lastResidue: if resNumber != lastResidue:
lastResidue = resNumber lastResidue = resNumber
resName = prmtop.getResidueLabel(iAtom=index) resName = prmtop.getResidueLabel(iAtom=index).strip()
if resName in PDBFile._residueNameReplacements:
resName = PDBFile._residueNameReplacements[resName]
r = top.addResidue(resName, c) r = top.addResidue(resName, c)
atomName = prmtop.getAtomName(index) if resName in PDBFile._atomNameReplacements:
atomReplacements = PDBFile._atomNameReplacements[resName]
else:
atomReplacements = {}
atomName = prmtop.getAtomName(index).strip()
if atomName in atomReplacements:
atomName = atomReplacements[atomName]
# Try to guess the element. # Try to guess the element.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment