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

Reply via email to