class TestBasicAnalysis(unittest.TestCase): def setUp(self): aln_string = """ >seq1 GTCAGTCAGTCAGTCACCCC >seq2 GTCAGTCAGTCAGTCACCCC >seq3 ATCAATCAGTCAATCACCCC """ self.seqs = helpers.parse_fasta(aln_string) self.aln = Alignment(self.seqs.values()) def test_consensus_reference(self): self.assertEqual(str(self.aln.reference_sequence), 'GTCAGTCAGTCAGTCACCCC') def test_hm_pos(self): for result in self.aln.analyze( (old_focus_pattern, old_control_pattern)): hm_pos = result['hm_pos'] if result['sequence'] in ['seq1', 'seq2']: self.assertFalse(hm_pos) else: self.assertTrue(hm_pos) def test_hm_pos_indices(self): hm_pos_indices = [1, 5, 13] for result in self.aln.analyze( (old_focus_pattern, old_control_pattern)): if result['hm_pos']: self.assertEqual(result['mut_columns'], hm_pos_indices) else: self.assertEqual(result['mut_columns'], [])
class TestBasicAnalysis(unittest.TestCase): def setUp(self): aln_string = """ >seq1 GTCAGTCAGTCAGTCACCCC >seq2 GTCAGTCAGTCAGTCACCCC >seq3 ATCAATCAGTCAATCACCCC """ self.seqs = helpers.parse_fasta(aln_string) self.aln = Alignment(self.seqs.values()) def test_consensus_reference(self): self.assertEqual(str(self.aln.reference_sequence), 'GTCAGTCAGTCAGTCACCCC') def test_hm_pos(self): for result in self.aln.analyze((old_focus_pattern, old_control_pattern)): hm_pos = result['hm_pos'] if result['sequence'] in ['seq1', 'seq2']: self.assertFalse(hm_pos) else: self.assertTrue(hm_pos) def test_hm_pos_indices(self): hm_pos_indices = [1, 5, 13] for result in self.aln.analyze((old_focus_pattern, old_control_pattern)): if result['hm_pos']: self.assertEqual(result['mut_columns'], hm_pos_indices) else: self.assertEqual(result['mut_columns'], [])
class TestMutCounts(unittest.TestCase): def setUp(self): aln_string = """ >seq1 GGTGACGCT >seq2 AGTAACGCT >seq3 GGTAACACT """ ref_seq = Seq.Seq('GGTGACGCT') self.aln = Alignment(helpers.parse_fasta(aln_string).values(), reference_sequence=ref_seq) def __test_counts__(self, pattern, real_counts): for result in self.aln.analyze(pattern): seq_counts = [result[x] for x in ('focus_pos', 'control_pos', 'focus_neg', 'control_neg')] seq_real_counts = real_counts[result['sequence']] self.assertEqual(seq_counts, seq_real_counts) def test_ga_counts(self): self.__test_counts__(mut_pattern.GA, dict( seq1=[0, 0, 1, 3], seq2=[1, 1, 0, 2], seq3=[1, 1, 0, 2])) def test_gg_counts(self): self.__test_counts__(mut_pattern.GG, dict( seq1=[0, 0, 1, 3], seq2=[1, 1, 0, 2], seq3=[0, 2, 1, 1])) def test_gr_counts(self): self.__test_counts__(mut_pattern.GR, dict( seq1=[0, 0, 2, 2], seq2=[2, 0, 0, 2], seq3=[1, 1, 1, 1])) def test_gm_counts(self): self.__test_counts__(mut_pattern.GM, dict( seq1=[0, 0, 2, 2], seq2=[1, 1, 1, 1], seq3=[2, 0, 0, 2])) def test_gv_counts(self): self.__test_counts__(mut_pattern.GV, dict( seq1=[0, 0, 3, 1], seq2=[2, 0, 1, 1], seq3=[2, 0, 1, 1]))
class TestMutCounts(unittest.TestCase): def setUp(self): aln_string = """ >seq1 GGTGACGCT >seq2 AGTAACGCT >seq3 GGTAACACT """ ref_seq = Seq.Seq('GGTGACGCT') self.aln = Alignment(helpers.parse_fasta(aln_string).values(), reference_sequence=ref_seq) def __test_counts__(self, pattern, real_counts): for result in self.aln.analyze(pattern): seq_counts = [ result[x] for x in ('focus_pos', 'control_pos', 'focus_neg', 'control_neg') ] seq_real_counts = real_counts[result['sequence']] self.assertEqual(seq_counts, seq_real_counts) def test_ga_counts(self): self.__test_counts__( mut_pattern.GA, dict(seq1=[0, 0, 1, 3], seq2=[1, 1, 0, 2], seq3=[1, 1, 0, 2])) def test_gg_counts(self): self.__test_counts__( mut_pattern.GG, dict(seq1=[0, 0, 1, 3], seq2=[1, 1, 0, 2], seq3=[0, 2, 1, 1])) def test_gr_counts(self): self.__test_counts__( mut_pattern.GR, dict(seq1=[0, 0, 2, 2], seq2=[2, 0, 0, 2], seq3=[1, 1, 1, 1])) def test_gm_counts(self): self.__test_counts__( mut_pattern.GM, dict(seq1=[0, 0, 2, 2], seq2=[1, 1, 1, 1], seq3=[2, 0, 0, 2])) def test_gv_counts(self): self.__test_counts__( mut_pattern.GV, dict(seq1=[0, 0, 3, 1], seq2=[2, 0, 1, 1], seq3=[2, 0, 1, 1]))
class TestContextBasedEvaluation(unittest.TestCase): def setUp(self): ref_seq = helpers.parse_fasta(""" >all GGGGGGGGGTGTGTGTGT""") self.aln = Alignment(helpers.parse_fasta(""" >seq1 GGGGGGGGGTGTGTGTGT >seq2 AGAGAGAGGTGTGTGTGT >seq3 GGGGGGGGGTATATATAT """).values(), reference_sequence = ref_seq['all']) def test_gg(self): for result in self.aln.analyze(mut_pattern.GG): hm_pos = result['hm_pos'] if result['sequence'] == 'seq2': self.assertTrue(hm_pos) else: self.assertFalse(hm_pos)
class TestContextBasedEvaluation(unittest.TestCase): def setUp(self): ref_seq = helpers.parse_fasta(""" >all GGGGGGGGGTGTGTGTGT""") self.aln = Alignment(helpers.parse_fasta(""" >seq1 GGGGGGGGGTGTGTGTGT >seq2 AGAGAGAGGTGTGTGTGT >seq3 GGGGGGGGGTATATATAT """).values(), reference_sequence=ref_seq['all']) def test_gg(self): for result in self.aln.analyze(mut_pattern.GG): hm_pos = result['hm_pos'] if result['sequence'] == 'seq2': self.assertTrue(hm_pos) else: self.assertFalse(hm_pos)