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

本文介绍了如何在Windows环境下利用RDKit在PostgreSQL中进行分子指纹计算,包括torsion、ECFP和FCFP指纹,并创建索引。接着,详细阐述了如何进行相似性搜索,使用tanimoto和dice相似性标准,以及实现最近邻搜索。最后,展示了如何自定义函数以满足特定的搜索需求,整个过程参考了RDKit官方文档。

一、分子指纹计算

本文介绍在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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值