一、简单子结构搜索
1. 初始化
>>> from rdkit import Chem
>>> from rdkit.Chem import Draw
>>> m = Chem.MolFromSmiles('C2NCC2CC1C(CCCC)C(OCCCC)C1c2ccccc2')
>>> p = Chem.MolFromSmarts('C1CCC1*')
2. 获取所有匹配的结构
- 获取所有子结构:GetSubstructMatches()
返回值是原分子中与子结构匹配的原子索引。本例中一共返回4个结果
>>> matches = m.GetSubstructMatches(p)
>>> matches
((5, 6, 11, 17, 18), (5, 17, 11, 6, 7), (6, 5, 17, 11, 12), (6, 11, 17, 5, 4))
3. 查看匹配的结构
- 直接展示图片:MolToImage(m, highlightAtoms)
通过highlightAtoms传入匹配的子结构
>>> Draw.MolToImage(m, highlightAtoms=matches[0])
- 搜索结果之一
</