2021-11-17 Mitchell/Wagner Check in

Participants

  • @Jeffrey Wagner

  • @Josh Mitchell

Discussion topics

Item

Notes

Item

Notes

General updates

  • JM – I’m already over time for this week, so this meeting will be my last thing.

    • JW – Sounds good. Thanks for the hard work!

  • JW – Also, thanks for helping out Danielle with bespokefit (deleting the bespoke-executor folder)

    • JM – Thanks!

  • JM – Worked on pytest-oxide. This lets us test code blocks from markdown files.

    • JW – This looks great. I’d love for this to get integrated into the toolkit and general org docs.

  • JM – I’d also love to implement myst support in autodoc and vice versa – This would be a great way to give back to the OSS community.

    • JW – Sounds great, as long as qcsubmit and bespokefit take precedence when you have the right kind of brainpower, that sounds great to me.

  • JM – I’d like to push some changes into the MolSSI cookiecutter to use a more automated auto-documented API template.

    • JW – Looks great. This would be a great thing to push upstream – I was confused at first that the cookiecutter DIDN’T give me auto-generated API docs.

To dos

  • JW – Don’t worry about interchange blog post – I told Matt that I just wanted him to have a conda env that can be deployed, and he’s taking care of it

  • ELF10 issue - Context:

https://openforcefieldgroup.slack.com/archives/C01G0J25S1Z/p1636742761030600
  •  

  • Electostatically Least FInteracting conformers – The toolkit API point Molecule.apply_elf_conformer_selection is used for every input molecule to bespokefit. However, it discards all conformers with a particular configuration of COOH groups (based on whether the H is cis or trans). In practice,this leads to

    • (Using OE backend) Weird Openeye errors that somehow evade out logic to detect when all the conformers are pruned for that hydrogen thing (I think):

from openff.toolkit.topology import Molecule offmol = Molecule.from_smiles("c1ccccc1CCC(O)=O") from openmm import unit offmol.generate_conformers(n_conformers=10, rms_cutoff=0.05*unit.angstrom) print(offmol.n_conformers) offmol.apply_elf_conformer_selection()
~/projects/OpenForceField/openff-toolkit/openff/toolkit/utils/openeye_wrapper.py in apply_elf_conformer_selection(self, molecule, percentage, limit) 1814 # non-fatal warnings to the correct logger. 1815 if not status: -> 1816 raise RuntimeError("\n" + output_string) 1817 elif len(output_string) > 0: 1818 logger.warning(output_string) RuntimeError:

Cases where RDKit also prunes all the conformers

from openff.toolkit.utils import RDKitToolkitWrapper rdktkw = RDKitToolkitWrapper() rdktkw.apply_elf_conformer_selection(offmol)

Discarding conformer 0: Molecules which contain COOH functional groups in a trans configuration are discarded by the ELF method.

Three subcomponents of this problem:

  1. (not critical) Openeye is failing, I THINK because none of the input conformers are valid, but in whatever case, none of our error handling is catching it, and we’re raising an emtpy RuntimeError. It would be great if this error was more informative

  2. (not critical) RDKit might be disagreeing with OpenEye?

  3. (critical) In a pinch, we should manually rotate the torsions on invalid conformers to make them valid, so that bespokefit will “always succeed” and not throw weird ELF-related errors at users. Fixes would go into the apply_elf_conformer_selection methods of RDKitToolkitWrapper and OpenEyeToolkitWrapper

  • Resources:

    • RDKit ELF problematic-conformer analysis

    • Tests for RDKit ELF conformer analysis

  • Conda env yamls for each release – Basically, when the single file installer builds, have it export a conda yaml with pinned versions of all the deps so that people in the future can recreate a guaranteed-working version.

To dos

  • (low) Check main website for broken links

  • (low) Conda env yamls for each release (automated inside of Toolkit’s single-file-installer action)

  • (medium) Spec migration PR part 2

  • (medium) ELF10 thing

  • (high) Bespokefit users guide (in progress)

  • (high) QCSubmit users guide

Action items

Decisions