03-30-22 Interchange Check-in

Participants

  • @Matt Thompson

  • @Hyesu Jang

  • @Jeffrey Wagner (Late)

Goals

  •  

Discussion topics

Item

Notes

Item

Notes

Protein-ligand (+water) system vs. ParmEd

  • OpenEye is on OpenMM 7.5x line

  • The protein HJ is using errors out with missing torsions using the toolkit and bonds using Interchange

    • Several hundred or thousand of these failures, on the protein

    • We think this is a problem with the ff14SB OFFXML file

  • HJ will share an OEB file of the protein and associated script

    • Will require oechem to load

  • JW – Seems to be a stereochemistry issue - the OEMol has formal charge and bond orders, but the OFFXML also expects defined graph stereochemistry. So the options would be:

    • Perceive stereo from 3D BEFORE passing to OFF toolkit

    • Having OFF Toolkit perceive stereo from 3D in from_openeye

    • Updating the OFFXML file to not expect specific stereo (dangerous?)

  • HJ – We usually set stereo to calculate the partial charges for small molecules, so it’s possible for us to have it defined before passing a molecule to the OFF toolkit.

    • HJ + MT test using OE3DToInternalStereo before runing from_openeye and manage to get past the initial errors.

  • HJ – I have a nonintegralchargesum error when I ran create_openmm_system (but not Interchange.from_smirnoff) - It goes out to a lot of decimal places

    • 5.629856489598751 when 6 was expected

    • JW – How would this be possible? Librarycharges are only defined to 4 decimal places, then some of them have x.xxx99999999 from floating point error. So I’m not sure how they could sum up to have that total value.

    • sum([c.m for c in interchange['Electrostatics'].get_charges().values()])

    • The issue is that the initial script was using charge_from_molecules = offprotein, and the partial charges on the oemol were nonzero (and summed to 5.6….)

  • HJ – Which tests have you done on proteins+interchange?

    • MT – Limited validation of Interchange and protein FF comparison - Hard to say what goalposts are, since there are a ton of other settings in a simulation enegine, and it’s hard to get them

    • JW –

    • HJ – If I do (protein-from-X and ligand-from-Y combined using Z) versus (protein-from-X2 and ligand-from-Y2 combined using Z2) should I get the same energy?

      • JW – Would recommend comparing

        • X=openmm Y=(OFF toolkit+Sage+create_openmm_system) Z=ParmEd

        • versus

        • X2=ff14sb_0.0.2.offxml and Y2=(OFF toolkit+Sage+Interchange.from_smirnoff) Z2=Interchange

      • JW+MT – The complicated part will be if they DISagree, there’s like a 2/3rd chance it’s an Interchange bug, but a 1/3rd chance it’s a ParmEd bug.

      • MT – Probably. I’d caution against using OpenMM’s AMBER parameter assignment as the reference, since tleap/ambertools may assign different parameters than OpenMM, but tleap/ambertools are the reference implementation. My confidence ranking for accuracy is Abmertools > OpenMM > ParmEd.

      • HJ – Suggestions for better benchmarks to do?

        • (General) – There is no “standard” dataset for system combination unfortunately. It’s probably best if HJ does the tests described above and, if we’re lucky, we’ll get the same energies out. And if not, at our next meeting we can work on teasing apart the energy differences.



  • HJ – Updating OpenMM support to new versions?

    • JW – The 0.11.0 toolkit release will

    • Pattern to support both is:

      • from simtk.openmm import X -->

      • try: from simtk.openmm import X except ImportError: from openmm import X
    • HJ – Was that the only change?

      • MT – That was 90% of them. There were some more complicated fixes (like a particular thing with element) that I had to track down.

    • !mamba install -c openeye/label/Orion oeommtools -c omnia -yq

  •  

 

  • HJ – Support for from_openmm?

    • MT – Not for a few more months.

Action items

Decisions