def test_ftm(self): """Test if ftm is running properly""" result = getBBRCDesc.getBBRCDescResult(self.data,"FTM", 6) expected_atts = 31 expected_data_length = 32 self.assertEqual(expected_atts,len(result.domain.attributes)) self.assertEqual(expected_data_length, len(result[0]))
def test_smartsRecalc(self): """Test bbrc feature recalculation""" result = getBBRCDesc.getBBRCDescResult(self.data, "FTM", 6) smarts = [smrt.name for smrt in result.domain.attributes[len(self.data.domain.attributes):]] result2 = getBBRCDesc.getSMARTSrecalcDesc(self.data,smarts) #expected_atts = 3 self.assertEqual(len(result),len(result2))
def test_ftm(self): """Test if ftm is running properly""" result = getBBRCDesc.getBBRCDescResult(self.data, "FTM", 6) expected_atts = 31 expected_data_length = 32 self.assertEqual(expected_atts, len(result.domain.attributes)) self.assertEqual(expected_data_length, len(result[0]))
def getDescriptors(self, smiles): self.getSmilesData(smiles) # Calculate descriptors defined in the model files descList = self.model.varNames savedSmilesData = dataUtilities.DataTable(self.smilesData) #Try 3 time to get All compounds descriptors nTry = 3 errorDesc = "" while nTry > 0: try: traceLog = "Model Location:"+str(self.modelLocation)+"\n" nBadEx = 0 # Determine Signature and non-Signature descriptor names cinfonyDesc, clabDesc, signatureHeight, bbrcDesc, signDesc = descUtilities.getDescTypes(descList) # Signatures if "sign" in DescMethodsAvailable and signatureHeight: traceLog += "Calculating signatures...\n" print "Calculating signatures...." preCalcData = dataUtilities.DataTable(self.preDefSignatureFile) startHeight = 0 # Not used desc ignored in model prediction endHeight = signatureHeight self.smilesData = getSignatures.getSignatures(self.smilesData, startHeight, endHeight, preCalcData) # C-Lab desc if "clab" in DescMethodsAvailable and clabDesc: traceLog += "Calculating C-Lab...\n" print "Calculating C-Lab desc...." self.smilesData = ClabUtilities.appendCLabDesc(clabDesc, self.smilesData) # Cinfony if cinfonyDesc: traceLog += "Calculating Cinfony...\n" print "Calculating Cinfony desc..." self.smilesData = getCinfonyDesc.getCinfonyDescResults(self.smilesData, cinfonyDesc, radius = 5) # bbrcDesc if "bbrc" in DescMethodsAvailable and bbrcDesc: traceLog += "Calculating BBRC...\n" print "Calculating BBRC desc..." self.smilesData = getBBRCDesc.getBBRCDescResult(self.smilesData, algo = "FTM", minSupPar = 1, descList = bbrcDesc) # Detect if the descripts calaculation or something else went wrong! for ex in self.smilesData: if sum([ex[attr].isSpecial() for attr in self.smilesData.domain.attributes]) == len(self.smilesData.domain.attributes): nBadEx +=1 if nBadEx: traceLog += "WARNING: Desc. Calculation: From the "+str(len(self.smilesData))+" compounds, "+str(nBadEx)+" could not be calculated!\n" print "WARNING: Desc. Calculation: From the "+str(len(self.smilesData))+" compounds, "+str(nBadEx)+" could not be calculated!" print "WARNING: Tying again..." self.smilesData = dataUtilities.DataTable(savedSmilesData) nTry -= 1 else: nTry = 0 except Exception, e: errorDesc = "Error Calculating Descriptors:;"+traceLog+str(e)+";" nTry -= 1
def test_bbrc(self): """ Test if bbrc is running properly """ import bbrc # the minimum support for BBRC is absolute not relative like for FTM result = getBBRCDesc.getBBRCDescResult(self.data, "BBRC", 2) expected_atts = 9 expected_data_length = 10 self.assertEqual(expected_atts,len(result.domain.attributes)) self.assertEqual(expected_data_length, len(result[0]))
def test_bbrc(self): """ Test if bbrc is running properly """ import bbrc # the minimum support for BBRC is absolute not relative like for FTM result = getBBRCDesc.getBBRCDescResult(self.data, "BBRC", 2) expected_atts = 9 expected_data_length = 10 self.assertEqual(expected_atts, len(result.domain.attributes)) self.assertEqual(expected_data_length, len(result[0]))
def test_smartsRecalc(self): """Test bbrc feature recalculation""" result = getBBRCDesc.getBBRCDescResult(self.data, "FTM", 6) smarts = [ smrt.name for smrt in result.domain.attributes[len(self.data.domain.attributes):] ] result2 = getBBRCDesc.getSMARTSrecalcDesc(self.data, smarts) #expected_atts = 3 self.assertEqual(len(result), len(result2))
def getDescriptors(self, smiles): self.getSmilesData(smiles) # Calculate descriptors defined in the model files descList = self.model.varNames savedSmilesData = dataUtilities.DataTable(self.smilesData) #Try 3 time to get All compounds descriptors nTry = 3 errorDesc = "" while nTry > 0: try: #if True: traceLog = "Model Location:" + str(self.modelLocation) + "\n" nBadEx = 0 # Determine Signature and non-Signature descriptor names cinfonyDesc, clabDesc, signatureHeight, bbrcDesc, signDesc = descUtilities.getDescTypes( descList) # Signatures if "sign" in DescMethodsAvailable and signatureHeight: traceLog += "Calculating signatures...\n" print "Calculating signatures...." preCalcData = dataUtilities.DataTable( self.preDefSignatureFile) startHeight = 0 # Not used desc ignored in model prediction endHeight = signatureHeight self.smilesData = getSignatures.getSignatures( self.smilesData, startHeight, endHeight, preCalcData) # C-Lab desc if "clab" in DescMethodsAvailable and clabDesc: traceLog += "Calculating C-Lab...\n" print "Calculating C-Lab desc...." self.smilesData = ClabUtilities.appendCLabDesc( clabDesc, self.smilesData) # Cinfony if cinfonyDesc: traceLog += "Calculating Cinfony...\n" print "Calculating Cinfony desc..." self.smilesData = getCinfonyDesc.getCinfonyDescResults( self.smilesData, cinfonyDesc, radius=5) # bbrcDesc if "bbrc" in DescMethodsAvailable and bbrcDesc: traceLog += "Calculating BBRC...\n" print "Calculating BBRC desc..." self.smilesData = getBBRCDesc.getBBRCDescResult( self.smilesData, algo="FTM", minSupPar=1, descList=bbrcDesc) # Detect if the descripts calaculation or something else went wrong! for ex in self.smilesData: if sum([ ex[attr].isSpecial() for attr in self.smilesData.domain.attributes ]) == len(self.smilesData.domain.attributes): nBadEx += 1 if nBadEx: traceLog += "WARNING: Desc. Calculation: From the " + str( len(self.smilesData)) + " compounds, " + str( nBadEx) + " could not be calculated!\n" print "WARNING: Desc. Calculation: From the " + str( len(self.smilesData)) + " compounds, " + str( nBadEx) + " could not be calculated!" print "WARNING: Tying again..." self.smilesData = dataUtilities.DataTable(savedSmilesData) nTry -= 1 else: nTry = 0 #else: except Exception, e: errorDesc = "Error Calculating Descriptors:;" + traceLog + str( e) + ";" nTry -= 1