RDKit|分子片段、片段指纹与指纹重要性分析

本文介绍了如何使用RDKit进行分子片段生成、片段指纹创建和指纹重要性分析。通过实例展示了从分子中提取官能团,生成并查看分子片段,以及如何利用片段指纹进行信息增益和卡方检验等重要性分析。
摘要由CSDN通过智能技术生成

一、分子片段生成

分子片段(Molecular Fragments)是一组相连的原子,并可能包含有相关官能团。在rdkit中提供了一系列用于分析、操作分子片段的工具。说起来比较抽象,操作起来也比较抽象。

  • 获取官能团库:RDConfig.RDDataDir目录下的’FunctionalGroups.txt’
  • 根据官能团库实例化一个参数器:FragmentCatalog.FragCatParams()
>>> import os
>>> from rdkit import Chem
>>> from rdkit.Chem import Draw
>>> from rdkit.Chem import RDConfig
>>> from rdkit.Chem import FragmentCatalog
>>> fName = os.path.join(RDConfig.RDDataDir, 'FunctionalGroups.txt')
>>> fparams = FragmentCatalog.FragCatParams(1, 6, fName)
  • 查看库中包含的官能团数量:GetNumFuncGroups()
  • 查看每个官能团对应的基团:GetFuncGroup()
>>> print(fparams.GetNumFuncGroups())
>>> m = fparams.GetFuncGroup(0)
>>> m
39

在这里插入图片描述

  • 传入参数器,创建一个片段存储器:FragmentCatalog.FragCatalog()
    产生的分子片段都会存储在该对象中
  • 创建一个片段生成器:FragmentCatalog.FragCatGenerator()
    通过该对象生成片段
  • 计算分子片段:AddFragsFromMol()
  • 查看分子片段数量:GetNumEntries()
>>> m = Chem.MolFromSmiles('OCC=CC(=O)O')
>>> fcat = FragmentCatalog.FragCatalog(fparams)
>>> fcgen = FragmentCatalog.FragCatGenerator()
>>> fcgen.AddFragsFromMol(m, fcat)
>>> fcat.GetNumEntries()
3
  • 通过存储器查看片段:fcat.GetEntryDescription()
    尖括号中的内容:表示与片段相连的官能团,以下面的结果为例:
    第0号片段中,对应着一个乙基片段,该乙基与一个羟基相连。
    第1号片段中,对应着一个乙烯片段,该乙烯与一个羧基相连。
>>> print(fcat.GetEntryDescription(0))
>>> print(fcat.GetEntryDescription(1))
C<-O>C
C=C<-C(=O)O>

关于官能团的详细信息,可以通过下述方法获取:

  • 向存储器传入分子片段id,获取片段中所包含的官能团编号:fcat.GetEntryFuncGroupIds()
  • 向参数器传入官能团编号,获取官能团对应的mol对象:fparams.GetFuncGroup()
>>> print(list(fcat.GetEntryFuncGroupIds(0)))
>>> funcgroup = fparams.GetFuncGroup(34)
>>&
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值