Assign a Kekulé representation to the aromatic systems of a compound. Input
from some file-formats provides some bonds as aromatic / delocalised bond
types. This method localises the electrons and assigns single and double
bonds. Different atom and bond orderings may produce distinct but valid
Kekulé forms. Only bond orders are adjusted and any aromatic flags will
The procedure requires that all atoms have defined implicit hydrogens counts
and formal charges. If this information is not present it should be assigned
For some inputs it may not be possible to assign a Kekulé form. In general
theses cases are rare but usually occur for one of two reasons.
1) Missing / ambiguous implicit hydrogens, this is fundamental to determining the
Kekulé form and if guessed may be wrong. Some formats (e.g. molfile) can not
include the exact number of implicit hydrogens attached to atom whilst others
may omit it or optionally skip encoding. The typical example is found in the
example for 1H-pyrrole, a correct SMILES encoding should include the hydrogen
on the aromatic nitrogen '[nH]1cccc1' (not: 'n1cccc1').
2) The aromaticity perception algorithm has allowed atoms with abnormal
valence. This usually happens when a non-convalent bond has be upgraded
to a sigma bond during format conversion.
kekule, kekulize, dearomatize, aromatic, fix bond orders, deduce bond orders