-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Preserve Molecule core properties through RDMol/OEMol conversions #135
Comments
Also, test specifically that charges are read from MOL2's |
I'm thinking that the strict test of "successful round trips" is to pass:
In this round-trip framework, we need to think of how each property of an OFFMol can map in and out of a toolkit molecule representation. For example, I hit a problem with OEMols, where oemol.SetTitle only works on strings, while OFFMols can have their name be a string or None. There's no safe mapping for None in and out of an OEMol. We could always stash these core properties into arbitrary property dictionaries (both OEMols and RDMols have these), but it would be weird to convert a OFFMol to an OEmol, and not have it's name go into the OEMol's Title field. Many fields are natively supported, so fields like "atom element" and "integer bond orders" are no problem. Generally, not knowing what interfaces we'll need to comply with in the future, I think this means we want to limit the OFFMol's property space when possible. For example, I'm removing None as a valid OFFMol name, and strictly requiring strings ("" is the default). Goal 1 has a few implications.
I'll update this post with more interface notes as they are implemented. |
Molecule Core Property Mapping Spec(in progress, this should go somewhere official eventually)
|
Atom Core Property Mapping SpecNote: We only care about round trips from OFFMol --> ToolkitMol --> OFFMol, therefore if OFFMol doesn't a permit a blank value for a field, then we don't have to worry about the toolkit representation of the blank value. (?)
|
Bond core property mapping spec
|
Meeting notes, also posted to Slack: 2018_11_07 Jeff Caitlin Chat
|
Note - the name of the atom field that we send partial charges to will be changed as a result of work in #250. Update the table in this issue when changes are merged. |
Is there anything left to do here? Is roundtripping through formats and object models we don't control an absolutely essential behavior? If there's nothing to act on here we should close this and consider moving the notes to somewhere like developer docs. |
The goals in this issue are
Make sure that core Molecule properties survive conversion to/from OEMol/RDMol.
Determine whether the core properties survive filo I/O in supported file formats.
Determine whether secondary properties survive conversion to/from OEMol/RDMol.
Determine whether secondary properties survive filo I/O in supported file formats.
Core properties of Molecule include:
Note that core properties do not include VirtualSites
Secondary properties are anything serializeable that users add to the molecule._properties dict.
The text was updated successfully, but these errors were encountered: