前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Rdkit学习-No.5-使用SMARTS根据已有的化学反应生成新分子

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

作者头像
DrugScience
发布2021-02-04 14:50:35
发布2021-02-04 14:50:35
1.4K0
举报
文章被收录于专栏:DrugScienceDrugScience

###材料:

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])

#再次查看,完全规范

```

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FindKey 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档