| Trees | Indices | Help |
|
|---|
|
|
1 # $Id: FingerprintUtils.py 1647 2011-02-24 08:00:39Z glandrum $
2 #
3 # Copyright (C) 2009 Greg Landrum
4 # All Rights Reserved
5 #
6 import cPickle
7 from rdkit import DataStructs,Chem
8 from rdkit import Chem
9
10 similarityMethods={'RDK':DataStructs.ExplicitBitVect,
11 'AtomPairs':DataStructs.IntSparseIntVect,
12 'TopologicalTorsions':DataStructs.LongSparseIntVect,
13 'Pharm2D':DataStructs.SparseBitVect,
14 'Gobbi2D':DataStructs.SparseBitVect,
15 'Morgan':DataStructs.UIntSparseIntVect
16 }
17 supportedSimilarityMethods=similarityMethods.keys()
21 loadLayerFlags=0xFFFFFFFF
22 searchLayerFlags=0x7
23 minPath=1
24 maxPath=6
25 fpSize=1024
26 wordSize=32
27 nWords=fpSize//wordSize
28 @staticmethod
30 if query:
31 flags=LayeredOptions.searchLayerFlags
32 else:
33 flags=LayeredOptions.loadLayerFlags
34 return Chem.LayeredFingerprint(mol,layerFlags=flags,
35 minPath=LayeredOptions.minPath,maxPath=LayeredOptions.maxPath,
36 fpSize=LayeredOptions.fpSize)
37 @staticmethod
39 txt = LayeredOptions.GetFingerprint(mol,query=query).ToBitString()
40 words = [int(txt[x:x+32],2) for x in range(0,len(txt),32)]
41 return words
42
43 @staticmethod
45 words = LayeredOptions.GetWords(mol,query=query)
46 colqs = []
47 for idx,word in enumerate(words):
48 if not word:
49 continue
50 idx = idx+1
51 colqs.append('%(word)d&Col_%(idx)d=%(word)d'%locals())
52 return ' and '.join(colqs)
53
54
55
56 -def BuildSigFactory(options=None,fdefFile=None,
57 bins=[(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,100)],
58 skipFeats=('LumpedHydrophobe','ZnBinder')):
59 if options:
60 fdefFile = options.fdefFile
61 if not fdefFile:
62 raise ValueError,'bad fdef file'
63 from rdkit.Chem import ChemicalFeatures
64 from rdkit.Chem.Pharm2D import SigFactory
65 featFactory = ChemicalFeatures.BuildFeatureFactory(fdefFile)
66 sigFactory = SigFactory.SigFactory(featFactory,
67 skipFeats=skipFeats,
68 trianglePruneBins=False)
69 sigFactory.SetBins(bins)
70 return sigFactory
71
73 from rdkit.Chem.AtomPairs import Pairs
74 fp=Pairs.GetAtomPairFingerprintAsIntVect(mol)
75 fp._sumCache = fp.GetTotalVal()
76 return fp
78 from rdkit.Chem.AtomPairs import Torsions
79 fp=Torsions.GetTopologicalTorsionFingerprintAsIntVect(mol)
80 fp._sumCache = fp.GetTotalVal()
81 return fp
86 global sigFactory
87 from rdkit.Chem.Pharm2D import Generate
88 try:
89 fp=Generate.Gen2DFingerprint(mol,sigFactory)
90 except IndexError:
91 print 'FAIL:',Chem.MolToSmiles(mol,True)
92 raise
93 return fp
95 from rdkit.Chem import rdMolDescriptors
96 fp = rdMolDescriptors.GetMorganFingerprint(mol,2)
97 fp._sumCache = fp.GetTotalVal()
98 return fp
99
101 try:
102 klass=similarityMethods[similarityMethod]
103 fp = klass(pkl)
104 except:
105 import traceback
106 traceback.print_exc()
107 fp = cPickle.loads(pkl)
108 return fp
109
| Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sat Jan 7 08:29:59 2012 | http://epydoc.sourceforge.net |