Esempio n. 1
0
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'], [])
Esempio n. 2
0
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'], [])
Esempio n. 3
0
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]))
Esempio n. 4
0
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]))
Esempio n. 5
0
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)
Esempio n. 6
0
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)