美文网首页
Rdkit学习-No.5-使用SMARTS根据已有的化学反应生成

Rdkit学习-No.5-使用SMARTS根据已有的化学反应生成

作者: ZeroDesigner | 来源:发表于2019-05-08 17:03 被阅读0次

材料:

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])
#再次查看,完全规范
规范产物

相关文章

网友评论

      本文标题:Rdkit学习-No.5-使用SMARTS根据已有的化学反应生成

      本文链接:https://www.haomeiwen.com/subject/gslwnqtx.html