2021-04-12 Pulido/Wagner Meeting notes

Date

Apr 12, 2021

Participants

  • @Jeffrey Wagner

  • @Iván Pulido

Discussion topics

Item

Notes

Item

Notes

Project planning and breaking down into 1-5 day chunks

  • Scope of changes

    • Possibly a new set of functionality for things like assigning bond orders to a protein and holding hierarchy data in an openFF molecule

    • Lots of changes in topology.py

    • Probably some changes in molecule.py

    • Adding a new example showing how to load+use a protein

    • A small number of changes in other files

    • Lots of tests

  • Gather requirements

    • Major users – Simon Boothroyd (maybe), Matt Thompson (might need more time to see what system/exporters need)

    • Perses developers – Dominic Rufa (Chodera lab)

    • Experimental users – Lily Wang, MoSDeF people

    • Adjacent Developers – Peter Eastman?

    • Cheminformatics expert who can advise on changes to the Molecule/Atom/Bond class – Andrew Dalke (if he joins soon enough)

      • Less coordination will be necessary if the Molecule class is compartmentalized from the Topology – for example, if the same mechanism that allows a Topology to be popoulated by a mix of AtomTypedMolecules and CheminformaticsMolecules could allow the molecule refactor to happen and just “pass through” the changed API points.

  • Convert requirements into API examples

    •  

  • Convert API examples into tests

  • Build implementation to satisfy tests



class AtomBase(BaseModel): name: str def CheminformaticsAtom(AtomBase): element: simtk.app.openmm.element.Element formal_charge: simtk.unit.Quantity def AtomTypedAtom(AtomBase): atom_type: str class TopologyAtom(AtomBase): ... topology_atom_index: int atom1 = CheminformaticsAtom(element='C', formal_charge=0) atom2 = AtomTypedAtom(atom_type='CA') (somehow get these added to the same topology) for atom in topology.topology_atoms: print(atom) >>> TopologyAtom

 

The way that MosDeF works

  • graph of elements with bonds but without bond orders/formal charges

  • --(foyer atom type assignment)→

  • graph of atom typed atoms (and possibly bond typed bonds) without bond orders/formal charges

    • JW – I’d guess that this is closest to what we need to support in an “AtomTypedMolecule”

  • –(lookup table for FF parameters between atom types)-->

  • ParmEd structure

 

Action items

@Iván Pulido will schedule meetings to gather Topology requirements from Dominic Rufa and Hannah Bruce MacDonald (perses) and Matt Thompson (System exporters)
@Iván Pulido will look into MoSDeF/foyer infrastructure to propose an AtomTypedTopology API, and present it at the April 15 or 22 VU collaboration meeting to gather feedback
@Iván Pulido Will start creating “false code” in his off toolkit fork, converting requirements from previous meetings into API mock ups.

Decisions