rdkit Kekulize

rdkit 会在KeKulize的时候清除键上的芳香环信息,但是输出smiles重新导入后会恢复该信息

mol = Chem.MolFromSmiles('c1ccccc1')

Chem.Kekulize(mol,False)
print(mol.GetBondWithIdx(0).GetIsAromatic())  # True
print(Chem.MolToSmiles(mol))  # c1ccccc1

Chem.Kekulize(mol,True)
print(mol.GetBondWithIdx(0).GetIsAromatic())  # False
new_smiles = Chem.MolToSmiles(mol)
print(new_smiles )  # C1=CC=CC=C1

mol = Chem.MolFromSmiles(new_smiles)
print(mol.GetBondWithIdx(0).GetIsAromatic())  # True
print(Chem.MolToSmiles(mol))  # c1ccccc1

附录:

We need to talk about Kekulization, Aromaticity and SMILES

posted @ 2021-04-28 22:18  e-yi  阅读(72)  评论(0)    收藏  举报  来源