Package rdkit ::
Package DataStructs
|
|
1
2
3
4
5
6
7
8
9
10
11 from __future__ import division
12 from rdkit import rdBase
13 from rdkit.DataStructs import cDataStructs
14 __doc__=cDataStructs.__doc__
15 from rdkit.DataStructs.cDataStructs import *
16
17
18 similarityFunctions=[
19 ('Tanimoto',TanimotoSimilarity,''),
20 ("Dice",DiceSimilarity,''),
21 ("Cosine",CosineSimilarity,''),
22 ("Sokal",SokalSimilarity,''),
23 ("Russel",RusselSimilarity,''),
24 ("RogotGoldberg",RogotGoldbergSimilarity,''),
25 ("AllBit",AllBitSimilarity,''),
26 ("Kulczynski",KulczynskiSimilarity,''),
27 ("McConnaughey",McConnaugheySimilarity,''),
28 ("Asymmetric",AsymmetricSimilarity,''),
29 ("BraunBlanquet",BraunBlanquetSimilarity,''),
30 ]
31
33 """ returns the calculated similarity between two fingerprints,
34 handles any folding that may need to be done to ensure that they
35 are compatible
36
37 """
38 sz1 = fp1.GetNumBits()
39 sz2 = fp2.GetNumBits()
40 if sz1<sz2:
41 fp2 = FoldFingerprint(fp2,sz2//sz1)
42 elif sz2<sz1:
43 fp1 = FoldFingerprint(fp1,sz1//sz2)
44 return metric(fp1,fp2)
45
47 while fp.GetNumOnBits()/len(fp)>density and len(fp)//2>minLength:
48 fp = FoldFingerprint(fp,2)
49 return fp
50
51 ExplicitBitVect.ToBitString = BitVectToText
52 SparseBitVect.ToBitString = BitVectToText
53