def test_getRep(self): '''getRep should return the desired number of sequences ''' aaUsage = tcrRepSim.readAaUsage(self.aaUsageFile) codonUsage = tcrRepSim.readCodonUsage(self.codonUsageFile) seqs = tcrRepSim.getUniqSeqRep(10, aaUsage[9], codonUsage) tcrRepSim.getRep( seqs, 50, None ) total = sum([s.count for s in seqs]) self.assertTrue( total == 50 )
def test_getUniqSeqRep(self): '''getUniqSeqRep should return the desired number of uniq sequences ''' aaUsage = tcrRepSim.readAaUsage(self.aaUsageFile) codonUsage = tcrRepSim.readCodonUsage(self.codonUsageFile) seqs = tcrRepSim.getUniqSeqRep(100, aaUsage[9], codonUsage) self.assertTrue( len(seqs) == 100) visited = [] for s in seqs: self.assertTrue( s.nuc not in visited ) visited .append(s.nuc)
def test_sampling(self): '''sampling should return the desired number of sequences ''' aaUsage = tcrRepSim.readAaUsage(self.aaUsageFile) codonUsage = tcrRepSim.readCodonUsage(self.codonUsageFile) seqs = tcrRepSim.getUniqSeqRep(10, aaUsage[9], codonUsage) tcrRepSim.getRep( seqs, 50, None ) samseqs = tcrRepSim.sampling( seqs, 20 ) total = sum([s.count for s in samseqs]) self.assertTrue( len(samseqs) <= 10 ) self.assertTrue( total == 20 )
def test_readAaUsage_goodInput(self): '''readAaUsage should return correct known usage''' len2aaUsage = tcrRepSim.readAaUsage( self.goodEx ) lens = [2, 4] knownUsage = {2:[{'C':9999.0/10000, 'A':1.0/10000}, {'F':3.0/3}], 4:[ {'C':100.0/100}, {'A':79.0/100, 'R': 1.0/100, 'S':20.0/100}, {'A':500.0/1000, 'C':200.0/1000, 'G':300.0/1000},{'F':1}] } for l in lens: self.assertTrue( l in len2aaUsage ) self.assertTrue( len( len2aaUsage[l] ) == l ) aaUsage = len2aaUsage[l] known = knownUsage[l] for i in xrange(l): s = aaUsage[i] freqs = known[i] a2c = {} for a in s: if a in a2c: a2c[a] += 1 else: a2c[a] = 1 for a in a2c: a2c[a] = float( a2c[a] )/len(s) self.assertTrue( a2c[a] == freqs[a] )