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_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}))
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}))
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')