RDKit
Open-source cheminformatics and machine learning.
RDKit::MolStandardize::TautomerEnumerator Class Reference

#include <Tautomer.h>

Public Member Functions

 TautomerEnumerator ()=delete
 
 TautomerEnumerator (TautomerCatalog *tautCat)
 
 TautomerEnumerator (const TautomerEnumerator &other)
 
TautomerEnumeratoroperator= (const TautomerEnumerator &other)
 
std::vector< ROMOL_SPTRenumerate (const ROMol &mol, boost::dynamic_bitset<> *modifiedAtoms=nullptr, boost::dynamic_bitset<> *modifiedBonds=nullptr) const
 returns all tautomers for the input molecule More...
 
ROMolpickCanonical (const std::vector< ROMOL_SPTR > &tautomers, boost::function< int(const ROMol &mol)> scoreFunc=TautomerScoringFunctions::scoreTautomer) const
 returns the canonical tautomer from a set of possible tautomers More...
 
ROMolcanonicalize (const ROMol &mol, boost::function< int(const ROMol &mol)> scoreFunc=TautomerScoringFunctions::scoreTautomer) const
 returns the canonical tautomer for a molecule More...
 

Detailed Description

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

Constructor & Destructor Documentation

◆ TautomerEnumerator() [1/3]

RDKit::MolStandardize::TautomerEnumerator::TautomerEnumerator ( )
delete

◆ TautomerEnumerator() [2/3]

RDKit::MolStandardize::TautomerEnumerator::TautomerEnumerator ( TautomerCatalog tautCat)
inline

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

◆ TautomerEnumerator() [3/3]

RDKit::MolStandardize::TautomerEnumerator::TautomerEnumerator ( const TautomerEnumerator other)
inline

Definition at line 47 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
inline

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

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

References BOOST_LOG, and rdWarningLog.

◆ enumerate()

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

returns all tautomers 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
molthe molecule to be enumerated
modifiedAtomsif provided this is used to return which atoms are modified during the tautomerization
modifiedBondsif provided this is used to return which bonds are modified during the tautomerization

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")

◆ operator=()

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

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

◆ pickCanonical()

ROMol* RDKit::MolStandardize::TautomerEnumerator::pickCanonical ( const std::vector< ROMOL_SPTR > &  tautomers,
boost::function< int(const ROMol &mol)>  scoreFunc = TautomerScoringFunctions::scoreTautomer 
) const

returns the canonical tautomer from a set of possible tautomers

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


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