MT – Interested to figure out how different portions of our stack deal with different topology representations
JW – Yes, one aspect of our final product is that there should be a neutral representation that can be employed by cheminformatics topologies and atom typed topologies
SB – Strawman proposal
JW – How would molecule be mutated in this scheme?
SB – The data members aren’t directly modifiable. But we could expose API points for adding/removing/mutating atoms
JW – Graph mol → no stereo? What is gained?
JW – Local stereochem is a good idea
JW – Single conformer mol is a good idea for similarity to major file formats. Stereochemistry is never going to be easy to synchronize
JW – Enforced conformer gen when loading from SMILES → Technical issues.
JW – How would chemical changes look?
SB – Graph stereochemistry? I think it should always be encoded in a 3d rep
JW – I think the graph should always have stereo, but I can consider this more.
SB – Let’s come back to this
JW – Topology not allowing different atom ordering?
JW – +1 to topology coordinates and cell vectors
JW + SB – Cached properties like partial charge, partial bond order, aromaticity and model should be stored with provenance and easily obliterated when anything that might invalidate them happens
MT – I like this a lot. But I don’t think topology should have coordinates.
SB – My reasoning for having coordinates is to have a place where coords stay synchronized with topology particle indexing
JW – Would System object have the Topology that Simon is presenting, or something lighter-weight?
MT – 90% sure that I’d use Simon’s thing. But I would be OK to making it lighter-weight by forcing some data members to be None
MT – For code compatibility/simplicity, I’d like to use the same object
SB – What would a System force to be None, and what would be additionally required?
MT – Atom element would become optional, mass would become required. Not sure where partial charges would go – Currently I have them stored in the System itself, though this isn’t a final design choice
(General) – Can we have a case where two molecules have the same graph and different partial charges?
SB – This could come up in the case of an alchemical transformation, where an intermediate state has the same graph but different partial charges
MT – Maybe the question is “what deduplication strategy do we want to use, and what do we need for that?”
(General) – Should we ever allow Parlsey benzene and GAFF benzene to be in the same simulation?
SB – I agree that we want two worlds for the topology – “pre parameterization” and “post parameterization”. The former would contain basic stuff but no partial charges/fractional bond orders. The latter would subclass from the former, but also have partial charges and fractional bond orders. Then molecule equality in the former can be based on the graph, and on the latter could be based on graph+parameterization metadata.
MT – Agree
Possible topics for next time:
Continue defining difference between pre- and post-parameterization topology
Positions? Box vectors?
MT – Want box vectors and periodicity boolean tuple
Virtual sites?
How do we let people slip in stuff like pre-defined partial charges?
Biopolymer tie-ins?
3D mols vs. graph mols? Both? Just one?
Isotopes?
What are other hard questions about tracking state? What happens when we find another one in several years? Will the proposed object model make it possible to wrangle this complexity?
What from the existing API can stay? What behavior changes (eg. offmol.generate_conformers returns one conf? multiple molecules?