Class Kekulization


  • public final class Kekulization
    extends Object
    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 remain untouched. The procedure requires that all atoms have defined implicit hydrogens counts and formal charges. If this information is not present it should be assigned first. 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.
    Author:
    John May
    Keywords:
    kekule, kekulize, dearomatize, aromatic, fix bond orders, deduce bond orders
    • Constructor Detail

      • Kekulization

        public Kekulization()
    • Method Detail

      • kekulize

        public static void kekulize​(IAtomContainer ac)
                             throws CDKException
        Assign a Kekulé representation to the aromatic systems of a compound.
        Parameters:
        ac - structural representation
        Throws:
        CDKException - a Kekulé form could not be assigned