From 889d5668de835a879cffc47c5476d84fb5380687 Mon Sep 17 00:00:00 2001 From: peastman Date: Mon, 30 Sep 2024 14:35:05 -0700 Subject: [PATCH 1/2] Soft core force field includes torsions with wildcards --- devtools/createSoftForcefield.py | 46 +- pdbfixer/soft.xml | 6360 +++++++++++++++--------------- 2 files changed, 3274 insertions(+), 3132 deletions(-) diff --git a/devtools/createSoftForcefield.py b/devtools/createSoftForcefield.py index 3f4daa6..5261173 100644 --- a/devtools/createSoftForcefield.py +++ b/devtools/createSoftForcefield.py @@ -51,18 +51,20 @@ omitTypes = set() omitClasses = set() for atomType in forcefield._atomTypes: - (atomClass, mass, element) = forcefield._atomTypes[atomType] - if element is None or element == elem.hydrogen: + data = forcefield._atomTypes[atomType] + if data.element is None or data.element == elem.hydrogen: omitTypes.add(atomType) - omitClasses.add(atomClass) + omitClasses.add(data.atomClass) else: - print(' ' % (atomType, atomClass, element.symbol, mass)) + print(' ' % (atomType, data.atomClass, data.element.symbol, data.mass)) print(' ') # Print the residue templates. print(' ') for template in forcefield._templates.values(): + if template.name in ('ASH', 'CYM', 'GLH', 'HID', 'HIE', 'LYN'): + continue print(' ' % template.name) atomIndex = {} for i, atom in enumerate(template.atoms): @@ -86,8 +88,8 @@ type1 = next(iter(bonds.types1[i])) type2 = next(iter(bonds.types2[i])) if type1 not in omitTypes and type2 not in omitTypes: - class1 = forcefield._atomTypes[type1][0] - class2 = forcefield._atomTypes[type2][0] + class1 = forcefield._atomTypes[type1].atomClass + class2 = forcefield._atomTypes[type2].atomClass print(' ' % (class1, class2, bonds.length[i], bondK)) print(' ') @@ -100,9 +102,9 @@ type2 = next(iter(angles.types2[i])) type3 = next(iter(angles.types3[i])) if type1 not in omitTypes and type2 not in omitTypes and type3 not in omitTypes: - class1 = forcefield._atomTypes[type1][0] - class2 = forcefield._atomTypes[type2][0] - class3 = forcefield._atomTypes[type3][0] + class1 = forcefield._atomTypes[type1].atomClass + class2 = forcefield._atomTypes[type2].atomClass + class3 = forcefield._atomTypes[type3].atomClass print(' ' % (class1, class2, class3, angles.angle[i], angleK)) print(' ') @@ -110,17 +112,13 @@ print(' ') torsions = [f for f in forcefield._forces if isinstance(f, ff.PeriodicTorsionGenerator)][0] +wildcardType = forcefield._atomClasses[''] for torsion in torsions.proper: - type1 = next(iter(torsion.types1)) - type2 = next(iter(torsion.types2)) - type3 = next(iter(torsion.types3)) - type4= next(iter(torsion.types4)) - if type1 not in omitTypes and type2 not in omitTypes and type3 not in omitTypes and type4 not in omitTypes: - class1 = forcefield._atomTypes[type1][0] - class2 = forcefield._atomTypes[type2][0] - class3 = forcefield._atomTypes[type3][0] - class4 = forcefield._atomTypes[type4][0] - print(' ') @@ -128,12 +126,12 @@ type1 = next(iter(torsion.types1)) type2 = next(iter(torsion.types2)) type3 = next(iter(torsion.types3)) - type4= next(iter(torsion.types4)) + type4 = next(iter(torsion.types4)) if type1 not in omitTypes and type2 not in omitTypes and type3 not in omitTypes and type4 not in omitTypes: - class1 = forcefield._atomTypes[type1][0] - class2 = forcefield._atomTypes[type2][0] - class3 = forcefield._atomTypes[type3][0] - class4 = forcefield._atomTypes[type4][0] + class1 = forcefield._atomTypes[type1].atomClass + class2 = forcefield._atomTypes[type2].atomClass + class3 = forcefield._atomTypes[type3].atomClass + class4 = forcefield._atomTypes[type4].atomClass print(' - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -20,1273 +174,1449 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1300,12 +1630,134 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + @@ -1342,148 +1794,204 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - - + - - - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1503,208 +2011,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - + - + - - - + + - - - - + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -1724,391 +2136,390 @@ - - + - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + + + + - - - - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - + + - - + + - + - + + - + + - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + - + - - + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - + + - + - + + - + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + + - + + + + + + + + + + + + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + + - + - + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + + + - + + + + + + + + + + + @@ -2147,182 +2558,181 @@ - - - - - - - - - - - - - + + + + + + + + + + - + - - - + - - + - - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - + + + + - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - + + - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - + - - - - - - - - - - - - - - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - + + + + + + + + + + + + + - + + + + - - - - - - - - - - - + + + + + + + + + - - + - - - - - + @@ -2348,139 +2758,23 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - + - - - + - - - - - - - - - - - - - - - - - - - - - - + @@ -2500,805 +2794,703 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - - - + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + - + - - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - + + + + - - - - - - - - - - - - - - + - - - - - - - - - + + + + + + + + + + + - + - + + + - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - + - - - - - - - - - - - - + - - - - - - - - - + + + + + + + + + - - + + - - - - - + + + + + + + + + + - - - - + + + + + + + - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - + + + - - - - - - - - - - - - - - - - + - - - - - - - - - - + + + + + + + + + + + + - + + - + + - - + + - - - - - - - - - - - - + + + + + + + + + - - - - - - + - - - - - - + + + + + + + - - - + + + + - - - - - - - - - + + + + + + + + - + - - - - - + + + - - - - - - - + + + + + + + + + + + + + + + - + + + - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + - + - + + + - + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - + + - - - - - - - - - - + + + + + + + + + - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + + + - + + + - + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + + - - + + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + + + - + + + + + + + + + + + + + + + + @@ -3339,133 +3531,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3503,398 +3568,477 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + + - - + + - + - + + - + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + + + + - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - + + - - - + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + + + + - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + + - + + - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - + + - - - - - - - - - - - - + + + + + + + + + + + + + - + + - + + - + - - - - - - - + + + + + + + + - - - + + + + + + + + @@ -4111,12 +4255,12 @@ - - - + + + - + @@ -4143,64 +4287,64 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4217,10 +4361,10 @@ - - - - + + + +