###材料:
Ipython qtconsole
python35
###化学反应
羧酸基团与氮的反应(随意定义仅供参考)
###步骤:
(1)导入python的rdkit模块
(2)根据SMARTS定义一个化学反应
(3)输入化学分子进行反应
###代码:
```
import rdkit
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
from rdkit.Chem.AllChem import ReactionFromSmarts
rxn = AllChem.ReactionFromSmarts('[C:1](=[O:2])-[OD1].[N:3]>>[C:1](=[O:2])[N:3]')
#定义一个反应,采用SMARTS格式
#解释这个SMARTS,第一个反应物限制:[C:1](=[O:2])-[OD1],羧基,侧链为(=[O:2]),O双键与C相连,第二个反应物限制:[N:3],基团带N原子
Draw.ReactionToImage(rxn)
#画出反应式
pr = rxn.RunReactants((Chem.MolFromSmiles('CC(=O)O'),Chem.MolFromSmiles('NC')))
#两个反应物按照定义好的rxn进行反应
type(pr)
#pr按照元组格式进行存储
len(pr)
#查看产物个数,只有一个产物生成
Chem.MolToSmiles(pr[0][0])
#产物转化为SMILES格式,CNC(C)=O
Draw.MolToImage(pr[0][0])
#显示产物
#明显看到N原子的价键不正确
Chem.SanitizeMol(pr[0][0])
#标准化其价建
Draw.MolToImage(pr[0][0])
#再次查看,完全规范
```
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有