Unexpected behavior of pattern matching with useChirality=True and recursive SMARTS
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 52/100
Piste de recherche
Start by running the Python reproducer using HasSubstructMatch, the two SMARTS patterns, and useChirality=True on RDKit 2025.09.3. Compare direct and recursive SMARTS matching, then inspect the substructure-matching path for recursive queries. Done means the behavior is explained and, if confirmed as a bug, a regression test distinguishes the two cases.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I have a molecule of glucose, and a SMARTS pattern that is the same except one stereo center is undefined. The pattern matcher says it is a match,
>>m = Chem.MolFromSmiles("OC[C@H]1O[C@H](O)[C@H](O)[C@@H](O)[C@@H]1O")
>>patt1 = Chem.MolFromSmarts("OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O")
>>m.HasSubstructMatch(patt1, useChirality=True)
True
Now I try to take that pattern and make it a recursive query, just lumping all the other atoms into the first:
>>patt2 = Chem.MolFromSmarts("[$(OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O)]")
>>m.HasSubstructMatch(patt2, useChirality=True)
False
I would expect both of those to return the same thing. To find a match I have to set useChirality to false:
>>m.HasSubstructMatch(patt2, useChirality=False)
True
This is using RDKit version "2025.09.3".
Is this a bug or expected behavior? If it's a bug, is it fixable?
- Langage dominant
- HTML
- Étoiles
- 3.6k
- Forks
- 1.1k
- Merge moyen
- 3 j 11 h
- PR mergées (30 j)
- 35
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de rdkit/rdkit
-
Clarify mol_from_smiles vs qmol_from_smarts for substruct_count queries in Postgresql cartridgeOuverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
Les mainteneurs répondent en général sous 2 jours
-
bug
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
Les mainteneurs répondent en général sous 2 jours
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 68/100
rdkit/rdkit#9646 · 2 commentaires ·
Les mainteneurs répondent en général sous 2 jours
-
bug
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de rdkit/rdkit
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
PedestrianDynamics/pyFDS-Evac#394 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
python-pillow/Pillow#10087 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
UX
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
ProfessionalWiki/NeoWiki#1573 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
mime-type element is mandatoryOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100