Commit 130f9e95 authored by Rafal P. Wiewiora's avatar Rafal P. Wiewiora
Browse files

standardResidues

parent 368f4dff
...@@ -73,6 +73,10 @@ class PDBFile(object): ...@@ -73,6 +73,10 @@ class PDBFile(object):
metalElements = ['Al','As','Ba','Ca','Cd','Ce','Co','Cs','Cu','Dy','Fe','Gd','Hg','Ho','In','Ir','K','Li','Mg', metalElements = ['Al','As','Ba','Ca','Cd','Ce','Co','Cs','Cu','Dy','Fe','Gd','Hg','Ho','In','Ir','K','Li','Mg',
'Mn','Mo','Na','Ni','Pb','Pd','Pt','Rb','Rh','Sm','Sr','Te','Tl','V','W','Yb','Zn'] 'Mn','Mo','Na','Ni','Pb','Pd','Pt','Rb','Rh','Sm','Sr','Te','Tl','V','W','Yb','Zn']
standardResidues = ['ALA', 'ASN', 'CYS', 'GLU', 'HIS', 'LEU', 'MET', 'PRO', 'THR', 'TYR',
'ARG', 'ASP', 'GLN', 'GLY', 'ILE', 'LYS', 'PHE', 'SER', 'TRP', 'VAL',
'A', 'G', 'C', 'U', 'I', 'DA', 'DG', 'DC', 'DT', 'DI', 'HOH']
top = Topology() top = Topology()
## The Topology read from the PDB file ## The Topology read from the PDB file
self.topology = top self.topology = top
...@@ -155,7 +159,7 @@ class PDBFile(object): ...@@ -155,7 +159,7 @@ class PDBFile(object):
self.topology.createDisulfideBonds(self.positions) self.topology.createDisulfideBonds(self.positions)
self._numpyPositions = None self._numpyPositions = None
# Add bonds based on CONECT records. Bonds between metals of element specified in metalElements and standard residues are not added. # Add bonds based on CONECT records. Bonds between metals of elements specified in metalElements and residues in standardResidues are not added.
connectBonds = [] connectBonds = []
for connect in pdb.models[-1].connects: for connect in pdb.models[-1].connects:
...@@ -165,9 +169,9 @@ class PDBFile(object): ...@@ -165,9 +169,9 @@ class PDBFile(object):
if atomByNumber[i].element is not None and atomByNumber[j].element is not None: if atomByNumber[i].element is not None and atomByNumber[j].element is not None:
if atomByNumber[i].element.symbol not in metalElements and atomByNumber[j].element.symbol not in metalElements: if atomByNumber[i].element.symbol not in metalElements and atomByNumber[j].element.symbol not in metalElements:
connectBonds.append((atomByNumber[i], atomByNumber[j])) connectBonds.append((atomByNumber[i], atomByNumber[j]))
elif atomByNumber[i].element.symbol in metalElements and atomByNumber[j].residue.name not in top._standardBonds: elif atomByNumber[i].element.symbol in metalElements and atomByNumber[j].residue.name not in standardResidues:
connectBonds.append((atomByNumber[i], atomByNumber[j])) connectBonds.append((atomByNumber[i], atomByNumber[j]))
elif atomByNumber[j].element.symbol in metalElements and atomByNumber[i].residue.name not in top._standardBonds: elif atomByNumber[j].element.symbol in metalElements and atomByNumber[i].residue.name not in standardResidues:
connectBonds.append((atomByNumber[i], atomByNumber[j])) connectBonds.append((atomByNumber[i], atomByNumber[j]))
else: else:
connectBonds.append((atomByNumber[i], atomByNumber[j])) connectBonds.append((atomByNumber[i], atomByNumber[j]))
......
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