Deepchem-介绍几种Featurizer

几种Featurizer解读

Deepchem的Featurizer我倾向于翻译成‘特征提取器’。我们都知道化学分子本身不能直接作为机器学习的读入数据,这就需要我们将其结构转变为数字形式。而featurizer可以很方便做到这一点,它可以将化学分子(SMILE格式)转变为长度一致的向量或维度一致的矩阵形式。

为了方便说明,我们需要提前准备好需要进行特征提取的小分子:

import deepchem as dc

smiles = [
  'O=Cc1ccc(O)c(OC)c1',
  'CN1CCC[C@H]1c2cccnc2',
  'C1CCCCC1',
  'c1ccccc1',
  'CC(=O)O',
]

CircularFingerprint

从字面意义看,这种特征提取方式或多或少与‘圆’有关。事实正是如此,如下图所示,对于化学分子中任意一个原子,以其为中心绘制不同半径的同心圆,根据这些同心圆包含的子结构赋值不同的数字,这些数字按顺序排列成相同长度的向量。生成的向量可以作为机器学习的读入数据。
:::

CircularFingerprint特征提取器原理

对应代码如下所示:

#初始化特征提取器
featurizer = dc.feat.CircularFingerprint() 
#读入需要提取特征的分子
feature = featurizer.featurize(smiles) 
#这种方法生成的每个分子向量长度默认均为1024。

RDKitDescriptors

这种类型的特征提取器调用底层的rdkit模块计算分子描述符(描述符可以包括分子量、溶剂可及表面积、氢键供/受体数量等)。

#初始化特征提取器
rdkit_featurizer = dc.feat.RDKitDescriptors() 
#读入需要提取特征的分子
rdkit_feature = rdkit_featurizer.featurize(smiles) 
#这种方法生成的每个分子向量长度默认均为208。

WeaveFeaturizer and MolGraphConvFeaturizer

这两种方法比较特殊,都是将分子转化为二维图形进而提取特征值。如果你事先了解过图形的卷积神经网络或许好理解一些。

以MolGraphConvFeaturizer调用为例:

#初始化特征提取器
graph_featurizer = dc.feat.MolGraphConvFeaturizer() 
#读入需要提取特征的分子
graph_feature = graph_featurizer.featurize(smiles)

CoulombMatrix

  • 以上介绍的分子特征生成器都是基于分子内在自有属性生成的;我们知道小分子在结合受体分子时往往采用各种构象,如果想要准确预测它们之间的结合强度那就不得不考虑分子可能产生的各种构象。
  • 直白翻译CoulombMatrix可以知道这种分子特征生成器和库伦相互作用有关。两个电荷之间的静电库仑相互作用与电荷的位置和距离成正比(满足q1q2/r)。q1q2表示两个原子所带电荷,r表示两原子间距离。
  • 所谓库伦矩阵,是对于一个分子的所有原子(总数N),生成N*N的矩阵,矩阵中的每个元素给出了任意两原子间的库仑相互作用。

调用方法:

from rdkit import Chem #导入rdkit模块用于生成分子构象

#初始化分子构象生成器(定义最大构象生成个数)
generator = dc.utils.ConformerGenerator(max_conformers=5)    
#读入目标分子的smiles式
for m in smiles:
  mol = generator.generate_conformers(Chem.MolFromSmiles(m))
  print(len(mol.GetConformers())) 

  #生成库伦矩阵
  coulomb_mat = dc.feat.CoulombMatrix(max_atoms=20)   
  #max_atoms参数项是为了让所有分子获得同样大小的矩阵,这样利于输入训练模型
  features = coulomb_mat(mol)

最后每个分子的每个构象生成的features都是一个20*20的矩阵

CoulumbMatrixEig

CoulombMatrixEig继承自CoulombMatrix, 它首先计算不同分子的不同构象的库仑矩阵,然后计算每个库仑矩阵的特征值或者说特征向量。最后填充这些特征值,以减轻分子中原子数量的变化对训练结果的影响。

调用方法:

#初始化CoulumbMatrixEig
coulomb_mat_eig = dc.feat.CoulombMatrixEig(max_atoms=20)
#读入分子
features = coulomb_mat_eig(smiles)

扫描下方二维码,关注公众号获得更多实用干货:
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Ubuntu上安装DeepChem,你可以按照以下步骤进行操作: 1. 下载DeepChem的安装包。你可以从DeepChem的官方网站上下载最新的稳定版本。根据你的系统和需求选择合适的版本。 2. 解压下载的安装包。你可以将其解压到一个你想要安装DeepChem的目录中。 3. 打开终端,并导航到解压后的DeepChem目录。你可以使用cd命令切换到相应的目录。例如,如果你的DeepChem安装目录是/home/ubuntu/wufeil/Deepchem-RDKit/Autodock_Vina/,你可以使用以下命令切换到该目录: cd /home/ubuntu/wufeil/Deepchem-RDKit/Autodock_Vina/。 4. 安装DeepChem的依赖项。DeepChem的安装包通常会附带一个requirements.txt文件,其中包含了需要的依赖库和版本。你可以使用pip或conda根据requirements.txt文件来安装这些依赖项。 5. 安装完成后,你可以尝试导入DeepChem并运行一些示例代码来验证安装是否成功。你可以在DeepChem的文档或示例代码中找到一些用于测试的示例。 请注意,上述步骤仅提供了一般的安装指南,具体的安装过程可能会因你的系统配置和DeepChem的版本而有所不同。建议你在安装之前仔细阅读DeepChem的文档,并遵循官方提供的安装步骤。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [使用Autodock Vina进行分子对接](https://blog.csdn.net/wufeil7/article/details/121964144)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

药研猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值