1
2
3
4
5
6
7
8
9
10
11 """ This functionality gets mixed into the BitEnsemble class
12
13 """
14 from rdkit.DataStructs.BitEnsemble import BitEnsemble
15
16
18 """ inializes a db table to store our scores
19
20 idInfo and actInfo should be strings with the definitions of the id and
21 activity columns of the table (when desired)
22
23 """
24 if idInfo:
25 cols = [idInfo]
26 else:
27 cols = []
28 for bit in self.GetBits():
29 cols.append('Bit_%d smallint' % (bit))
30 if actInfo:
31 cols.append(actInfo)
32 dbConn.AddTable(tableName, ','.join(cols))
33 self._dbTableName = tableName
34
35
36 -def _ScoreToDb(self, sig, dbConn, tableName=None, id=None, act=None):
37 """ scores the "signature" that is passed in and puts the
38 results in the db table
39
40 """
41 if tableName is None:
42 try:
43 tableName = self._dbTableName
44 except AttributeError:
45 raise ValueError('table name not set in BitEnsemble pre call to ScoreToDb()')
46 if id is not None:
47 cols = [id]
48 else:
49 cols = []
50 score = 0
51 for bit in self.GetBits():
52 b = sig[bit]
53 cols.append(b)
54 score += b
55 if act is not None:
56 cols.append(act)
57 dbConn.InsertData(tableName, cols)
58
59
60 BitEnsemble.InitScoreTable = _InitScoreTable
61 BitEnsemble.ScoreToDb = _ScoreToDb
62