def test_count_column_freqs(self): columns = aligned_columns_to_rows(self.aln, 1) obs = count_column_freqs(columns) expect = {'A C G' : 4, 'C G T' : 3, 'G T A' : 3, 'T A C' : 3} assert obs == expect, (obs, expect) columns = aligned_columns_to_rows(self.aln[:-1], 2) obs = count_column_freqs(columns) expect = {'AA CC GG': 1, 'AC CG GT': 1, 'CC GG TT':1, 'GG TT AA':1, 'GT TA AC':1, 'TT AA CC':1} self.assertEqual(obs, expect)
def test_count_column_freqs(self): columns = aligned_columns_to_rows(self.aln, 1) obs = count_column_freqs(columns) expect = {'A C G' : 4, 'C G T' : 3, 'G T A' : 3, 'T A C' : 3} self.assertEqual(obs, expect) columns = aligned_columns_to_rows(self.aln[:-1], 2) obs = count_column_freqs(columns) expect = {'AA CC GG': 1, 'AC CG GT': 1, 'CC GG TT':1, 'GG TT AA':1, 'GT TA AC':1, 'TT AA CC':1} self.assertEqual(obs, expect)
def test_get_ML_probs(self): columns = aligned_columns_to_rows(self.aln, 1) obs = get_ML_probs(columns, with_patterns=True) expect = {'A C G' : 4/13.0, 'C G T' : 3/13.0, 'G T A' : 3/13.0, 'T A C' : 3/13.0} sum = 0 for pattern, lnL, freq in obs: self.assertFloatEqual(lnL, expect[pattern]) sum += lnL assert lnL >= 0 self.assertFloatEqual(sum, 1)
def test_get_ML_probs(self): columns = aligned_columns_to_rows(self.aln, 1) obs = get_ML_probs(columns, with_patterns=True) expect = {'A C G' : 4/13.0, 'C G T' : 3/13.0, 'G T A' : 3/13.0, 'T A C' : 3/13.0} sum = 0 for pattern, lnL, freq in obs: self.assertFloatEqual(lnL, expect[pattern]) sum += lnL self.assertTrue(lnL >= 0) self.assertFloatEqual(sum, 1)
def test_aligned_columns_to_rows(self): obs = aligned_columns_to_rows(self.aln[:-1], 3) expect = [['AAA','CCC','GGG'],['CCC','GGG','TTT'], ['GGG','TTT','AAA'], ['TTT','AAA','CCC']] assert obs == expect, (obs, expect) obs = aligned_columns_to_rows(self.aln, 1) expect = [['A','C','G'],['A','C','G'],['A','C','G'], ['C','G','T'],['C','G','T'],['C','G','T'], ['G','T','A'],['G','T','A'],['G','T','A'], ['T','A','C'],['T','A','C'],['T','A','C'], ['A','C','G']] assert obs == expect, (obs, expect) obs = aligned_columns_to_rows(self.gapped_aln[:-1], 3) expect = [['TTT','TAT','TTT']] assert obs == expect, (obs, expect) obs = aligned_columns_to_rows(self.ambig_aln, 2, IUPAC_DNA_ambiguities) expect = [['AA','CC','CA'],['CC','CC','CC'],['TT','TT','TG']] assert obs == expect, (obs, expect)
def test_aligned_columns_to_rows(self): obs = aligned_columns_to_rows(self.aln[:-1], 3) expect = [['AAA','CCC','GGG'],['CCC','GGG','TTT'], ['GGG','TTT','AAA'], ['TTT','AAA','CCC']] assert obs == expect, (obs, expect) obs = aligned_columns_to_rows(self.aln, 1) expect = [['A','C','G'],['A','C','G'],['A','C','G'], ['C','G','T'],['C','G','T'],['C','G','T'], ['G','T','A'],['G','T','A'],['G','T','A'], ['T','A','C'],['T','A','C'],['T','A','C'], ['A','C','G']] self.assertEqual(obs, expect) obs = aligned_columns_to_rows(self.gapped_aln[:-1], 3, allowed_chars='ACGT') expect = [['TTT','TAT','TTT']] self.assertEqual(obs, expect) obs = aligned_columns_to_rows(self.ambig_aln, 2, exclude_chars=IUPAC_DNA_ambiguities) expect = [['AA','CC','CA'],['CC','CC','CC'],['TT','TT','TG']] self.assertEqual(obs, expect)
def test_aligned_columns_to_rows(self): obs = aligned_columns_to_rows(self.aln[:-1], 3) expect = [['AAA', 'CCC', 'GGG'], ['CCC', 'GGG', 'TTT'], ['GGG', 'TTT', 'AAA'], ['TTT', 'AAA', 'CCC']] assert obs == expect, (obs, expect) obs = aligned_columns_to_rows(self.aln, 1) expect = [['A', 'C', 'G'], ['A', 'C', 'G'], ['A', 'C', 'G'], ['C', 'G', 'T'], ['C', 'G', 'T'], ['C', 'G', 'T'], ['G', 'T', 'A'], ['G', 'T', 'A'], ['G', 'T', 'A'], ['T', 'A', 'C'], ['T', 'A', 'C'], ['T', 'A', 'C'], ['A', 'C', 'G']] assert obs == expect, (obs, expect) obs = aligned_columns_to_rows(self.gapped_aln[:-1], 3) expect = [['TTT', 'TAT', 'TTT']] assert obs == expect, (obs, expect) obs = aligned_columns_to_rows(self.ambig_aln, 2, IUPAC_DNA_ambiguities) expect = [['AA', 'CC', 'CA'], ['CC', 'CC', 'CC'], ['TT', 'TT', 'TG']] assert obs == expect, (obs, expect)
def test_get_G93_lnL_from_array(self): columns = aligned_columns_to_rows(self.aln, 1) obs = get_G93_lnL_from_array(columns) expect = math.log(math.pow(4/13.0, 4)) + 3*math.log(math.pow(3/13.0, 3)) self.assertFloatEqual(obs, expect)
def test_get_G93_lnL_from_array(self): columns = aligned_columns_to_rows(self.aln, 1) obs = get_G93_lnL_from_array(columns) expect = math.log(math.pow(4 / 13.0, 4)) + 3 * math.log(math.pow(3 / 13.0, 3)) self.assertFloatEqual(obs, expect)