OESystem::OEIterBase<OEChem::OEAtomBondSet> * OEGetFuncGroupFragments(const OEChem::OEMolBase &mol)
OEGetFuncGroupFragments function partitions
the given molecule into functional groups and returns an iterator
over OEAtomBondSet objects.
Each OEAtomBondSet container stores the atoms and the
bonds of an identified fragment.
See example in Figure: Example of fragments returned by the
OEGetFuncGroupFragments function where
each fragment returned by the
function is highlighted with a different color.
OEGetFuncGroupFragments function uses the following
heuristics to fragment a molecule:
rings are left intact i.e. considered as a unit
exo-ring double bonds are not cleaved from adjacent rings
hetero atoms next to each other are kept together
sp and sp2 atoms next to each other are kept together
in order to avoid generating one atom fragments isolated atoms are attached to the smallest neighbor fragment
The molecule argument is
const, so this function requires that the
OEFindRingAtomsAndBonds perception activity has been
performed prior to calling this function.