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
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss