OEAddHighlightingΒΆ

Highlights atoms and/or bonds of the displayed molecule.

The overloaded versions of the OEAddHighlighting function
Link Description
OEAddHighlighting(disp, highlight, atompred) highlights atoms with OEHighlightBase
OEAddHighlighting(disp, highlight, bondpred) highlights bonds with OEHighlightBase
OEAddHighlighting(disp, highlight, atompred, bondpred) highlights atoms and bonds with OEHighlightBase
OEAddHighlighting(disp, highlight, match) highlights atoms and bonds of a match with OEHighlightBase
OEAddHighlighting(disp, highlight, abset) highlights atoms and bonds of a set with OEHighlightBase
OEAddHighlighting(disp, color, style, atompred) highlights atoms with color and style
OEAddHighlighting(disp, color, style, bondpred) highlights bonds with color and style
OEAddHighlighting(disp, color, style, atompred, bondpred) highlights atoms and bonds with color and style
OEAddHighlighting(disp, color, style, match) highlights atoms and bonds of a match with color and style
OEAddHighlighting(disp, color, style, abset) highlights atoms and bonds of a set with color and style

Parameters :

disp
The OE2DMolDisplay object of which atoms add/or bonds being highlighted.
highlight
The OEHighlightBase object that specifies the style of the highlighting.
color
The OEColor object that specifies the color of the highlighting.
style
The style of the highlighting from the OEHighlightStyle namespace.
atompred
OEAddHighlighting function highlights only atoms for which the given atom predicate returns true.
bondpred
OEAddHighlighting function highlights only bonds for which the given bond predicate returns true.
match
OEAddHighlighting function highlights the target atoms and bonds of the OEMatchBase object.
abset
Stores the atoms and bonds being highlighted.

Highlights atom and/or bonds with the style implemented in the given OEHighlightBase object

The atoms and bonds being highlighted can be specified either by a predicate or an OEMatchBase object or an OEAtomBondSet object.

The following code snippets show different ways to highlight any 6 membered aromatic ring in a molecule using the OEHighlightByBallAndStick highlighting class. They all generate the image shown in Figure: Example of highlighting 6-membered aromatic rings.

  1. Highlighting using atom and bond predicates:

    void OEAddHighlighting(OE2DMolDisplay &disp, const OEHighlightBase &highlight,
                           const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &atompred)
    

    Highlights atoms with the style implemented in the given OEHighlightBase object. The atoms being highlighted are specified by given atom predicate.

    void OEAddHighlighting(OE2DMolDisplay &disp, const OEHighlightBase &highlight,
                           const OESystem::OEUnaryPredicate<OEChem::OEBondBase> &bondpred)
    

    Highlights bonds with the style implemented in the given OEHighlightBase object. The bonds being highlighted are specified by given bond predicates.

    void OEAddHighlighting(OE2DMolDisplay& disp, const OEHighlightBase& highlight,
                           const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &atompred,
                           const OESystem::OEUnaryPredicate<OEChem::OEBondBase> &bondpred)
    

    Highlights atoms and bonds with the style implemented in the given OEHighlightBase object. The atoms and bonds being highlighted are specified by given atom and bond predicates, respectively.

    Example: (See image generated in Example of highlighting 6-membered aromatic rings)

    private class Pred6MemAromAtom : OEUnaryAtomPred
    {
        public override bool Call(OEAtomBase atom)
        {
            return atom.IsAromatic() && OEChem.OEAtomIsInAromaticRingSize(atom, 6);
        }
    
        public override OEUnaryAtomBoolFunc CreateCopy()
        {
            OEUnaryAtomBoolFunc copy = new Pred6MemAromAtom();
            copy.ReleaseOwnership();
            return copy;
        }
    }
    
    private class Pred6MemAromBond : OEUnaryBondPred
    {
        public override bool Call(OEBondBase bond)
        {
            return bond.IsAromatic() && OEChem.OEBondIsInAromaticRingSize(bond, 6);
        }
    
        public override OEUnaryBondBoolFunc CreateCopy()
        {
            OEUnaryBondBoolFunc copy = new Pred6MemAromBond();
            copy.ReleaseOwnership();
            return copy;
        }
    }
    
    private static void OEAddHighlighting_Predicate(OE2DMolDisplay disp)
    {
        OEHighlightByBallAndStick highlightstyle = new OEHighlightByBallAndStick(OEChem.OELightGreen);
        OEDepict.OEAddHighlighting(disp, highlightstyle, new Pred6MemAromAtom());
        OEDepict.OEAddHighlighting(disp, highlightstyle, new Pred6MemAromBond());
    }
    
    private static void OEAddHighlighting_AtomAndBondPredicate(OE2DMolDisplay disp)
    {
        OEHighlightByBallAndStick highlightstyle = new OEHighlightByBallAndStick(OEChem.OELightGreen);
        OEDepict.OEAddHighlighting(disp, highlightstyle, 
       new Pred6MemAromAtom(), new Pred6MemAromBond());
    }
    
  2. Highlighting using an OEMatchBase object that is initialized by substructure search or maximum common substructure search:

    void OEAddHighlighting(OE2DMolDisplay &disp, const OEHighlightBase &highlight,
                           const OEChem::OEMatchBase &match)
    

    Example: (See image generated in Example of highlighting 6-membered aromatic rings)

    private static void OEAddHighlighting_OEMatch(OE2DMolDisplay disp)
    {
        OESubSearch subs = new OESubSearch("a1aaaaa1");
        bool unique = true;
        OEHighlightByBallAndStick highlightstyle = new OEHighlightByBallAndStick(OEChem.OELightGreen);
        foreach (OEMatchBase match in subs.Match(disp.GetMolecule(), unique))
        {
            OEDepict.OEAddHighlighting(disp, highlightstyle, match);
        }
    }
    
  3. Highlighting using an OEAtomBondSet object that stores the atoms and bonds being highlighted:

    void OEAddHighlighting(OE2DMolDisplay &disp, const OEHighlightBase &highlight,
                           const OEChem::OEAtomBondSet &abset)
    

    Example: (See image generated in Example of highlighting 6-membered aromatic rings)

    private static void OEAddHighlighting_OEAtomBondSet(OE2DMolDisplay disp)
    {
        OEMolBase mol = disp.GetMolecule();
        OEAtomBondSet abset = new OEAtomBondSet(mol.GetAtoms(new Pred6MemAromAtom()),
                                                mol.GetBonds(new Pred6MemAromBond()));
        OEHighlightByBallAndStick highlightstyle = new OEHighlightByBallAndStick(OEChem.OELightGreen);
        OEDepict.OEAddHighlighting(disp, highlightstyle, abset);
    }
    
../../_images/OEAddHighlighting-OEHighlightBase-OEMatch.png

Example of highlighting 6-membered aromatic rings

Highlights atoms and/or bonds with the given color and style

The atoms and bonds being highlighted can be specified either by a predicate or an OEMatchBase object or an OEAtomBondSet object.

The following code snippets show three different ways to highlight any 6 membered aromatic ring in a molecule using the built-in highlighting styles. They all generate the image shown in Figure: Example of highlighting 6-membered aromatic rings.

  1. Highlighting using atom and bond predicates:

    void OEAddHighlighting(OE2DMolDisplay &disp, const OESystem::OEColor &color,
                           unsigned int style,
                           const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &atompred)
    

    Highlights atoms with the given color and style. The atoms being highlighted are specified by given atom predicate.

    void OEAddHighlighting(OE2DMolDisplay &disp, const OESystem::OEColor &color,
                           unsigned int style,
                           const OESystem::OEUnaryPredicate<OEChem::OEBondBase> &bondpred)
    

    Highlights bonds with the given color and style. The bonds being highlighted are specified by given bonds predicate.

    void OEAddHighlighting(OE2DMolDisplay& disp, const OESystem::OEColor& color,
                           unsigned int style,
                           const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &atompred,
                           const OESystem::OEUnaryPredicate<OEChem::OEBondBase> &bondpred)
    

    Highlights atoms and bonds with the given color and style. The atoms and bonds being highlighted are specified by given atom and bond predicates, respectively.

    Example: (See image generated in Example of highlighting 6-membered aromatic rings)

    private class Pred6MemAromAtom : OEUnaryAtomPred
    {
        public override bool Call(OEAtomBase atom)
        {
            return atom.IsAromatic() && OEChem.OEAtomIsInAromaticRingSize(atom, 6);
        }
    
        public override OEUnaryAtomBoolFunc CreateCopy()
        {
            OEUnaryAtomBoolFunc copy = new Pred6MemAromAtom();
            copy.ReleaseOwnership();
            return copy;
        }
    }
    
    private class Pred6MemAromBond : OEUnaryBondPred
    {
        public override bool Call(OEBondBase bond)
        {
            return bond.IsAromatic() && OEChem.OEBondIsInAromaticRingSize(bond, 6);
        }
    
        public override OEUnaryBondBoolFunc CreateCopy()
        {
            OEUnaryBondBoolFunc copy = new Pred6MemAromBond();
            copy.ReleaseOwnership();
            return copy;
        }
    }
    
    private static void OEAddHighlighting_Predicate(OE2DMolDisplay disp)
    {
        OEDepict.OEAddHighlighting(disp, OEChem.OEDarkGreen, OEHighlightStyle.Color, new Pred6MemAromAtom());
        OEDepict.OEAddHighlighting(disp, OEChem.OEDarkGreen, OEHighlightStyle.Color, new Pred6MemAromBond());
    }
    
    private static void OEAddHighlighting_AtomAndBondPredicate(OE2DMolDisplay disp)
    {
        OEDepict.OEAddHighlighting(disp, OEChem.OEDarkGreen, OEHighlightStyle.Color, 
       new Pred6MemAromAtom(), new Pred6MemAromBond());
    }
    
  2. Highlighting using an OEMatchBase object that is initialized by substructure search:

    void OEAddHighlighting(OE2DMolDisplay &disp, const OESystem::OEColor &color,
                           unsigned int style, const OEChem::OEMatchBase &match)
    

    Example: (See image generated in Example of highlighting 6-membered aromatic rings)

    private static void OEAddHighlighting_OEMatch(OE2DMolDisplay disp)
    {
        OESubSearch subs = new OESubSearch("a1aaaaa1");
        bool unique = true;
        foreach (OEMatchBase match in subs.Match(disp.GetMolecule(), unique))
        {
            OEDepict.OEAddHighlighting(disp, OEChem.OEDarkGreen, OEHighlightStyle.Color, match);
        }
    }
    
  3. Highlighting using an OEAtomBondSet object that stores the atoms and bonds being highlighted:

    void OEAddHighlighting(OE2DMolDisplay &disp, const OESystem::OEColor &color,
                           unsigned int style, const OEChem::OEAtomBondSet &abset)
    

    Example: (See image generated in Example of highlighting 6-membered aromatic rings)

    private static void OEAddHighlighting_OEAtomBondSet(OE2DMolDisplay disp)
    {
        OEMolBase mol = disp.GetMolecule();
        OEAtomBondSet abset = new OEAtomBondSet(mol.GetAtoms(new Pred6MemAromAtom()),
                                                mol.GetBonds(new Pred6MemAromBond()));
        OEDepict.OEAddHighlighting(disp, OEChem.OEDarkGreen, OEHighlightStyle.Color, abset);
    }
    
../../_images/OEAddHighlighting-OEHighlightStyle-OEMatch.png

Example of highlighting 6-membered aromatic rings

See also