Unverified Commit 1a67542e authored by Evan Pretti's avatar Evan Pretti Committed by GitHub
Browse files

Make distinct parameter dictionaries for _TemplateAtomData by default (#5091)

parent 05472c9a
...@@ -744,11 +744,11 @@ class ForceField(object): ...@@ -744,11 +744,11 @@ class ForceField(object):
class _TemplateAtomData(object): class _TemplateAtomData(object):
"""Inner class used to encapsulate data about an atom in a residue template definition.""" """Inner class used to encapsulate data about an atom in a residue template definition."""
def __init__(self, name, type, element, parameters={}): def __init__(self, name, type, element, parameters=None):
self.name = name self.name = name
self.type = type self.type = type
self.element = element self.element = element
self.parameters = parameters self.parameters = {} if parameters is None else parameters
self.bondedTo = [] self.bondedTo = []
self.externalBonds = 0 self.externalBonds = 0
......
...@@ -804,6 +804,9 @@ class TestForceField(unittest.TestCase): ...@@ -804,6 +804,9 @@ class TestForceField(unittest.TestCase):
forcefield = ForceField('amber99sb.xml', 'tip3p.xml', StringIO(simple_ffxml_contents)) forcefield = ForceField('amber99sb.xml', 'tip3p.xml', StringIO(simple_ffxml_contents))
# Get list of unique unmatched residues. # Get list of unique unmatched residues.
[templates, residues] = forcefield.generateTemplatesForUnmatchedResidues(pdb.topology) [templates, residues] = forcefield.generateTemplatesForUnmatchedResidues(pdb.topology)
# Make sure template atom parameter dictionaries are distinct objects.
parameters = [atom.parameters for template in templates for atom in template.atoms]
self.assertEqual(len(set(map(id, parameters))), len(parameters))
# Add residue templates to forcefield. # Add residue templates to forcefield.
for template in templates: for template in templates:
# Replace atom types. # Replace atom types.
......
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