OEGetReasonableTautomers

OESystem::OEIterBase<OEChem::OEMolBase> *
  OEGetReasonableTautomers(const OEChem::OEMolBase &mol,
                           const OETautomerOptions &opts=OETautomerOptions(),
                           bool pKaNorm=true);
OESystem::OEIterBase<OEChem::OEMCMolBase> *
  OEGetReasonableTautomers(const OEChem::OEMCMolBase &mol,
                           const OETautomerOptions &opts=OETautomerOptions(),
                           bool pKaNorm=true);

This function takes a const input molecule that is to be tautomerized and the tautomers are returned as an iterator over molecules. The function is overloaded to handle both single (OEMolBase) and multi-conformer (OEMCMolBase) molecules.

mol

The molecule being tautomerized.

opts

The OETautomerOptions object that stores properties that influence tautomerization process.

pKaNorm

This parameter determines whether to apply pKa normalization. If true the ionization state of each tautomer will be assigned to a predominate state at pH~7.4.

Example of tautomerizing a molecule

OETautomerOptions tautomer_options;
tautomer_options.SetMaxTautomersGenerated(4096);
tautomer_options.SetMaxTautomersToReturn(16);
tautomer_options.SetCarbonHybridization(true);
tautomer_options.SetMaxZoneSize(50);
tautomer_options.SetApplyWarts(true);

const bool pKa_norm = true;

OEGraphMol mol;
while(OEReadMolecule(ifs, mol))
{
  for(OEIter<OEMolBase> mi = OEGetReasonableTautomers(mol, tautomer_options, pKa_norm); mi; ++mi)
  {
    // work with tautomer

See also