rdkit.Chem.rdRGroupDecomposition module

Module containing RGroupDecomposition classes and functions.

class rdkit.Chem.rdRGroupDecomposition.RGroupCoreAlignment

Bases: enum

MCS = rdkit.Chem.rdRGroupDecomposition.RGroupCoreAlignment.MCS
NoAlignment = rdkit.Chem.rdRGroupDecomposition.RGroupCoreAlignment.NoAlignment
None = rdkit.Chem.rdRGroupDecomposition.RGroupCoreAlignment.None
names = {'MCS': rdkit.Chem.rdRGroupDecomposition.RGroupCoreAlignment.MCS, 'NoAlignment': rdkit.Chem.rdRGroupDecomposition.RGroupCoreAlignment.NoAlignment, 'None': rdkit.Chem.rdRGroupDecomposition.RGroupCoreAlignment.None}
values = {0: rdkit.Chem.rdRGroupDecomposition.RGroupCoreAlignment.NoAlignment, 1: rdkit.Chem.rdRGroupDecomposition.RGroupCoreAlignment.MCS}
rdkit.Chem.rdRGroupDecomposition.RGroupDecompose((AtomPairsParameters)cores, (AtomPairsParameters)mols[, (bool)asSmiles=False[, (bool)asRows=True[, (RGroupDecompositionParameters)options=<rdkit.Chem.rdRGroupDecomposition.RGroupDecompositionParameters object at 0x7500b0d583a0>]]]) object :
Decompose a collecion of molecules into their Rgroups
ARGUMENTS:
  • cores: a set of cores from most to least specific.

    See RGroupDecompositionParameters for more details on how the cores can be labelled

  • mols: the molecules to be decomposed

  • asSmiles: if True return smiles strings, otherwise return molecules [default: False]

  • asRows: return the results as rows (default) otherwise return columns

RETURNS: row_or_column_results, unmatched

Row structure:

rows[idx] = {rgroup_label: molecule_or_smiles}

Column structure:

columns[rgroup_label] = [ mols_or_smiles ]

unmatched is a vector of indices in the input mols that were not matched.

C++ signature :

boost::python::api::object RGroupDecompose(boost::python::api::object,boost::python::api::object [,bool=False [,bool=True [,RDKit::RGroupDecompositionParameters=<rdkit.Chem.rdRGroupDecomposition.RGroupDecompositionParameters object at 0x7500b0d583a0>]]])

class rdkit.Chem.rdRGroupDecomposition.RGroupDecomposition((object)self, (AtomPairsParameters)cores)

Bases: instance

RGroupDecompositionParameters controls how the RGroupDecomposition sets labelling and matches structures OPTIONS:

  • RGroupCoreAlignment: can be one of RGroupCoreAlignment.None_ or RGroupCoreAlignment.MCS

    If set to MCS, cores labels are mapped to each other using their Maximum common substructure overlap.

  • RGroupLabels: optionally set where the rgroup labels to use are encoded.

    RGroupLabels.IsotopeLabels - labels are stored on isotopes RGroupLabels.AtomMapLabels - labels are stored on atommaps RGroupLabels.MDLRGroupLabels - labels are stored on MDL R-groups RGroupLabels.DummyAtomLabels - labels are stored on dummy atoms RGroupLabels.AtomIndexLabels - use the atom index as the label RGroupLabels.RelabelDuplicateLabels - fix any duplicate labels RGroupLabels.AutoDetect - auto detect the label [default]

    Note: in all cases, any rgroups found on unlabelled atoms will be automatically

    labelled.

  • RGroupLabelling: choose where the rlabels are stored on the decomposition

    RGroupLabelling.AtomMap - store rgroups as atom maps (for smiles) RGroupLabelling.Isotope - store rgroups on the isotope RGroupLabelling.MDLRGroup - store rgroups as mdl rgroups (for molblocks)

    default: AtomMap | MDLRGroup

  • onlyMatchAtRGroups: only allow rgroup decomposition at the specified rgroups

  • removeAllHydrogenRGroups: remove all user-defined rgroups that only have hydrogens

  • removeAllHydrogenRGroupsAndLabels: remove all user-defined rgroups that only have hydrogens, and also remove the corresponding labels from the core

  • removeHydrogensPostMatch: remove all hydrogens from the output molecules

  • allowNonTerminalRGroups: allow labelled Rgroups of degree 2 or more

  • doTautomers: match all tautomers of a core against each input structure

  • doEnumeration: expand input cores into enumerated mol bundles

-allowMultipleRGroupsOnUnlabelled: permit more that one rgroup to be attached to an unlabelled core atom

Construct from a molecule or sequence of molecules

C++ signature :

void __init__(_object*,boost::python::api::object)

__init__( (object)self, (AtomPairsParameters)cores, (RGroupDecompositionParameters)params) -> None :

Construct from a molecule or sequence of molecules and a parameters object

C++ signature :

void __init__(_object*,boost::python::api::object,RDKit::RGroupDecompositionParameters)

Add((RGroupDecomposition)self, (Mol)mol) int :
C++ signature :

int Add(RDKit::RGroupDecompositionHelper {lvalue},RDKit::ROMol)

GetMatchingCoreIdx((RGroupDecomposition)self, (Mol)mol[, (AtomPairsParameters)matches=None]) int :
C++ signature :

int GetMatchingCoreIdx(RDKit::RGroupDecompositionHelper {lvalue},RDKit::ROMol [,boost::python::api::object {lvalue}=None])

GetRGroupLabels((RGroupDecomposition)self) list :

Return the current list of found rgroups. Note, Process() should be called first

C++ signature :

boost::python::list GetRGroupLabels(RDKit::RGroupDecompositionHelper {lvalue})

GetRGroupsAsColumns((RGroupDecomposition)self[, (bool)asSmiles=False]) dict :
Return the rgroups as columns (note: can be fed directly into a pandas datatable)
ARGUMENTS:
  • asSmiles: if True return smiles strings, otherwise return molecules [default: False]

Column structure:

columns[rgroup_label] = [ mols_or_smiles ]

C++ signature :

boost::python::dict GetRGroupsAsColumns(RDKit::RGroupDecompositionHelper {lvalue} [,bool=False])

GetRGroupsAsRows((RGroupDecomposition)self[, (bool)asSmiles=False]) list :
Return the rgroups as rows (note: can be fed directly into a pandas datatable)
ARGUMENTS:
  • asSmiles: if True return smiles strings, otherwise return molecules [default: False]

Row structure:

rows[idx] = {rgroup_label: molecule_or_smiles}

C++ signature :

boost::python::list GetRGroupsAsRows(RDKit::RGroupDecompositionHelper {lvalue} [,bool=False])

Process((RGroupDecomposition)self) bool :

Process the rgroups (must be done prior to GetRGroupsAsRows/Columns and GetRGroupLabels)

C++ signature :

bool Process(RDKit::RGroupDecompositionHelper {lvalue})

ProcessAndScore((RGroupDecomposition)self) tuple :

Process the rgroups and returns the score (must be done prior to GetRGroupsAsRows/Columns and GetRGroupLabels)

C++ signature :

boost::python::tuple ProcessAndScore(RDKit::RGroupDecompositionHelper {lvalue})

class rdkit.Chem.rdRGroupDecomposition.RGroupDecompositionParameters((object)self)

Bases: instance

RGroupDecompositionParameters controls how the RGroupDecomposition sets labelling and matches structures OPTIONS:

  • RGroupCoreAlignment: can be one of RGroupCoreAlignment.None_ or RGroupCoreAlignment.MCS

    If set to MCS, cores labels are mapped to each other using their Maximum common substructure overlap.

  • RGroupLabels: optionally set where the rgroup labels to use are encoded.

    RGroupLabels.IsotopeLabels - labels are stored on isotopes RGroupLabels.AtomMapLabels - labels are stored on atommaps RGroupLabels.MDLRGroupLabels - labels are stored on MDL R-groups RGroupLabels.DummyAtomLabels - labels are stored on dummy atoms RGroupLabels.AtomIndexLabels - use the atom index as the label RGroupLabels.RelabelDuplicateLabels - fix any duplicate labels RGroupLabels.AutoDetect - auto detect the label [default]

    Note: in all cases, any rgroups found on unlabelled atoms will be automatically

    labelled.

  • RGroupLabelling: choose where the rlabels are stored on the decomposition

    RGroupLabelling.AtomMap - store rgroups as atom maps (for smiles) RGroupLabelling.Isotope - store rgroups on the isotope RGroupLabelling.MDLRGroup - store rgroups as mdl rgroups (for molblocks)

    default: AtomMap | MDLRGroup

  • onlyMatchAtRGroups: only allow rgroup decomposition at the specified rgroups

  • removeAllHydrogenRGroups: remove all user-defined rgroups that only have hydrogens

  • removeAllHydrogenRGroupsAndLabels: remove all user-defined rgroups that only have hydrogens, and also remove the corresponding labels from the core

  • removeHydrogensPostMatch: remove all hydrogens from the output molecules

  • allowNonTerminalRGroups: allow labelled Rgroups of degree 2 or more

  • doTautomers: match all tautomers of a core against each input structure

  • doEnumeration: expand input cores into enumerated mol bundles

-allowMultipleRGroupsOnUnlabelled: permit more that one rgroup to be attached to an unlabelled core atom

Constructor, takes no arguments

C++ signature :

void __init__(_object*)

property alignment
property allowMultipleRGroupsOnUnlabelled
property allowNonTerminalRGroups
property chunkSize
property doEnumeration
property doTautomers
property gaMaximumOperations
property gaNumberOperationsWithoutImprovement
property gaNumberRuns
property gaParallelRuns
property gaPopulationSize
property gaRandomSeed
property includeTargetMolInResults
property labels
property matchingStrategy
property onlyMatchAtRGroups
property removeAllHydrogenRGroups
property removeAllHydrogenRGroupsAndLabels
property removeHydrogensPostMatch
property rgroupLabelling
property scoreMethod
property substructMatchParams
property timeout
class rdkit.Chem.rdRGroupDecomposition.RGroupLabelling

Bases: enum

AtomMap = rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.AtomMap
Isotope = rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.Isotope
MDLRGroup = rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.MDLRGroup
names = {'AtomMap': rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.AtomMap, 'Isotope': rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.Isotope, 'MDLRGroup': rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.MDLRGroup}
values = {1: rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.AtomMap, 2: rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.Isotope, 4: rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.MDLRGroup}
class rdkit.Chem.rdRGroupDecomposition.RGroupLabels

Bases: enum

AtomIndexLabels = rdkit.Chem.rdRGroupDecomposition.RGroupLabels.AtomIndexLabels
AtomMapLabels = rdkit.Chem.rdRGroupDecomposition.RGroupLabels.AtomMapLabels
AutoDetect = rdkit.Chem.rdRGroupDecomposition.RGroupLabels.AutoDetect
DummyAtomLabels = rdkit.Chem.rdRGroupDecomposition.RGroupLabels.DummyAtomLabels
IsotopeLabels = rdkit.Chem.rdRGroupDecomposition.RGroupLabels.IsotopeLabels
MDLRGroupLabels = rdkit.Chem.rdRGroupDecomposition.RGroupLabels.MDLRGroupLabels
RelabelDuplicateLabels = rdkit.Chem.rdRGroupDecomposition.RGroupLabels.RelabelDuplicateLabels
names = {'AtomIndexLabels': rdkit.Chem.rdRGroupDecomposition.RGroupLabels.AtomIndexLabels, 'AtomMapLabels': rdkit.Chem.rdRGroupDecomposition.RGroupLabels.AtomMapLabels, 'AutoDetect': rdkit.Chem.rdRGroupDecomposition.RGroupLabels.AutoDetect, 'DummyAtomLabels': rdkit.Chem.rdRGroupDecomposition.RGroupLabels.DummyAtomLabels, 'IsotopeLabels': rdkit.Chem.rdRGroupDecomposition.RGroupLabels.IsotopeLabels, 'MDLRGroupLabels': rdkit.Chem.rdRGroupDecomposition.RGroupLabels.MDLRGroupLabels, 'RelabelDuplicateLabels': rdkit.Chem.rdRGroupDecomposition.RGroupLabels.RelabelDuplicateLabels}
values = {1: rdkit.Chem.rdRGroupDecomposition.RGroupLabels.IsotopeLabels, 2: rdkit.Chem.rdRGroupDecomposition.RGroupLabels.AtomMapLabels, 4: rdkit.Chem.rdRGroupDecomposition.RGroupLabels.AtomIndexLabels, 8: rdkit.Chem.rdRGroupDecomposition.RGroupLabels.RelabelDuplicateLabels, 16: rdkit.Chem.rdRGroupDecomposition.RGroupLabels.MDLRGroupLabels, 32: rdkit.Chem.rdRGroupDecomposition.RGroupLabels.DummyAtomLabels, 255: rdkit.Chem.rdRGroupDecomposition.RGroupLabels.AutoDetect}
class rdkit.Chem.rdRGroupDecomposition.RGroupMatching

Bases: enum

Exhaustive = rdkit.Chem.rdRGroupDecomposition.RGroupMatching.Exhaustive
GA = rdkit.Chem.rdRGroupDecomposition.RGroupMatching.GA
Greedy = rdkit.Chem.rdRGroupDecomposition.RGroupMatching.Greedy
GreedyChunks = rdkit.Chem.rdRGroupDecomposition.RGroupMatching.GreedyChunks
NoSymmetrization = rdkit.Chem.rdRGroupDecomposition.RGroupMatching.NoSymmetrization
names = {'Exhaustive': rdkit.Chem.rdRGroupDecomposition.RGroupMatching.Exhaustive, 'GA': rdkit.Chem.rdRGroupDecomposition.RGroupMatching.GA, 'Greedy': rdkit.Chem.rdRGroupDecomposition.RGroupMatching.Greedy, 'GreedyChunks': rdkit.Chem.rdRGroupDecomposition.RGroupMatching.GreedyChunks, 'NoSymmetrization': rdkit.Chem.rdRGroupDecomposition.RGroupMatching.NoSymmetrization}
values = {1: rdkit.Chem.rdRGroupDecomposition.RGroupMatching.Greedy, 2: rdkit.Chem.rdRGroupDecomposition.RGroupMatching.GreedyChunks, 4: rdkit.Chem.rdRGroupDecomposition.RGroupMatching.Exhaustive, 8: rdkit.Chem.rdRGroupDecomposition.RGroupMatching.NoSymmetrization, 16: rdkit.Chem.rdRGroupDecomposition.RGroupMatching.GA}
class rdkit.Chem.rdRGroupDecomposition.RGroupScore

Bases: enum

FingerprintVariance = rdkit.Chem.rdRGroupDecomposition.RGroupScore.FingerprintVariance
Match = rdkit.Chem.rdRGroupDecomposition.RGroupScore.Match
names = {'FingerprintVariance': rdkit.Chem.rdRGroupDecomposition.RGroupScore.FingerprintVariance, 'Match': rdkit.Chem.rdRGroupDecomposition.RGroupScore.Match}
values = {1: rdkit.Chem.rdRGroupDecomposition.RGroupScore.Match, 4: rdkit.Chem.rdRGroupDecomposition.RGroupScore.FingerprintVariance}
rdkit.Chem.rdRGroupDecomposition.RelabelMappedDummies((Mol)mol[, (int)inputLabels=rdkit.Chem.rdRGroupDecomposition.RGroupLabelling(7)[, (int)outputLabels=rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.MDLRGroup]]) None :

Relabel dummy atoms bearing an R-group mapping (as atom map number, isotope or MDLRGroup label) such that they will be displayed by the rendering code as R# rather than #*, :#, #:#, etc. By default, only the MDLRGroup label is retained on output; this may be configured through the outputLabels parameter. In case there are multiple potential R-group mappings, the priority on input is Atom map number > Isotope > MDLRGroup. The inputLabels parameter allows to configure which mappings are taken into consideration.

C++ signature :

void RelabelMappedDummies(RDKit::ROMol {lvalue} [,unsigned int=rdkit.Chem.rdRGroupDecomposition.RGroupLabelling(7) [,unsigned int=rdkit.Chem.rdRGroupDecomposition.RGroupLabelling.MDLRGroup]])