# $Id$ # # Copyright (C) 2003-2006 greg Landrum and Rational Discovery LLC # # @@ All Rights Reserved @@ # This file is part of the RDKit. # The contents are covered by the terms of the BSD license # which is included in the file license.txt, found at the root # of the RDKit source tree. # """ This functionality gets mixed into the BitEnsemble class """ from rdkit.DataStructs.BitEnsemble import BitEnsemble def _InitScoreTable(self,dbConn,tableName,idInfo='',actInfo=''): """ inializes a db table to store our scores idInfo and actInfo should be strings with the definitions of the id and activity columns of the table (when desired) """ if idInfo: cols = [idInfo] else: cols = [] for bit in self.GetBits(): cols.append('Bit_%d smallint'%(bit)) if actInfo : cols.append(actInfo) dbConn.AddTable(tableName,','.join(cols)) self._dbTableName=tableName def _ScoreToDb(self,sig,dbConn,tableName=None,id=None,act=None): """ scores the "signature" that is passed in and puts the results in the db table """ if tableName is None: try: tableName = self._dbTableName except AttributeError: raise ValueError('table name not set in BitEnsemble pre call to ScoreToDb()') if id is not None: cols = [id] else: cols = [] score = 0 for bit in self.GetBits(): b = sig[bit] cols.append(b) score += b if act is not None: cols.append(act) dbConn.InsertData(tableName,cols) BitEnsemble.InitScoreTable = _InitScoreTable BitEnsemble.ScoreToDb = _ScoreToDb