def test_aminoAcids(self): """CodonUsage aminoAcids should correctly count amino acids""" freqs = {'UUC':5, 'AUA':10, 'AUG':10, 'CGC':3, 'AGG':2, 'XYZ':8, 'UAA':2, 'UGA':1} u = CodonUsage(freqs, "test") self.assertEqual(u.Info, 'test') for key, val in u.items(): if key in freqs: self.assertEqual(val, freqs[key]) else: self.assertEqual(val, 0) aa = u.aminoAcids() self.assertEqual(aa, AminoAcidUsage({'F':5,'I':10,'M':10,'R':5,'*':3,'X':8})) #check that it works with a different genetic code u.GeneticCode = GeneticCodes['2'] aa = u.aminoAcids() self.assertEqual(aa, AminoAcidUsage({'F':5,'I':0,'M':20,'R':3,'*':4,'W':1,'X':8})) #check that it works if a genetic code is supplied explicitly u.GeneticCode = GeneticCodes[1] aa = u.aminoAcids() self.assertEqual(aa, AminoAcidUsage({'F':5,'I':10,'M':10,'R':5,'*':3,'X':8})) aa_2 = u.aminoAcids(2) self.assertEqual(aa_2, AminoAcidUsage({'F':5,'I':0,'M':20,'R':3,'*':4,'W':1,'X':8})) #check that we held onto the info object through the above self.assertEqual(aa_2.Info, 'test')
def test_aminoAcids(self): """BaseUsage aminoAcids should give the same results as the codons""" known_data = { 'AAA' : .6 * .6 * .6, 'AAU' : .6 * .6 * .4, 'AUA' : .6 * .4 * .6, 'AUU' : .6 * .4 * .4, 'UAA' : .4 * .6 * .6, 'UAU' : .4 * .6 * .4, 'UUA' : .4 * .4 * .6, 'UUU' : .4 * .4 * .4, } known = CodonUsage(known_data) b = BaseUsage({'a':3, 'T':2, 'X':1}) self.assertEqual(b.aminoAcids(), known.aminoAcids()) #check that the genetic code is passed through correctly all_g = GeneticCode('G'*64) self.assertEqual(b.aminoAcids(all_g), AminoAcidUsage({'G':1}))