def testGetRealKmerDetails(self): realKmerDict = dict() realKmerDict["1"] = ["ATTA", 10] realKmerDict["2"] = ["ATTAAAA", 20] realKmerDict["3"] = ["ATTAAAAATTTT", 30] realKmer, realStart, realEnd = compareKmerCommon.getRealKmerDetails(realKmerDict, "1") self.assertEqual(realKmer, "ATTA") self.assertEqual(realStart, 10) self.assertEqual(realEnd, (10 + len("ATTA"))) realKmer, realStart, realEnd = compareKmerCommon.getRealKmerDetails(realKmerDict, "2") self.assertEqual(realKmer, "ATTAAAA") self.assertEqual(realStart, 20) self.assertEqual(realEnd, (20 + len("ATTAAAA"))) realKmer, realStart, realEnd = compareKmerCommon.getRealKmerDetails(realKmerDict, "3") self.assertEqual(realKmer, "ATTAAAAATTTT") self.assertEqual(realStart, 30) self.assertEqual(realEnd, (30 + len("ATTAAAAATTTT")))
def test_getRealKmerDetailsKeyDoesNotExists(self): realKmerDict = dict(); realKmerDict['0'] = ['ATTTA', 10] realKmerDict['1'] = ['ATTTTA', 10] realKmerDict['2'] = ['ATTTTTA', 10] realKmerDict['3'] = ['ATTTAAAA', 10] realKmer, realStart, realEnd = compareKmerCommon.getRealKmerDetails(realKmerDict, '0') self.assertEqual(realKmer, 'ATTTA'); self.assertEqual(realStart, 10); self.assertEqual(realEnd, 15) # does not exist. realKmer, realStart, realEnd = compareKmerCommon.getRealKmerDetails(realKmerDict, '4') self.assertEqual(realKmer, ''); self.assertEqual(realStart, 0); self.assertEqual(realEnd, 0)
def compareRealAndPredicted(realKmerDict, seqDict, pssmList, positive=True): totalFN = totalTP = totalFP = totalTN = 0; kmerEmbedded = True; for seqid, seq in seqDict.iteritems(): realKmer, realStart, realEnd = compareKmerCommon.getRealKmerDetails(realKmerDict, seqid); if realKmer == "" and realStart == 0 and realEnd == 0: #print "Sequence ID: ", seqid , " should be treated like a negative." kmerEmbedded = False; #print "===== Seq ID: ", seqid, ": EMBEDDED K-MER: ", realKmer, ", PREDICTED: ", kmerREString predictedKmerList = getPredictedKmerList(pssmList, seq); kmerFoundInSeq = compareKmerCommon.isRealKmerInPredictedKmerList(realKmer, predictedKmerList) numTP, numFP, numFN, numTN = compareKmerCommon.getNumbers(kmerFoundInSeq, kmerEmbedded, positive); totalTP = totalTP + numTP; totalFP = totalFP + numFP; totalFN = totalFN + numFN; totalTN = totalTN + numTN; return totalTP, totalFP, totalFN, numTN;