首页 > 解决方案 > ECFP4指纹对应哪个RDKit指纹

问题描述

关于 RDKit 的 Morgan 指纹功能,我确实有两个问题。我无法弄清楚半径为 2 或 4 的 Morgan 指纹是否对应于 ECFP4。GetMorganFingerprintAsBitVect(nBits=2048)此外,我无法弄清楚,为什么在使用而不是时计算出的两个分子之间的相似性差异很大(小得多)GetMorganFingerprint?非常感谢帮助或解释。亲切的问候菲利普

标签: rdkit

解决方案


在回答您的第一个问题时,根据https://www.rdkit.org/docs/GettingStartedInPython.html,半径 2 大致相当于 ecfp4。

默认的原子不变量使用与众所周知的 ECFP 系列指纹相似的连接信息。也可以使用基于特征的不变量,类似于用于 FCFP 指纹的那些。使用的特征定义在摩根指纹中使用的特征定义部分定义。有时这会导致完全不同的相似度分数:

m1 = Chem.MolFromSmiles('c1ccccn1')
m2 = Chem.MolFromSmiles('c1ccco1')
fp1 = AllChem.GetMorganFingerprint(m1,2)
fp2 = AllChem.GetMorganFingerprint(m2,2)
ffp1 = AllChem.GetMorganFingerprint(m1,2,useFeatures=True)
ffp2 = AllChem.GetMorganFingerprint(m2,2,useFeatures=True)
DataStructs.DiceSimilarity(fp1,fp2)
0.36...
DataStructs.DiceSimilarity(ffp1,ffp2)
0.90... 

在比较 ECFP/FCFP 指纹和 RDKit 生成的 Morgan 指纹时,请记住 ECFP4 中的 4 对应于所考虑的原子环境的直径,而 Morgan 指纹采用半径参数。所以上面的例子,radius=2,大致相当于ECFP4和FCFP4。


推荐阅读