分子子结构操作
RDKit包含了一些修改分子的函数,这些函数可以方便地对分子进行子结构删除/替换等操作。更复杂的操作可以看Chemical Reactions中相关的功能。
1.删除子结构
- 先初始化一下
定义一个苯丙氨酸分子,要把苯甲基删掉,变成甘氨酸
>>> from rdkit import Chem
>>> from rdkit.Chem import AllChem, Draw
>>> m = Chem.MolFromSmiles('OC(=O)C(N)Cc1ccccc1')
>>> m = Chem.MolFromSmiles('c1ccccc1CC(N)C(=O)O')
>>> patt = Chem.MolFromSmarts('Cc1ccccc1')
- 查看patt是否在m中:GetSubstructMatches()
返回值是原分子中与子结构匹配的原子索引
>>> matches = m.GetSubstructMatches(patt)
>>> matches
((6, 5, 4, 3, 2, 1, 0),)
- 查看分子及高亮显示子结构
>>> Draw.MolToImage(m, (250,250), highlightAtoms=matches[0])
- 删除子结构:DeleteSubstructs(mol, query, onlyFrags, useChirality)
mol: 要操作的mol对象
query: 要操作的子结构
onlyFrags: 默认False,