在PostgreSQL中进行分子相似性搜索
文章目录
一、分子指纹计算
二、相似性搜索
三、自定义搜索函数
一、分子指纹计算
本文介绍在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;
相关文章