Converting explicit Hydrogens to implicit

The following methods are available in chemaxon.calculations.Hydrogenize class to convert explicit hydrogens to implicit ones:

  • Hydrogenize.convertExplicitHToImplicit(MoleculeGraph molecule, MolAtom[] atoms, int f, boolean add)

  • Hydrogenize.convertExplicitHToImplicit(MoleculeGraph molecule, MolAtom[] atoms, int f)

  • Hydrogenize.convertExplicitHToImplicit(MoleculeGraph molecule, int f)

  • Hydrogenize.convertExplicitHToImplicit(MoleculeGraph molecule)

In the first three methods it is possible to define which type of Hydrogen atoms should be implicitized. By default, convertExplicitHToImplicit() removes those Hydrogens that removal does not cause information loss. That means for example that leaving group hydrogens are never implicitized. This behavior can be extended with the following flags.

  • LONELY_H – include Hydrogen atom without connection (or with Hydrogen bonds only) as well;

  • ISOTOPE_H – include isotope Hydrogen atom as well;

  • CHARGED_H – include charged Hydrogen atom as well;

  • RADICAL_H – include Hydrogen radical as well;

  • MAPPED_H – include Hydrogen with atom map as well;

  • WEDGED_H – include Hydrogen with wedged bond as well;

  • HCONNECTED_H – include Hydrogen connected to Hydrogen atom as well;

  • HBONDED_H – include Hydrogen with a Hydrogen bond on it;

  • CTSPECIFIC_H – include Hydrogen atom(s) connecting alone to one side of a double bond with specified CIS or TRANS stereo information. as well;

  • POLYMERENDGROUP_H – include Hydrogen atom(s) which have a neighbor that is in an Sgroup (not DataSgroup or SuperatomSgroup) as well;

  • SGROUPEND_H – include Hydrogen atom(s) which have a neighbor that is in SuperatomSgroup as well;

  • VALENCEERROR_H - include Hydrogen atoms that connects to an atom that has valence error as well;

  • SGROUP_H - include Hydrogen atom that is the only member of an S-group;

  • BRIDGEHEAD_H - include Hydrogen connected to a bridgehead atom

  • ALL_H – all Hydrogen atoms.

Examples

  1. Convert non-charged explicit hydrogens to implicit ones:

    Hydrogenize.convertExplicitHToImplicit(molecule, MolAtom.ALL_H & ~MolAtom.CHARGED_H);
  2. Remove explicit Hydrogens that connect to atoms having specified CIS or TRANS stereo information.

    Hydrogenize.convertExplicitHToImplicit(molecule, MolAtom.CTSPECIFIC_H);

    images/download/attachments/48688283/CTSpec.png

    images/download/attachments/48688283/CTSpecwoH.png

  3. Remove explicit hydrogenes that have neighbor in SRU S-group:

    Hydrogenize.convertExplicitHToImplicit(molecule, MolAtom.POLYMERENDGROUP_H);

    images/download/attachments/48688283/NewSRU.png

    images/download/attachments/48688283/NewSRUwoH.png

    All explicit hydrogens are converted to implicit hydrogens.

  4. Remove those explicit hydrogenes that have neighbor in Superatom S-group but the explicit hydrogen itself is not in that S-group:

    Hydrogenize.convertExplicitHToImplicit(molecule, MolAtom.SGROUPEND_H);

    images/download/attachments/48688283/SuperatomSGWithExpHConn_g.png

    images/download/attachments/48688283/SuperatomSGWithoutExpHConn_g.png

    After the removal of the explicit hydrogen, an S-group attachment point is taken to the S-group atom. All of the explicit hydrogens in the S-group will be replaced by implicit ones as well.