Closed primaryodors closed 5 months ago
Waiting on TAAR8 cadaverine test. All other tests are good.
PDB file: pdbs/TAAR/TAAR8.active.pdb
Ligand: sdf/cadaverine.sdf
Static dock - no path nodes.
Pose: 1
Node: 0
# Binding energies:
BENERG:
Ser88: 1.8425
Arg91: 4.24292
Cys104: 0.253095
His107: -0.492414
Ser108: -1.07432
Asp111: -56.5733
Val112: -0.0679735
Ala113: -0.00938871
Cys115: 0.0367323
Tyr116: -0.787112
Tyr162: 0.0041697
Phe167: -0.0335289
Ile191: -0.019613
Val193: -0.0218828
Trp197: -0.27025
Val198: 1.2609
Asp201: -40.1142
Phe202: 0.0425035
Phe205: -0.0184017
Tyr273: 6.83868
Thr274: -0.0055198
Ile277: -0.258256
Tyr292: -0.265052
Cys296: -0.493967
Ala299: -0.0173632
Tyr300: -1.81705
Total ionic: -92.5274
Total H-bond: -17.777
Total pi stack: -0
Total polar-pi and cation-pi: -0
Total metal coordination: -0
Total van der Waals: -2.49455
Total: -77.2427
Previously, an ionic bond between conjugated ions would be counted multiple times, once for each pair of atoms that could interact. For example, the bond between a carboxylate ion and a guanidinium group could include the interactions between each oxygen atom and each hydrogen atom, each oxygen and each nitrogen, etc. The result was ionic bonds routinely being calculated as being several hundred kJ/mol in strength, when a typical ionic bond under ideal conditions should be at most around 60 kJ/mol.
This PR offers a solution by keeping track of each conjugated system and, if an ionic bond is measured between it and any oppositely charged ion, marking the conjugation as "spent" until the next time intermolecular forces are measured. The OR51E2 propionate test elucidates the change, with hydrogen bonding strength exceeding ionic bond strength, as it should, compared to the previous result in which the reverse was the case.
Still, this PR is not a perfect solution, as it operates on a first-come first-serve basis, i.e. the interaction between whichever pair of atoms from the ions is first to be processed is the only ionic interaction to be calculated for either ion. Suppose a guanidinium group were placed between two carboxylate ions, only one side will register an ionic interaction. The ideal would be to split up the charge between all interacting atoms of all interacting molecules, weighted by their distances and anisotropies. As that would be a large coding project, with the potential to result in a performance hit, and since hydrogen bonds can still be figured between oppositely charged organic ions, this simpler solution is adequate and preferable.