Hello, When deleting an aromatic atom or bond, the ring information is removed, while any remaining atom in the broken aromatic ring is still labelled aromatic. When attempting to sanitize such a molecule I get an exception: "rdkit.Chem.rdchem.AtomKekulizeException: non-ring atom 0 marked aromatic"
To recreate: >>> from rdkit import Chem >>> m = Chem.MolFromSmiles('c1ccccc1') >>> mw = Chem.RWMol(m) >>> mw.RemoveAtom(0) >>> Chem.SanitizeMol(mw) [10:40:50] non-ring atom 0 marked aromatic Traceback (most recent call last): File "<stdin>", line 1, in <module> rdkit.Chem.rdchem.AtomKekulizeException: non-ring atom 0 marked aromatic The example is simplistic, but there are reactions where an aromatic system can be broken, such as Zincke-Koenig reaction or Djerassi-Rylander oxidation. The exception makes it harder to describe such reactions. I currently check if an atom/bond is aromatic before deleting it, and if so remove all aromatic flags in the molecule. To me it would make sense if RDKit removed the aromatic flags for any atom that is no longer in a ring when deleting an aromatic atom/bond. Alternatively remove the aromatic flag on any non-ring atom when attempting to kekulize the structure rather than throwing an exception. Compare with a Birch reduction where the ring stays intact, here the kekulization/the following aromatize step rightly fails to find an aromatic ring, no exception is thrown, and the atoms are marked as non-aromatic. Kind Regards, Ingvar
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss