-
Notifications
You must be signed in to change notification settings - Fork 250
Closed as not planned
Closed as not planned
Copy link
Labels
Type: Errorabandonedabandoned issue/PR as determined by actions botabandoned issue/PR as determined by actions botstalestale issue/PR as determined by actions botstale issue/PR as determined by actions bot
Description
Before #1206:
- RMG was able to handle hypervalent N
- RDKit could not really handle hypervalent N (it tries to sanitize and create a non-hypervalent resonance structure)
- OpenBabel could handle hypervalent N
- Parsing of hypervalent SMILES/InChI could be done with OpenBabel
After #1206:
- RMG no longer has atomtypes for hypervalent nitrogen
- Parsing of hypervalent SMILES/InChI breaks with OpenBabel; raises AtomTypeError
- RDKit's treatment of hypervalent N is now similar to RMG's treatment, however RDKit cannot handle all cases.
Examples:
O=N(=O)C- RDKit converts this to one single bonded O and one double bonded O with charge separation
- OpenBabel converts this to two double bonded O's (raises AtomTypeError)
O=N(C)=N(C)=O- RDKit converts this to N-O single bonds with charge separation and N=N double bond
- OpenBabel converts this to three double bonds (raises AtomTypeError)
InChI=1S/C4H10N2O2/c1-3-5(7)6(8)4-2/h3-4H2,1-2H3(InChI of the prior molecule)- RDKit is unable to parse
- OpenBabel gives the same result
Note: RDKitMol conversion doesn't work properly on current master because of an issue with the order of updateCharge and updateLonePairs. This is a straightforward issue that will be fixed in #1262.
What do we do next?
- Should we re-add atomtypes for hypervalent N?
- Should we add a "sanitation" method similar to RDKit to convert hypervalent N to resonance structures with charge separation?
- Should we prioritize RDKit as a backend? (Currently OpenBabel is tried first for most methods, since it was previously more robust in general.)
Metadata
Metadata
Assignees
Labels
Type: Errorabandonedabandoned issue/PR as determined by actions botabandoned issue/PR as determined by actions botstalestale issue/PR as determined by actions botstale issue/PR as determined by actions bot