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

本文介绍了使用RDKit库中的Recap和BRICS算法对分子进行拆解与合成。Recap能进行逆向合成拆解分子,形成类似树的数据结构;BRICS算法基于键是否能合成进行拆解,并提供合成功能。同时,文章提及了如何获取各个节点信息以及BRICS的可重复性设置。
摘要由CSDN通过智能技术生成

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()<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值