RDKit|通过Recap和BRICS对分子拆解与合成

Recap和BRICS对分子拆解与合成

1.Recap拆解

另一个与化学反应相关的功能是Recap,Recap可以模仿实验室中的正向合成过程来进行逆向操作,对分子进行一系列的转换与分解,最终得到一组合理的分子片段。Recap可以对拆解过程进行追踪,并形成类似树的数据结构。原始分子记为根节点(root),被拆解的分子记为父节点(parent),拆解得到的分子记为子节点(children),某节点下的所有分支节点为子孙节点(all children),某节点上的所有父节点为祖先节点(ultimate parents),无法继续拆解分子记为叶子节点(leaves)。所有英文翻译对应recap中的属性或方法名。

  • Recap算法拆解分子:Recap.RecapDecompose(mol)
>>> from rdkit.Chem import Recap
>>> from rdkit import Chem
>>> from rdkit.Chem import AllChem as Chem
>>> m = Chem.MolFromSmiles('c1ccccc1OCCOC(=O)CC')
>>> hierarch = Recap.RecapDecompose(m)

可以从节点对象通过函数获取其叶子节点、子孙节点,得到的都是字典,键为节点的smiles,值为节点对象。

  • 叶子节点函数:hierarch.GetLeaves()
  • 子孙节点函数:hierarch.GetAllChildren()
  • 祖先节点函数,返回列表:getUltimateParents()
>>> print(hierarch.GetLeaves().keys())
dict_keys(['*C(=O)CC', '*CCO*', '*c1ccccc1', '*CCOc1ccccc1'])
>>> print(hierarch.GetAllChildren().keys())
dict_keys(['*C(=O)CC', '*OCCOc1ccccc1', '*CCO*', '*c1ccccc1', '*CCOC(=O)CC', '*CCOc1ccccc1'])
>>> print(hierarch.getUltimateParents()[0
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值