Hello, I can reproduce the different behavior between a 2020.09 version and an up to date one on my end as well. I think it is related to this issue: https://github.com/rdkit/rdkit/issues/3973 during the kekulization some unintended normalization seems to be happening leading to the same kekule structures in the output for the moment here is a dirty but functional fix (changes in bold):
from rdkit import Chem from rdkit.Chem import ResonanceMolSupplier, ResonanceFlags mol = Chem.MolFromSmiles("C1=CC2=C(C=C1)C=CC=C2") # Naphthalene suppl = ResonanceMolSupplier(mol, Chem.KEKULE_ALL) for m in suppl: * for a in m.GetAtoms(): a.SetIsAromatic(False)* print(Chem.MolToSmiles(m, kekuleSmiles=True)) this returns C1=CC2=C(C=C1)C=CC=C2 C1=CC2=CC=CC=C2C=C1 C1=CC=C2C=CC=CC2=C1 best wishes wim On Sun, Nov 13, 2022 at 12:56 AM Eduardo Mayo <eduardomayoya...@gmail.com> wrote: > Dear all, > > I hope you all are doing well. > > I've been trying to enumerate all Kekule structures, and apparently it > should be done with ResonanceMolSupplier. In this email > <https://sourceforge.net/p/rdkit/mailman/message/36034365/> apparently, > this snippet works: > > from rdkit import Chem >> from rdkit.Chem import ResonanceMolSupplier, ResonanceFlags > > > > mol = Chem.MolFromSmiles("c1ccccc1") > > > > suppl = ResonanceMolSupplier(mol, ResonanceFlags.KEKULE_ALL) > > for m in suppl: >> print(Chem.MolToSmiles(m, kekuleSmiles=True)) > > [out] expected output > >> C1C=CC=CC=1 > > C1=CC=CC=C1 > > [out] rdkit.__version__ == '2020.03.6' > >> C1=CC=CC=C1 >> > C1=CC=CC=C1 >> > [out] rdkit.__version__ == '2022.03.5' > >> C1=CC=CC=C1 > > C1=CC=CC=C1 >> > > But I have tried it on Win, RDKit '2022.03.5' and it doesn't work. Also, I > tried with RDKit '2020.03.6', and it doesn't work for benzene or > naphthalene. > >> from rdkit import Chem >> from rdkit.Chem import ResonanceMolSupplier, ResonanceFlags >> >> mol = Chem.MolFromSmiles("C1=CC2=C(C=C1)C=CC=C2") # Naphthalene >> >> suppl = ResonanceMolSupplier(mol, ResonanceFlags.KEKULE_ALL) >> for m in suppl: >> print(Chem.MolToSmiles(m, kekuleSmiles=True)) >> > [out] rdkit.__version__ == '2020.03.6' > >> C1=CC2=C(C=C1)C=CC=C2 >> C1=CC2=CC=CC=C2C=C1 >> C1=CC=C2C=CC=CC2=C1 > > [out] rdkit.__version__ == '2022.03.5' > >> C1=CC2=C(C=C1)C=CC=C2 >> C1=CC2=C(C=C1)C=CC=C2 >> C1=CC2=C(C=C1)C=CC=C2 > > > Please let me know if you have any workaround to enumerate Kekule > structures. > All the best, > > Eduardo > _______________________________________________ > Rdkit-discuss mailing list > Rdkit-discuss@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/rdkit-discuss >
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss