2021-04-07 Pulido/Wagner Check in

Date

Apr 7, 2021

Participants

  • @Jeffrey Wagner

  • @Iván Pulido

  • @Matt Thompson

Discussion topics

Item

Notes

Item

Notes

Review previous meeting / progress on questions and tests

  • 2021-04-05 Pulido onboarding Meeting notes

  • Discussion: What’s the difference between a Topology and a list of molecules?

    • IP – Unique molecules are called reference molecules.

    • (Notebook pasted below)

  • Discussion: How could we simulate a protein starting from PDB?

    • JW – We’re not going to do protein prep (missing atom placement, protation state assignment) as part of this refactor. We’ll wrap other toolks that can do this, or plan for our users to show up with a very well conditioned PDB (with protons are good residue names), or show up with SDF proteins.

    • JW – So, we’ll need some “PDB to SDF” tool that can take a nice PDB and assign bond orders .RDKit or another tool (ambpdb?) may have this, or we could make one ourselves (with a dictionary of bond order-less substructures)

    • We’d also want something like the reverse – “Given an SDF file of a protein, find all of its residues, and give them names and numbers that that a user can go run an AMBER/GROMACS simulation”

  • Future plans: Play around with openff-system?

  • New task: Give IP a code snippet to create a structure, the IP will describe its contents in terms of other packages' Molecule/Topology/System

  • Warming up with Pydantic

    • Try to make a copy of the openff.toolkit.topology.molecule.Atom class using Pydantic.

      • “Done” once it passes the current first two tests for TestAtom

    • Can use EITHER simtk.unit and simtk.openmm.app.element package, OR Pint. If you use Pint, be sure to change the tests to not compare to simtk classes.

      • Had to create a UnitRegistry() object in tests – Kinda ugly? Where to create it?

    • IP – Had to install both pydantic and pint in dev env.

    • IP – No documentation on molecule parameter for Atom class. No tests for it either.

  • Opening a practice PR for TopologyAtom.element

    • Want to end up with a PR containing

      • The new functionality

      • Tests for the new functionality

      • Releasenotes updates

Vanderbilt collaboration

  • IP will join tomorrow’s System object call with Vanderbilt (System object working session)

  • Vanderbilt is going to need a “atom typed topology”, which interoperates well with our “cheminformatics topology”

OpenEye license

  • IP will get an OpenEye license from Chodera lab

Notebook on topology

from openff.toolkit.topology import Molecule, Topology smileses = ['CCO', 'OCC', "C1CCCCC1", "C1=CC=CC=C1", "c1ccccc1", "O", "O", "O", "[H]O[H]"] mols = [Molecule.from_smiles(smi) for smi in smileses] print(mols)
[Molecule with name '' and SMILES '[H][O][C]([H])([H])[C]([H])([H])[H]', Molecule with name '' and SMILES '[H][O][C]([H])([H])[C]([H])([H])[H]', Molecule with name '' and SMILES '[H][C]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C]1([H])[H]', Molecule with name '' and SMILES '[H][c]1[c]([H])[c]([H])[c]([H])[c]([H])[c]1[H]', Molecule with name '' and SMILES '[H][c]1[c]([H])[c]([H])[c]([H])[c]([H])[c]1[H]', Molecule with name '' and SMILES '[H][O][H]', Molecule with name '' and SMILES '[H][O][H]', Molecule with name '' and SMILES '[H][O][H]', Molecule with name '' and SMILES '[H][O][H]']
mols[0].atoms

Action items

Decisions