在PostgreSQL中进行分子相似性搜索

2020-06-17 00:00:00 函数 阈值 相似性 指纹 分子

文章目录

一、分子指纹计算

二、相似性搜索

三、自定义搜索函数

一、分子指纹计算

本文介绍在windows环境下,使用rdkit函数在postgresql数据库中进行相似性搜索。环境搭建、数据表准备不再赘述,可以参考这篇文章。在上述工作基础上,继续进行指纹计算、建立索引。操作之前先看看在postgresql中支持的指纹函数:

  • layered_fp(mol):另一种rdkit原创指纹,官方文档的解释是它一种子结构指纹,与rdkit拓扑子图的生成步骤一致,但根据子图生成指纹向量的过程有所不同。在子结构指纹类别中,layered指纹的表现不如pattern指纹,因此不像其他指纹这么被人所熟知。
  • torsionbv_fp(mol):对分子计算topological-torsion的bfp(bit fingerprint)型指纹
  • torsion_fp(mol):计算topological-torsion的sfp(sparse fingerprint)型指纹
  • morganbv_fp(mol, int default 2):计算指定半径(默认为2)的morgan型bfp指纹
  • morgan_fp(mol, int default 2):计算morgan的sfp指纹
  • featmorganbv_fp(mol, int default 2):计算morgan FCFP(用官能团归类)的bfp指纹
  • featmorgan_fp(mol, int default 2):计算morgan FCFP的sfp指纹
  • atompairbv_fp(mol):atompair的bfp指纹
  • atompair_fp(mol):atompair的sfp指纹
  • rdkit_fp(mol):rdkit的拓扑指纹 - maccs_fp(mol):预定义的MACCS指纹

接下来在postgresql中计算分子指纹

  • 根据rdk.mols中的m列(存放分子的mol对象),计算torsion、morgan ECFP、morgan FCFP指纹,分别命名为torsionbv、mfp2、ffp2,并放入到rdk.fps表中
select id, torsionbv_fp(m) as torsionbv, morganbv_fp(m) as mfp2, featmorganbv_fp(m) as ffp2 into rdk.fps from rdk.mols;

相关文章