"vscode:/vscode.git/clone" did not exist on "30fa6ecb8106793ce9464f2c0ab0264c1ea6805e"
Commit 8c8dbed1 authored by João Rodrigues's avatar João Rodrigues
Browse files

Fix squaring of units. Ensure addSolvent passes the right data structure to addIons

parent b9936fb9
......@@ -357,7 +357,7 @@ class Modeller(object):
n_trials = 10
if n_trials == 0:
raise ValueError('Could not add more than {} ions to the system'.format(addedIons))
raise ValueError('Could not add more than {} ions to the system'.format(numAddedIons))
# Replace waters/ions in the topology
modeller.delete(toReplace)
......@@ -366,7 +366,7 @@ class Modeller(object):
element = (positiveElement if i < numPositive else negativeElement)
newResidue = modeller.topology.addResidue(element.symbol.upper(), ionChain)
modeller.topology.addAtom(element.symbol, element, newResidue)
modeller.positions.append(replaceableMols[water] * nanometer)
modeller.positions.append(replaceableMols[water])
# Update topology/positions
self.topology = modeller.topology
......@@ -622,8 +622,18 @@ class Modeller(object):
self.topology = newTopology
self.positions = newPositions
# Convert water list to dictionary (residue:position)
waterPos = {}
_oxygen = elem.oxygen
for chain in newTopology.chains():
for residue in chain.residues():
if residue.name == 'HOH':
for atom in residue.atoms():
if atom.element == _oxygen:
waterPos[residue] = newPositions[atom.index]
# Add ions to neutralize the system.
self._addIons(forcefield, addedWaters, positiveIon=positiveIon, negativeIon=negativeIon, ionicStrength=ionicStrength, neutralize=neutralize)
self._addIons(forcefield, waterPos, positiveIon=positiveIon, negativeIon=negativeIon, ionicStrength=ionicStrength, neutralize=neutralize)
class _ResidueData:
"""Inner class used to encapsulate data about the hydrogens for a residue."""
......
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