Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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


Code Block
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.

...