Package rdkit :: Package DataStructs
[hide private]
[frames] | no frames]

Source Code for Package rdkit.DataStructs

 1  # $Id$ 
 2  # 
 3  #  Copyright (C) 2004-2006  Rational Discovery LLC 
 4  # 
 5  #   @@ All Rights Reserved @@ 
 6  #  This file is part of the RDKit. 
 7  #  The contents are covered by the terms of the BSD license 
 8  #  which is included in the file license.txt, found at the root 
 9  #  of the RDKit source tree. 
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   
32 -def FingerprintSimilarity(fp1,fp2,metric=TanimotoSimilarity):
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
46 -def FoldToTargetDensity(fp,density=0.3,minLength=64):
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