文章目录
一、引入所需库
#! /usr/bin/python
# coding: utf-8
# rdkit 子结构搜索
from rdkit import Chem
二、子结构搜索
子结构搜索可以通过SMARTS匹配符完成。
2.1 判断是否有子结构
首先创建分子对象,然后定义匹配模式,最后判断是否有子结构。
匹配模式:支持Chem.MolFromSmarts() 和 Chem.MolFromSmiles() 两种形式。 Smarts的表现形式更加丰富。
mol = Chem.MolFromSmiles('c1ccccc1OC')
patt = Chem.MolFromSmarts('OC')
flag = mol.HasSubstructMatch(patt)
if flag:
print('分子中包含基团 -OCH3')
else:
print('分子中不包含基团 -OCH3')
# 分子中包含基团 -OCH3
2.2 获取第一个子结构对应的原子编号
m