예제 #1
0
파일: test_bam.py 프로젝트: shenjia1/mavis
    def test_insertion_and_deletion(self):
        c = [(CIGAR.EQ, 10), (CIGAR.I, 2), (CIGAR.EQ, 5), (CIGAR.D, 2),
             (CIGAR.EQ, 10)]
        exp = [(CIGAR.EQ, 10), (CIGAR.I, 7), (CIGAR.D, 7), (CIGAR.EQ, 10)]

        self.assertEqual(c, _cigar.merge_internal_events(c, 5))
        self.assertEqual(exp, _cigar.merge_internal_events(c, 6))
예제 #2
0
파일: test_bam.py 프로젝트: shenjia1/mavis
    def test_no_internal_events(self):
        c = [(CIGAR.EQ, 10), (CIGAR.EQ, 10)]
        exp = [(CIGAR.EQ, 20)]

        self.assertEqual(exp, _cigar.merge_internal_events(c, 10))

        c = [(CIGAR.X, 10), (CIGAR.EQ, 10)]

        self.assertEqual(c, _cigar.merge_internal_events(c, 10))
예제 #3
0
    def test_no_internal_events(self):
        c = [(CIGAR.EQ, 10), (CIGAR.EQ, 10)]
        exp = [(CIGAR.EQ, 20)]

        assert _cigar.merge_internal_events(c, 10) == exp

        c = [(CIGAR.X, 10), (CIGAR.EQ, 10)]

        assert _cigar.merge_internal_events(c, 10) == c
예제 #4
0
 def test_small_exact_match(self):
     cigar = convert_string_to_cigar(
         '283M17506D5M21275D596M17506D5M21275D313M')
     # [(0, 283), (2, 17506), (0, 5), (2, 21275), (0, 596), (2, 17506), (0, 5), (2, 21275), (0, 313)]
     new_cigar = merge_internal_events(cigar, 20, 15)
     exp = [(CIGAR.M, 283), (CIGAR.I, 5), (CIGAR.D, 17506 + 21275 + 5),
            (CIGAR.M, 596), (CIGAR.I, 5), (CIGAR.D, 17506 + 21275 + 5),
            (CIGAR.M, 313)]
     self.assertEqual(exp, new_cigar)
예제 #5
0
파일: test_bam.py 프로젝트: shenjia1/mavis
 def test_long_suffix_and_prefix(self):
     c = [(CIGAR.S, 94), (CIGAR.EQ, 1), (CIGAR.X, 1), (CIGAR.EQ, 10),
          (CIGAR.X, 1), (CIGAR.EQ, 4), (CIGAR.I, 2), (CIGAR.EQ, 40),
          (CIGAR.I, 1), (CIGAR.D, 714), (CIGAR.EQ, 7), (CIGAR.I, 38),
          (CIGAR.EQ, 1), (CIGAR.X, 1), (CIGAR.EQ, 17), (CIGAR.D, 1),
          (CIGAR.EQ, 1), (CIGAR.X, 1), (CIGAR.EQ, 26), (CIGAR.D, 17),
          (CIGAR.EQ, 10), (CIGAR.S, 4)]
     exp = [(CIGAR.S, 94), (CIGAR.EQ, 1), (CIGAR.X, 1), (CIGAR.EQ, 10),
            (CIGAR.X, 1), (CIGAR.EQ, 4), (CIGAR.I, 2), (CIGAR.EQ, 40),
            (CIGAR.I, 1 + 7 + 38 + 1 + 1 + 17 + 1 + 1),
            (CIGAR.D, 714 + 7 + 1 + 1 + 17 + 1 + 1 + 1), (CIGAR.EQ, 26),
            (CIGAR.D, 17), (CIGAR.EQ, 10), (CIGAR.S, 4)]
     actual = _cigar.merge_internal_events(c, 20, 15)
     print(c)
     print(actual)
     self.assertEqual(exp, actual)
예제 #6
0
파일: test_bam.py 프로젝트: shenjia1/mavis
    def test_single_internal_event(self):
        c = [(CIGAR.EQ, 10), (CIGAR.X, 5), (CIGAR.EQ, 10)]

        self.assertEqual(c, _cigar.merge_internal_events(c, 10))
예제 #7
0
 def test_mismatch_only(self):
     exp = _cigar.convert_string_to_cigar('39=1X16=1X71=22S')
     assert _cigar.merge_internal_events(exp, 20, 15) == exp
예제 #8
0
    def test_single_internal_event(self):
        c = [(CIGAR.EQ, 10), (CIGAR.X, 5), (CIGAR.EQ, 10)]

        assert _cigar.merge_internal_events(c, 10) == c
예제 #9
0
    def test_insertion_and_deletion(self):
        c = [(CIGAR.EQ, 10), (CIGAR.I, 2), (CIGAR.EQ, 5), (CIGAR.D, 2), (CIGAR.EQ, 10)]
        exp = [(CIGAR.EQ, 10), (CIGAR.I, 7), (CIGAR.D, 7), (CIGAR.EQ, 10)]

        assert _cigar.merge_internal_events(c, 5) == c
        assert _cigar.merge_internal_events(c, 6) == exp
예제 #10
0
    def test_mismatch_and_insertion(self):
        c = [(CIGAR.EQ, 10), (CIGAR.X, 2), (CIGAR.EQ, 5), (CIGAR.I, 2), (CIGAR.EQ, 10)]
        exp = [(CIGAR.EQ, 10), (CIGAR.I, 9), (CIGAR.D, 7), (CIGAR.EQ, 10)]

        assert _cigar.merge_internal_events(c, 5) == c
        assert _cigar.merge_internal_events(c, 6) == exp