"platforms/cuda2/src/CudaParameterSet.cpp" did not exist on "72d6b6a90dac6f459516c22f4551ca6991d845b3"
Commit 7abba925 authored by Evan Pretti's avatar Evan Pretti
Browse files

Add check for consistent force field/solvent model version

parent 166c5963
......@@ -103763,4 +103763,12 @@
<NBFixPair epsilon="0.8631592000000001" sigma="0.25134925534893393" type1="MG" type2="SO"/>
<NBFixPair epsilon="0.8414024" sigma="0.25219560913116723" type1="MG" type2="SS1"/>
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
......@@ -121,4 +121,12 @@
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OC2D2" type2="SOD"/>
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OG2D2" type2="SOD"/>
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
......@@ -121,4 +121,12 @@
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OC2D2" type2="SOD"/>
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OG2D2" type2="SOD"/>
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
......@@ -121,4 +121,12 @@
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OC2D2" type2="SOD"/>
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OG2D2" type2="SOD"/>
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
......@@ -127,4 +127,12 @@
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OC2D2" type2="SOD"/>
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OG2D2" type2="SOD"/>
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
......@@ -127,4 +127,12 @@
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OC2D2" type2="SOD"/>
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OG2D2" type2="SOD"/>
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
......@@ -129,4 +129,12 @@
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OC2D2" type2="SOD"/>
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OG2D2" type2="SOD"/>
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
......@@ -129,4 +129,12 @@
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OC2D2" type2="SOD"/>
<NBFixPair epsilon="0.31388368000000005" sigma="0.28419669108676826" type1="OG2D2" type2="SOD"/>
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
......@@ -127,4 +127,12 @@
<NBFixPair epsilon="0.31388368000000005" sigma="0.2877602859593296" type1="OG2D2" type2="SOD"/>
<NBFixPair epsilon="0.31388368000000005" sigma="0.28152399493234725" type1="OG2P1" type2="SOD"/>
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
......@@ -259418,4 +259418,12 @@ if harmonic_impropers:
harmonic_force.addTorsion(*improper)
 
sys.addForce(harmonic_force)</Script>
<InitializationScript>
EXPECTED_VERSION = "charmm36_2024"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
\ No newline at end of file
......@@ -449,4 +449,12 @@
<NBFixPair class1="OC2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
<NBFixPair class1="OG2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36_2024"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
\ No newline at end of file
......@@ -449,4 +449,12 @@
<NBFixPair class1="OC2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
<NBFixPair class1="OG2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36_2024"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
\ No newline at end of file
......@@ -449,4 +449,12 @@
<NBFixPair class1="OC2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
<NBFixPair class1="OG2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36_2024"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
\ No newline at end of file
......@@ -455,4 +455,12 @@
<NBFixPair class1="OC2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
<NBFixPair class1="OG2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36_2024"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
\ No newline at end of file
......@@ -455,4 +455,12 @@
<NBFixPair class1="OC2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
<NBFixPair class1="OG2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36_2024"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
\ No newline at end of file
......@@ -458,4 +458,12 @@
<NBFixPair class1="OC2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
<NBFixPair class1="OG2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36_2024"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
\ No newline at end of file
......@@ -458,4 +458,12 @@
<NBFixPair class1="OC2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
<NBFixPair class1="OG2D2" class2="SOD" epsilon="0.31388368000000005" sigma="0.28419669108676826" />
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36_2024"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
\ No newline at end of file
......@@ -491,4 +491,12 @@
<NBFixPair class1="CAL" class2="OC2D2" epsilon="0.50208" sigma="0.28793846570295767" />
<NBFixPair class1="CAL" class2="OG2D2" epsilon="0.50208" sigma="0.28793846570295767" />
</LennardJonesForce>
<InitializationScript>
EXPECTED_VERSION = "charmm36_2024"
if hasattr(self, "_charmm_ff_version"):
if self._charmm_ff_version != EXPECTED_VERSION:
raise RuntimeError(f"CHARMM force field versions ({self._charmm_ff_version} and {EXPECTED_VERSION}) incompatible")
else:
self._charmm_ff_version = EXPECTED_VERSION
</InitializationScript>
</ForceField>
\ No newline at end of file
......@@ -1391,6 +1391,9 @@ END"""))
"""Tests that the CHARMM force fields are capable of parameterizing systems."""
charmm_models = ("charmm36", "charmm36_2024")
water_models_3 = ("water", "spce", "tip3p-pme-b", "tip3p-pme-f")
water_models_4 = ("tip4p2005", "tip4pew")
water_models_5 = ("tip5p", "tip5pew")
# Checks that the numbers of various types of terms in a system matches expected counts.
def check_system(system, particle_count, site_count, constraint_count, bond_count, angle_count, cmap_count, exception_count, override_count, drude_count, screen_count):
......@@ -1420,13 +1423,30 @@ END"""))
pdb_peptide_4 = PDBFile("systems/test_charmm_peptide_4.pdb")
pdb_peptide_5 = PDBFile("systems/test_charmm_peptide_5.pdb")
for charmm_model in charmm_models:
for water_model in ("water", "spce", "tip3p-pme-b", "tip3p-pme-f"):
for water_model in water_models_3:
check_system(ForceField(f"{charmm_model}.xml", f"{charmm_model}/{water_model}.xml").createSystem(pdb_peptide_3.topology), 1136, 0, 984, 234, 249, 8, 1727, 353, 0, 0)
for water_model in ("tip4p2005", "tip4pew"):
for water_model in water_models_4:
check_system(ForceField(f"{charmm_model}.xml", f"{charmm_model}/{water_model}.xml").createSystem(pdb_peptide_4.topology), 1464, 328, 984, 234, 249, 8, 2711, 353, 0, 0)
for water_model in ("tip5p", "tip5pew"):
for water_model in water_models_5:
check_system(ForceField(f"{charmm_model}.xml", f"{charmm_model}/{water_model}.xml").createSystem(pdb_peptide_5.topology), 1792, 656, 984, 234, 249, 8, 4023, 353, 0, 0)
def test_CharmmVersionMismatchCheck(self):
"""
Tests that CHARMM force fields cannot be loaded with the wrong water model versions.
"""
charmm_models = ("charmm36", "charmm36_2024")
water_models = ("water", "spce", "tip3p-pme-b", "tip3p-pme-f", "tip4p2005", "tip4pew", "tip5p", "tip5pew")
for base_charmm_model in charmm_models:
for water_charmm_model in charmm_models:
if base_charmm_model != water_charmm_model:
for water_model in water_models:
with self.assertRaises(Exception):
ForceField(f"{base_charmm_model}.xml", f"{water_charmm_model}/{water_model}.xml")
with self.assertRaises(Exception):
ForceField(f"{water_charmm_model}/{water_model}.xml", f"{base_charmm_model}.xml")
def test_CharmmPolar(self):
"""Test the CHARMM polarizable force field."""
pdb = PDBFile('systems/ala_ala_ala_drude.pdb')
......
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