Hi Axel, The format like "c1cccc1” is implicitly defining the bonds between atoms and the output of the “canonical” SMILES has redundant ring labels (1 and 2) , which I think confused the parser and caused the problem. I have no idea whether it is a bug or whether it is true reason.
But try this to solve your problem. smi = Chem.MolToSmiles(mol, kekuleSmiles=True) You will get the explicit bonds in the SMILES and it can be read by `MolFromSmiles` COC1:C:C:C2:C:C:1OC1:C:C:C(:C:C:1)/C=C\\C1:C:C(:C(OC):C:C:1CCN(C)C)OC1:C(:C(CCN(C)C):C(OC):C(OC):C:1OC)/C=C\\2 Best, Hongbin 发件人: Axel Pahl 发送时间: 2019年9月3日 16:45 收件人: RDKit Discuss 主题: [Rdkit-discuss] Non Round-trippable Molecule Hi, I know that the RDKit makes no guarantees abount being able to round-trip (Smiles -> Mol -> Smiles -> Mol) every molecule, but I would like to know if there are any recommendations on how to handle such cases. In my current case the problem seems to lie in different aromatic models for a large ring containing oxygen. This is the code to reproduce the issue and there is also a more illustrative Notebook (https://gist.github.com/apahl/06e55f5965cb82bc43d2aafd8ee0d532): from rdkit.Chem import AllChem as Chem from rdkit.Chem import Draw from rdkit.Chem import Descriptors as Desc from rdkit.Chem.Draw import IPythonConsole # RDKit can parse the original Smiles into a valid molecule. mol = Chem.MolFromSmiles("c12c(\C=C/c(ccc3OC)cc3Oc4ccc(cc4)\C=C/c(cc5O1)c(CCN(C)C)cc5OC)c(CCN(C)C)c(OC)c(OC)c2OC") print(Desc.MolWt(mol)) # And parse it back into a Smiles. smi = Chem.MolToSmiles(mol) print(smi) # -> COc1ccc2cc1-o-c1ccc(cc1)/c=c\c1cc(c(OC)cc1CCN(C)C)-o-c1c(c(CCN(C)C)c(OC)c(OC)c1OC)/c=c\2 # But the Smiles generated by RDKit can not be parsed back into a valid molecule. tmp = Chem.MolFromSmiles(smi) # -> RDKit ERROR: [10:39:41] Can't kekulize mol. Unkekulized atoms: 2 3 4 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 23 24 31 32 33 39 42 45 48 49 BTW, the JS Molecule Editor by Peter is also not able to round-trip this molecule. Many thanks in advance, Axel
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss