Loading...
Searching...
No Matches
RDKit::MolStandardize::TautomerEnumerator Class Reference

`#include <Tautomer.h>`

## Public Member Functions

| TautomerEnumerator (TautomerCatalog *tautCat)
| TautomerEnumerator (const CleanupParameters &params=CleanupParameters())
| TautomerEnumerator (const TautomerEnumerator &other)
TautomerEnumerator & | operator= (const TautomerEnumerator &other)
void | setMaxTautomers (unsigned int maxTautomers)
unsigned int | getMaxTautomers ()
void | setMaxTransforms (unsigned int maxTransforms)
unsigned int | getMaxTransforms ()
void | setRemoveSp3Stereo (bool removeSp3Stereo)
bool | getRemoveSp3Stereo ()
void | setRemoveBondStereo (bool removeBondStereo)
bool | getRemoveBondStereo ()
void | setRemoveIsotopicHs (bool removeIsotopicHs)
bool | getRemoveIsotopicHs ()
void | setReassignStereo (bool reassignStereo)
bool | getReassignStereo ()
void | setCallback (TautomerEnumeratorCallback *callback)
TautomerEnumeratorCallback * | getCallback () const
TautomerEnumeratorResult | enumerate (const ROMol &mol) const
| returns a `TautomerEnumeratorResult` structure for the input molecule
std::vector< ROMOL_SPTR > | enumerate (const ROMol &mol, boost::dynamic_bitset<> *modifiedAtoms, boost::dynamic_bitset<> *modifiedBonds=nullptr) const
ROMol * | pickCanonical (const TautomerEnumeratorResult &tautRes, boost::function< int(const ROMol &mol)> scoreFunc=TautomerScoringFunctions::scoreTautomer) const
| returns the canonical tautomer from a `TautomerEnumeratorResult`
template<class Iterable , typename std::enable_if< !std::is_same< Iterable, TautomerEnumeratorResult >::value, int >::type = 0>
ROMol * | pickCanonical (const Iterable &tautomers, boost::function< int(const ROMol &mol)> scoreFunc=TautomerScoringFunctions::scoreTautomer) const
ROMol * | canonicalize (const ROMol &mol, boost::function< int(const ROMol &mol)> scoreFunc=TautomerScoringFunctions::scoreTautomer) const
| returns the canonical tautomer for a molecule

## Detailed Description

Definition at line 194 of file MolStandardize/Tautomer.h.

## Constructor & Destructor Documentation

## TautomerEnumerator() [1/3]

RDKit::MolStandardize::TautomerEnumerator::TautomerEnumerator | ( | TautomerCatalog * | tautCat | ) |

inline

Definition at line 196 of file MolStandardize/Tautomer.h.

## TautomerEnumerator() [2/3]

RDKit::MolStandardize::TautomerEnumerator::TautomerEnumerator | ( | const CleanupParameters & | params = `CleanupParameters()` | ) |

## TautomerEnumerator() [3/3]

RDKit::MolStandardize::TautomerEnumerator::TautomerEnumerator | ( | const TautomerEnumerator & | other | ) |

inline

Definition at line 205 of file MolStandardize/Tautomer.h.

## Member Function Documentation

## canonicalize()

ROMol * RDKit::MolStandardize::TautomerEnumerator::canonicalize | ( | const ROMol & | mol,
|  | boost::function< int(const ROMol &mol)> | scoreFunc = `TautomerScoringFunctions::scoreTautomer`
| ) |  | const

returns the canonical tautomer for a molecule

Note that the canonical tautomer is very likely not the most stable tautomer for any given conditions. The default scoring rules are designed to produce "reasonable" tautomers, but the primary concern is that the results are canonical: you always get the same canonical tautomer for a molecule regardless of what the input tautomer or atom ordering were.

The default scoring scheme is inspired by the publication: M. Sitzmann et al., “Tautomerism in Large Databases.”, JCAMD 24:521 (2010) https://doi.org/10.1007/s10822-010-9346-4

## enumerate() [1/2]

TautomerEnumeratorResult RDKit::MolStandardize::TautomerEnumerator::enumerate | ( | const ROMol & | mol | ) | const

returns a `TautomerEnumeratorResult` structure for the input molecule

The enumeration rules are inspired by the publication: M. Sitzmann et al., “Tautomerism in Large Databases.”, JCAMD 24:521 (2010) https://doi.org/10.1007/s10822-010-9346-4

Parameters

  mol | the molecule to be enumerated

Note: the definitions used here are that the atoms modified during tautomerization are the atoms at the beginning and end of each tautomer transform (the H "donor" and H "acceptor" in the transform) and the bonds modified during transformation are any bonds whose order is changed during the tautomer transform (these are the bonds between the "donor" and the "acceptor")

## enumerate() [2/2]

std::vector< ROMOL_SPTR > RDKit::MolStandardize::TautomerEnumerator::enumerate | ( | const ROMol & | mol,
|  | boost::dynamic_bitset<> * | modifiedAtoms,
|  | boost::dynamic_bitset<> * | modifiedBonds = `nullptr`
| ) |  | const

Deprecated, please use the form returning a `TautomerEnumeratorResult` instead

## getCallback()

TautomerEnumeratorCallback * RDKit::MolStandardize::TautomerEnumerator::getCallback | ( |  | ) | const

inline

Returns
  pointer to an instance of a class derived from TautomerEnumeratorCallback. DO NOT delete the instance as ownership of the pointer is transferred to the TautomerEnumerator

Definition at line 306 of file MolStandardize/Tautomer.h.

## getMaxTautomers()

unsigned int RDKit::MolStandardize::TautomerEnumerator::getMaxTautomers | ( |  | ) |

inline

Returns
  maximum number of tautomers to be generated

Definition at line 233 of file MolStandardize/Tautomer.h.

## getMaxTransforms()

unsigned int RDKit::MolStandardize::TautomerEnumerator::getMaxTransforms | ( |  | ) |

inline

Returns
  maximum number of transformations to be applied

Definition at line 243 of file MolStandardize/Tautomer.h.

## getReassignStereo()

bool RDKit::MolStandardize::TautomerEnumerator::getReassignStereo | ( |  | ) |

inline

Returns
  whether assignStereochemistry will be called on each tautomer generated by the enumerate() method

Definition at line 292 of file MolStandardize/Tautomer.h.

## getRemoveBondStereo()

bool RDKit::MolStandardize::TautomerEnumerator::getRemoveBondStereo | ( |  | ) |

inline

Returns
  whether stereochemistry information will be removed from double bonds involved in tautomerism

Definition at line 271 of file MolStandardize/Tautomer.h.

## getRemoveIsotopicHs()

bool RDKit::MolStandardize::TautomerEnumerator::getRemoveIsotopicHs | ( |  | ) |

inline

Returns
  whether isotpoic Hs will be removed from centers involved in tautomerism

Definition at line 281 of file MolStandardize/Tautomer.h.

## getRemoveSp3Stereo()

bool RDKit::MolStandardize::TautomerEnumerator::getRemoveSp3Stereo | ( |  | ) |

inline

Returns
  whether stereochemistry information will be removed from sp3 atoms involved in tautomerism

Definition at line 257 of file MolStandardize/Tautomer.h.

## operator=()

TautomerEnumerator & RDKit::MolStandardize::TautomerEnumerator::operator= | ( | const TautomerEnumerator & | other | ) |

inline

Definition at line 214 of file MolStandardize/Tautomer.h.

## pickCanonical() [1/2]

template<class Iterable , typename std::enable_if< !std::is_same< Iterable, TautomerEnumeratorResult >::value, int >::type = 0>

ROMol * RDKit::MolStandardize::TautomerEnumerator::pickCanonical | ( | const Iterable & | tautomers,
|  | boost::function< int(const ROMol &mol)> | scoreFunc = `TautomerScoringFunctions::scoreTautomer`
| ) |  | const

inline

returns the canonical tautomer from an iterable of possible tautomers When Iterable is TautomerEnumeratorResult we use the other non-templated overload for efficiency (TautomerEnumeratorResult already has SMILES so no need to recompute them)

Definition at line 347 of file MolStandardize/Tautomer.h.

## pickCanonical() [2/2]

ROMol * RDKit::MolStandardize::TautomerEnumerator::pickCanonical | ( | const TautomerEnumeratorResult & | tautRes,
|  | boost::function< int(const ROMol &mol)> | scoreFunc = `TautomerScoringFunctions::scoreTautomer`
| ) |  | const

returns the canonical tautomer from a `TautomerEnumeratorResult`

## setCallback()

void RDKit::MolStandardize::TautomerEnumerator::setCallback | ( | TautomerEnumeratorCallback * | callback | ) |

inline

set this to an instance of a class derived from TautomerEnumeratorCallback where operator() is overridden. DO NOT delete the instance as ownership of the pointer is transferred to the TautomerEnumerator

Definition at line 298 of file MolStandardize/Tautomer.h.

## setMaxTautomers()

void RDKit::MolStandardize::TautomerEnumerator::setMaxTautomers | ( | unsigned int | maxTautomers | ) |

inline

Parameters

  maxTautomers | maximum number of tautomers to be generated

Definition at line 229 of file MolStandardize/Tautomer.h.

## setMaxTransforms()

void RDKit::MolStandardize::TautomerEnumerator::setMaxTransforms | ( | unsigned int | maxTransforms | ) |

inline

Parameters

  maxTransforms | maximum number of transformations to be applied this limit is usually hit earlier than the maxTautomers limit and leads to a more linear scaling of CPU time with increasing number of tautomeric centers (see Sitzmann et al.)

Definition at line 239 of file MolStandardize/Tautomer.h.

## setReassignStereo()

void RDKit::MolStandardize::TautomerEnumerator::setReassignStereo | ( | bool | reassignStereo | ) |

inline

Parameters

  reassignStereo; | if set to true, assignStereochemistry will be called on each tautomer generated by the enumerate() method. This defaults to true.

Definition at line 286 of file MolStandardize/Tautomer.h.

## setRemoveBondStereo()

void RDKit::MolStandardize::TautomerEnumerator::setRemoveBondStereo | ( | bool | removeBondStereo | ) |

inline

Parameters

  removeBondStereo; | if set to true, stereochemistry information will be removed from double bonds involved in tautomerism. This means that enols will lose their E/Z stereochemistry after going through tautomer enumeration because of the keto-enolic tautomerism. This defaults to true in RDKit and also in the workflow described by Sitzmann et al.

Definition at line 265 of file MolStandardize/Tautomer.h.

## setRemoveIsotopicHs()

void RDKit::MolStandardize::TautomerEnumerator::setRemoveIsotopicHs | ( | bool | removeIsotopicHs | ) |

inline

Parameters

  removeIsotopicHs; | if set to true, isotopic Hs will be removed from centers involved in tautomerism.

Definition at line 275 of file MolStandardize/Tautomer.h.

## setRemoveSp3Stereo()

void RDKit::MolStandardize::TautomerEnumerator::setRemoveSp3Stereo | ( | bool | removeSp3Stereo | ) |

inline

Parameters

  removeSp3Stereo; | if set to true, stereochemistry information will be removed from sp3 atoms involved in tautomerism. This means that S-aminoacids will lose their stereochemistry after going through tautomer enumeration because of the amido-imidol tautomerism. This defaults to true in RDKit, false in the workflow described by Sitzmann et al.

Definition at line 251 of file MolStandardize/Tautomer.h.

The documentation for this class was generated from the following file:

- MolStandardize/Tautomer.h