rdkit.Chem.rdMolEnumerator module — The RDKit 2025.09.6 documentation

# rdkit.Chem.rdMolEnumerator module

Module containing classes and functions for enumerating molecules

rdkit.Chem.rdMolEnumerator.Enumerate((rdkit.Chem.rdchem.Mol)mol[, (int)maxPerOperation=0]) → rdkit.Chem.rdchem.MolBundle :
  do an enumeration and return a MolBundle.

    > If maxPerOperation is >0 that will be used as the maximum number of molecules which

    >   can be returned by any given operation.

    Limitations:

      - the current implementation does not support molecules which include both SRUs and LINKNODEs

      - Overlapping SRUs, i.e. where one monomer is contained within another, are not supported

    C++ signature :

      RDKit::MolBundle* Enumerate(RDKit::ROMol [,unsigned int=0])

  Enumerate( (rdkit.Chem.rdchem.Mol)mol, (MolEnumeratorParams)enumParams) -> rdkit.Chem.rdchem.MolBundle :

    do an enumeration for the supplied parameter type and return a MolBundle Limitations:

    > - Overlapping SRUs, i.e. where one monomer is contained within another, are not supported

    C++ signature :

      RDKit::MolBundle* Enumerate(RDKit::ROMol,RDKit::MolEnumerator::MolEnumeratorParams)

class rdkit.Chem.rdMolEnumerator.EnumeratorType

  Bases: `enum`

  LinkNode = rdkit.Chem.rdMolEnumerator.EnumeratorType.LinkNode
  PositionVariation = rdkit.Chem.rdMolEnumerator.EnumeratorType.PositionVariation
  RepeatUnit = rdkit.Chem.rdMolEnumerator.EnumeratorType.RepeatUnit
  names = {'LinkNode': rdkit.Chem.rdMolEnumerator.EnumeratorType.LinkNode, 'PositionVariation': rdkit.Chem.rdMolEnumerator.EnumeratorType.PositionVariation, 'RepeatUnit': rdkit.Chem.rdMolEnumerator.EnumeratorType.RepeatUnit}
  values = {0: rdkit.Chem.rdMolEnumerator.EnumeratorType.LinkNode, 1: rdkit.Chem.rdMolEnumerator.EnumeratorType.PositionVariation, 2: rdkit.Chem.rdMolEnumerator.EnumeratorType.RepeatUnit}

class rdkit.Chem.rdMolEnumerator.MolEnumeratorParams((object)self) → None :

  Bases: `instance`

  Molecular enumerator parameters

  > C++ signature :

  >   void __init__(_object*)

  __init__( (rdkit.Chem.rdMolDescriptors.AtomPairsParameters)arg1, (EnumeratorType)arg2) -> object :

  > C++ signature :

  >   void* __init__(boost::python::api::object,(anonymous namespace)::EnumeratorTypes)

  SetEnumerationOperator((MolEnumeratorParams)self, (EnumeratorType)typ) → None :

    set the operator to be used for enumeration

    C++ signature :

      void SetEnumerationOperator(RDKit::MolEnumerator::MolEnumeratorParams*,(anonymous namespace)::EnumeratorTypes)

  property doRandom

    do random enumeration (not yet implemented

  property maxToEnumerate

    maximum number of molecules to enumerate

  property randomSeed

    seed for the random enumeration (not yet implemented

  property sanitize

    sanitize molecules after enumeration