MT – Was mostly quiet, not crazy productive, but nothing terrible happened. BSwope had questions about bespokefit deployment, turns out he was installing from testing yamls (he didn’t get this from docs, it just seemed like the right thing to do), expecting to hear back from him about whether conventional install pathways work.
MT – Some improvements that could be made re: using bespokefit on HPC.
JW – If it’s docs changes then I’m kinda favorable about this, but if it’s code changes then I’m not.
MT – In last week’s bespokefit meeting, JH rattled off a bunch of tips about how to get bespokefit running on HPC that we should put into the docs. SB and JH volunteered to do it but I’ll take responsibility for poking them to get it over the finish line.
Re: partial charge assignment bug - This could be a good time to move more caching into OFFTK
MT – Specific proposal?
JW – Have the Toolkit’s assign_partial_charges have an lru cache, using the ordered connection table hash for molecule identity instead of mapped smiles (since it’s less computationally complex and doesn’t have external deps)
MT – I’m wary of implementing caching in Toolkit’s assign_partial_charges - There’s so much traffic on that route that bugs would be really bad.
JW – Sounds reasonable, I won’t plan to change this in upcoming development
MT – Think this could be time to start planning for an API-breaking release. So Molecule.__hash__ could become the method you’re describing.
JW – I think the current behavior of Molecule.__hash__ captures a plurality of what people would expect (do they want coords? aromaticity? just conn table? resonance enumeration?). I think to_smiles as a default hash isn’t perfect but it captures the plurality of what users would expect.
MT – Think it’s wrong to frame hashing in the same light as equality. It’s inconvenient but not fatal for hashes to miss collisions, but it’s really bad for them to have false collisions.
JW – This is a good point, I need to think on this. Details about coords and resnames, other “non chemical” data
MT – Yeah, it’s innocuous if a chemically identical mol with different resnames misses a collision.
(We’ll keep thinking on these)
MT – Could update interchange to use ordered connection table hash instead of mapped smiles.
JW – Given that we haven’t resolved discussion above, I’d recommend just staying on your previous trajectory here.
Did OpenFE reach out to ask for Interchange integration help?
MT – No official contact, but some informal communication and I think they’re preparing a formal engagement. Some issues are bubbling up that I think we should give attention:
OFF AM1BCC ignoring input conformers - So they put in a molecule with at least one conformer, but it can’t have a conf generated by RDKit, then they get a conformer generation error, even though they provided a valid conformer for the molecule. SMIRNOFF spec doesn’t say what to do in this situation. cc OFFTK 1741
Options are:
Have downstream devs do a try/except that falls back to doing assign_partial_charges on their specific mols, then call create_openmm_system with charge_from_molecules.
Add fallback logic into Interchange
Add fallback logic into Toolkit
(orthogonally) Change the smirnoff spec to describe what should/does happen
JW – I’m slightly in favor of option 3 (fix in toolkit), but want to sleep on it
Some good informal back and forth with IA, still waiting on a formal sit-down though. Mostly interested in finding a way for SMIRNOFF to work with old AMBER FFs in OpenMM (not even OMMFFs).
Generally, I think we could benefit them a lot by occasionally reviewing their code and prevent massive missteps.
JW – Strongly agree, please proceed with this, and I’ll try to find some time as well.
How’s the stack been? Smoke to keep an eye on? (Particularly - new QCSubmit+Bespokefit?)
MT – No particular order that you should review notifications. Nothing super negative on new QCSubmit. Still need to update recharge. Patched QCFractal to have pydantic import guards, they just need to make a release.
New BespokeFit release, uses new ForceBalance but old QCF and QCP. So we still need to get new BespokeFit out.
Bespokefit docs had bad one liner installs that brought in invalid QCF versions. Could be fixed by this repodata patch, but that didn’t get merged, so I updated one-liners in docs. Currently mamba create openff-bespokefit should pull bespokefit 0.2.3 and be fine, but with other constraints it might resolve to eg bespokefit 0.2.2 and QCP 0.50.
LM led some QC-dataset-submission calls and DD helped coordinate handoff. LW submitted a multi-Br datasets and they debugged problems, dataset is now complete (took like 4 hours).
Still unsure about AMBER vsites stuff. I’ll try to get a hold of JSwails. The DCerutti mdgx pathways are strange - Not present in parmed, don’t work in sander. Even the 4-site water implementation is confusing. Whenever I try to go deep with AMBER stuff, it turns out I have to talk to someone, so progress here has been halting.
Did you end up checking in with JM?
MT – Chatted around week 2, some talk about using fancy new typing stuff to make pydantic+units simpler. You’d given him some things to do, I gave some pointers on various things. Didn’t hear much in later days, turns out he was sick. Saw some motion recently and I offered help and to-dos if he needed guidance. Sounds like he was working a lot on grant, not much progress to report on with OpenFF work.
Did DM have you present to ad board?
MT – Yes, I used the same template and made+presented this update
JW – Looks great, thanks!
MT – Could I take vacation from Dec 7-13 and week of 25?