之前写过一篇博客介绍smiles编码,smart编码及摩根指纹(ECFP):
(1条消息) RDkit:介绍smiles编码,smart编码及摩根指纹(ECFP)_随便叫点什么……的博客-CSDN博客
smiles编码具有唯一性:每个SMILES编码对应唯一一个化学结构,刚刚接触smiles编码的时候一定会有这样的疑问,为什么同一个化学分子smiles编码有多种表示形式:
c1cccc(c1OC(=O)C)C(O)=O
C(=O)(c1ccccc1OC(C)=O)O
c1c(c(OC(=O)C)ccc1)C(=O)O
c1(OC(C)=O)c(cccc1)C(O)=O
c1cc(c(C(O)=O)cc1)OC(C)=O
c1c(C(=O)O)c(OC(C)=O)ccc1
c1(c(cccc1)C(O)=O)OC(C)=O
c1cccc(C(=O)O)c1OC(=O)C
c1cccc(c1C(=O)O)OC(C)=O
c1cc(c(cc1)C(=O)O)OC(C)=O
当把上面的十个smiles编码作图时,发现得到的是一样的,都是阿司匹林
import rdkit
from rdkit import Chem
from rdkit.Chem import Draw
smiles = ['c1cccc(c1OC(=O)C)C(O)=O','C(=O)(c1ccccc1OC(C)=O)O','c1c(c(OC(=O)C)ccc1)C(=O)O','c1(OC(C)=O)c(cccc1)C(O)=O',
'c1cc(c(C(O)=O)cc1)OC(C)=O'