MolVS icon indicating copy to clipboard operation
MolVS copied to clipboard

tautomer.TautomerEnumerator() function

Open mmagithub opened this issue 4 years ago • 6 comments

Hi, I am trying to enumerate tautomers using the tautomer.TautomerEnumerator() function. I am wondering if the returned list is sorted by scores so that the best-scoring tautomer in the list will have an index of zero, as it is not clear from the documentation, and if so, can I just limit to the most canonical tautomer by specifying the maximum tautomer parameter to 1

Thanks

mmagithub avatar Sep 01 '20 03:09 mmagithub

I'm afraid that won't work. Specifying max_tautomers will actually just stop the enumeration once that many have been enumerated, so there's no guarantee that the best scoring tautomer has been found. So the only way to be sure is to enumerate fully first, and then score every enumerated tautomer.

mcs07 avatar Sep 01 '20 12:09 mcs07

thanks. does molvs has a function to score and sort these enumerated tautomers in an easy way. I tried to look at the documentation but could not figure out if a function like this exist. thanks

mmagithub avatar Sep 02 '20 00:09 mmagithub

Cf. MolVS/molvs/tautomer.py class TautomerCanonicalizer.canonicalize

UnixJunkie avatar Sep 02 '20 01:09 UnixJunkie

Thanks. But my understanding is that the canonical tautomer is not essentially the most stable (or most energetically favorable). Other than canonicalization, is there is something else we can do to get the most energetically favorable tautomer, assuming standard conditions and neutral pH ?

mmagithub avatar Sep 02 '20 01:09 mmagithub

Maybe score them using a force field like MMFF94 in rdkit?

UnixJunkie avatar Sep 02 '20 01:09 UnixJunkie

Interesting, will try that. thanks for the suggestion.

mmagithub avatar Sep 02 '20 02:09 mmagithub