Ejemplo n.º 1
0
 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')
Ejemplo n.º 2
0
 def test_positionalBases(self):
     """CodonUsage bases should count bases at each position correctly"""
     freqs = {'UUC':5, 'AUA':10, 'AUG':10, 'CGC':3, 'AGG':2, 'XYZ':8,
         'UAA':2, 'UGA':1}
     u = CodonUsage(freqs)
     b = u.positionalBases()
     assert isinstance(b, PositionalBaseUsage)
     first, second, third = b
     self.assertEqual(first, BaseUsage({'U':8,'C':3,'A':22,'X':8}))
     self.assertEqual(second, BaseUsage({'U':25,'C':0,'A':2,'G':6,'Y':8}))
     self.assertEqual(third, BaseUsage({'C':8,'A':13,'G':12,'Z':8}))
     #check that it also works when we purge
     p = u.positionalBases(purge_unwanted=True)
     first, second, third = p
     self.assertEqual(first, BaseUsage({'U':5,'C':3,'A':2}))
     self.assertEqual(second, BaseUsage({'U':5,'G':5}))
     self.assertEqual(third, BaseUsage({'C':8,'G':2}))
     #check that it also works with a different genetic code, and, 
     #incidentally, that the purging didn't affect the original object
     u.GeneticCode = GeneticCodes[2] #mt code: different stop codons
     p = u.positionalBases(purge_unwanted=True)
     first, second, third = p
     self.assertEqual(first, BaseUsage({'U':6,'C':3,'A':20}))
     self.assertEqual(second, BaseUsage({'U':25,'G':4}))
     self.assertEqual(third, BaseUsage({'C':8,'A':11,'G':10}))