2020-09-15 Meeting notes

Date

Sep 15, 2020

Participants

  • @Matt Thompson

  • @Jeffrey Wagner

Goals

  •  

Discussion topics

Item

Notes

Item

Notes

MVP

  • Should we think about MVP as “top down” (Starting will full ultimate feature list) or “bottom up” (starting from minimal functionality and going up from there)

    • MT – Top-down would be better

    • (General) would be best for vague areas, like to_parmed, to have logic for detecting when they’re going wrong (like, if we try to translate something unsupported)

  • Should try to approach it from “top down” perspective, but focus on building well-thought-out “immortal” portions (like energy and conversion tests) that will make iterations much faster.

  • Invest in making infrastructure to answer energy-accuracy/precision questions – This will be used both in test suite and in benchmarks

  • Top-down feature list

    • Interoperability

      • Requirements:

        • Gold: Aspirational parmed replacement

        • Silver: to_parmed that can do more than we can currently, and supports all current FF features (so like vsites eventually)

        • Bronze: to_parmed that supports everything our current OMM_system → parmed pathway does and throws errors if it’s doing something it knows it can’t

    • Single point energies

      • Implementation details:

        • Argument: Coordinates

        • Argument: OpenMM or numpy

      • Requirements

        • Gold: numpy/jax ?periodic/PME implementation? ?GBSA?

        • Silver: numpy/jax valence terms + vaccuum NB

        • Bronze: OpenMM

    • ML-friendly API

      • Requirements:

        • Platinum: Documentation and tutorials for using ML frameworks to do something kinda productive with Silver.

        • Gold: Numpy-all-the-way energy evaluation (just a big matrix multiplication that eats coordinates)

        • Silver: Offering customizability for P and Q (rolled vs unrolled torsions, etc)

        • Bronze: Spitting out at least one representation of P and Q

    • Free energy calculation-supporting API

Jurisdiction with existing toolkit objects

MT wants what is effectively a “pre-” and “post-” typing Topology

  • “pre-” is a cheminformatics view of a chemical topology

  • “post-” is a more MM/free energy view

  • would give some clarity to questions like

    • “where to virtual sites go?” (only allowed in a post-, not in a pre-)

      • JW – If charge_from_molecules goes the way I think, then the molecules listed will sneakily be turned into LibraryCharges before parameterization. Maybe the same thing could be applied for API-defined vsites

        • some trickiness here since vsites could be applied non-symettrically to a symmetric molecule (though partial charges could also be the same)

    • “where are residues stored?” (again, only in post-)

      • JW - Could have TopologyHandlers that do things like split residues around peptide/disulfide bonds

    • what’s the periodicity? (pre- tracks a bool is_periodic post- stores the box vectors with units)

    • pre- could store all conformers, post- would only have one position per atom

    • other questions about bond order, partial charge, stereochemistry?

  • unclear if this must be a different object/class, different views of the same class, or maybe a single “superclass” that has some API locked down based on its state

  • JW – Maybe the central question is: What does it mean for the “post-” fields to be filled out in a “pre” topology?

Action items

Decisions