RDKit提供化学反应引擎,其中化学反应模板是基于smarts构建。反应物+反应引擎就可以生成产物。
一、引入所需库
#! /usr/bin/python
# coding: utf-8
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
二、化学反应实例
示例反应
rxn = AllChem.ReactionFromSmarts(
'([Cl;H0;D1;+0:1]-[c;H0;D3;+0:2](:[c:3]):[n;H0;D2;+0:4]:[c:5])>>(C-[n;H0;D3;+0:4](:[c:5]):[c;H0;D3;+0:2](=O):[c:3]).(Cl-P(-Cl)(=O)-[Cl;H0;D1;+0:1])')
img = Draw.ReactionToImage(
rxn
)
img.save(
'/Users/zeoy/st/drug_development/st_rdcit/img/mol31.jpg'
)
反应模板如下图所示:
从反应模板中,我们看到主要的变化是Cl变成羰基氧,N上多了一个甲基
注:这是一个逆反应模板
反应物如下图所示 :
mol = Chem.MolFromSmiles(
'CC(C)(Nc1nc(Cl)c(-c2ccc(F)cc2)c(-c2ccncc2)n1)c1ccccc1')
Draw.MolToImageFile(
mol,
"/Users/zeoy/st/drug_development/st_rdcit/img/mol32.jpg",
size=