[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tautomer canonicalization loses sp3 stereo even when SetRemoveSp3Stereo is False #7969

Open
pechersky opened this issue Oct 29, 2024 · 1 comment
Labels

Comments

@pechersky
Copy link
Contributor
pechersky commented Oct 29, 2024

Describe the bug
Tautomer canonicalization ends up clearing/losing stereo in this case
image

To Reproduce

from rdkit import Chem
from rdkit.Chem.MolStandardize import rdMolStandardize

rdkit_mol = Chem.MolFromSmiles("O=C(N1)[C@H](CC(N)=O)CC1=O")
assert Chem.MolToSmiles(rdkit_mol) == "NC(=O)C[C@@H]1CC(=O)NC1=O"
enumerator = rdMolStandardize.TautomerEnumerator()
enumerator.SetMaxTautomers(10000)
enumerator.SetMaxTransforms(10000)
enumerator.SetRemoveSp3Stereo(False)  # default=True
canon_mol = enumerator.Canonicalize(rdkit_mol)
assert Chem.MolToSmiles(canon_mol) == "NC(=O)Cc1cc(O)[nH]c1O"  # but it should not have lost it

Expected behavior
To get "the most canonical" tautomer without losing that bond. Or have some flag to make it happen. In OE toolkits, these transformations can be disallowed.

Configuration (please complete the following information):

  • RDKit version: 2024.9.2
  • OS: Ubuntu 20.04.2
  • Python version (if relevant): 3.9
  • Are you using conda? No
  • If you are using conda, which channel did you install the rdkit from? n/a
  • If you are not using conda: how did you install the RDKit? Built from source
@pechersky pechersky added the bug label Oct 29, 2024
@pechersky
Copy link
Contributor Author

This is also apparent on tetrahydrophthalamide. No one sells the trans- version, but Sigma-Aldrich does sell the cis- version separate from the unannotated versions:
https://www.sigmaaldrich.com/US/en/product/aldrich/t14206
https://www.sigmaaldrich.com/US/en/product/mm/820370

image

from rdkit import Chem
from rdkit.Chem.MolStandardize import rdMolStandardize

rdkit_mol = Chem.MolFromSmiles("O=C1NC(=O)[C@@H]2CC=CC[C@H]12")
enumerator = rdMolStandardize.TautomerEnumerator()
enumerator.SetMaxTautomers(10000)
enumerator.SetMaxTransforms(10000)
enumerator.SetRemoveSp3Stereo(False)  # default=True
canon_mol = enumerator.Canonicalize(rdkit_mol)
assert Chem.MolToSmiles(canon_mol) == "Oc1[nH]c(O)c2c1CC=CC2"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant