Beispiel #1
0
    def test_net_zero(self):
        transcript = PreTranscript([(1001, 1100), (1301, 1400), (1701, 1800)], strand=STRAND.POS)
        for patt in transcript.generate_splicing_patterns():
            transcript.transcripts.append(Transcript(transcript, patt))
        trans_evidence = MockObject(
            annotations={},
            read_length=100,
            max_expected_fragment_size=550,
            call_error=11,
            overlapping_transcripts={transcript},
        )
        setattr(
            trans_evidence,
            '_select_transcripts',
            lambda *pos: trans_evidence.overlapping_transcripts,
        )
        setattr(
            trans_evidence,
            'distance',
            partial(TranscriptomeEvidence.distance, trans_evidence),
        )

        bpp = BreakpointPair(
            Breakpoint('1', 1099, orient=ORIENT.LEFT),
            Breakpoint('1', 1302, orient=ORIENT.RIGHT),
            untemplated_seq='TT',
        )
        dist = partial(TranscriptomeEvidence.distance, trans_evidence)
        assert bpp.net_size() == Interval(-200)
        assert bpp.net_size(dist) == Interval(0)
 def test_net_zero(self):
     bpp = BreakpointPair(Breakpoint('1', 1099, orient=ORIENT.LEFT),
                          Breakpoint('1', 1302, orient=ORIENT.RIGHT),
                          untemplated_seq='TT')
     dist = partial(TranscriptomeEvidence.distance, self.trans_evidence)
     self.assertEqual(Interval(-200), bpp.net_size())
     self.assertEqual(Interval(0), bpp.net_size(dist))
Beispiel #3
0
    def test_insertion(self):
        bpp = BreakpointPair(Breakpoint('1', 11, orient=ORIENT.RIGHT),
                             Breakpoint('1', 10, orient=ORIENT.LEFT),
                             untemplated_seq='T')
        self.assertEqual(Interval(1), bpp.net_size())

        bpp = BreakpointPair(Breakpoint('1', 11, orient=ORIENT.RIGHT),
                             Breakpoint('1', 10, orient=ORIENT.LEFT),
                             untemplated_seq='TT')
        self.assertEqual(Interval(2), bpp.net_size())
Beispiel #4
0
    def test_deletion_in_exon(self):
        bpp = BreakpointPair(Breakpoint('7', 55238890, orient=ORIENT.LEFT),
                             Breakpoint('7', 55238899, orient=ORIENT.RIGHT),
                             untemplated_seq='')
        self.assertEqual(Interval(-8), bpp.net_size(self.egfr_distance))

        bpp = BreakpointPair(Breakpoint('7', 55238890, orient=ORIENT.LEFT),
                             Breakpoint('7', 55238899, orient=ORIENT.RIGHT),
                             untemplated_seq='GTAC')
        self.assertEqual(Interval(-4), bpp.net_size(self.egfr_distance))
Beispiel #5
0
 def test_deletion_across_intron(self):
     # 55240539_55240621  55323947_55324313
     bpp = BreakpointPair(Breakpoint('7', 55240610, orient=ORIENT.LEFT),
                          Breakpoint('7', 55323950, orient=ORIENT.RIGHT),
                          untemplated_seq='GTAC')
     self.assertEqual(Interval(-10), bpp.net_size(self.egfr_distance))
     # 55210998_55211181 55218987_55219055
     bpp = BreakpointPair(Breakpoint('7', 55211180, orient=ORIENT.LEFT),
                          Breakpoint('7', 55218990, orient=ORIENT.RIGHT),
                          untemplated_seq='')
     self.assertEqual(Interval(-4 + -135, -4),
                      bpp.net_size(self.egfr_distance))
Beispiel #6
0
    def test_deletion_in_exon(self, egfr_evidence):
        bpp = BreakpointPair(
            Breakpoint('7', 55238890, orient=ORIENT.LEFT),
            Breakpoint('7', 55238899, orient=ORIENT.RIGHT),
            untemplated_seq='',
        )
        assert bpp.net_size(lambda p1, p2: TranscriptomeEvidence.distance(
            egfr_evidence, p1, p2)) == Interval(-8)

        bpp = BreakpointPair(
            Breakpoint('7', 55238890, orient=ORIENT.LEFT),
            Breakpoint('7', 55238899, orient=ORIENT.RIGHT),
            untemplated_seq='GTAC',
        )
        assert bpp.net_size(lambda p1, p2: TranscriptomeEvidence.distance(
            egfr_evidence, p1, p2)) == Interval(-4)
Beispiel #7
0
 def test_deletion(self):
     bpp = BreakpointPair(
         Breakpoint('1', 10, orient=ORIENT.LEFT),
         Breakpoint('1', 15, orient=ORIENT.RIGHT),
         untemplated_seq='',
     )
     assert bpp.net_size() == Interval(-4)
Beispiel #8
0
 def test_indel(self):
     bpp = BreakpointPair(
         Breakpoint('1', 13, orient=ORIENT.RIGHT),
         Breakpoint('1', 10, orient=ORIENT.LEFT),
         untemplated_seq='TTT',
     )
     assert bpp.net_size() == Interval(1)
Beispiel #9
0
 def test_inversion_insertion(self):
     bpp = BreakpointPair(
         Breakpoint('1', 10, orient=ORIENT.LEFT),
         Breakpoint('1', 15, orient=ORIENT.LEFT),
         untemplated_seq='TT',
     )
     assert bpp.net_size() == Interval(2)
 def test_inversion(self):
     bpp = BreakpointPair(
         Breakpoint('1', 10, orient=ORIENT.LEFT),
         Breakpoint('1', 15, orient=ORIENT.LEFT),
         untemplated_seq='',
     )
     self.assertEqual(Interval(0), bpp.net_size())
 def test_duplication_with_insertion(self):
     bpp = BreakpointPair(
         Breakpoint('1', 10, orient=ORIENT.RIGHT),
         Breakpoint('1', 15, orient=ORIENT.LEFT),
         untemplated_seq='TTT',
     )
     self.assertEqual(Interval(9), bpp.net_size())
 def test_large_indel(self):
     bpp = BreakpointPair(
         Breakpoint('1', 10, orient=ORIENT.LEFT),
         Breakpoint('1', 101, orient=ORIENT.RIGHT),
         untemplated_seq='TTT',
     )
     self.assertEqual(Interval(-87), bpp.net_size())
Beispiel #13
0
 def test_deletion_across_intron(self, egfr_evidence):
     # 55240539_55240621  55323947_55324313
     bpp = BreakpointPair(
         Breakpoint('7', 55240610, orient=ORIENT.LEFT),
         Breakpoint('7', 55323950, orient=ORIENT.RIGHT),
         untemplated_seq='GTAC',
     )
     assert bpp.net_size(lambda p1, p2: TranscriptomeEvidence.distance(
         egfr_evidence, p1, p2)) == Interval(-10)
     # 55210998_55211181 55218987_55219055
     bpp = BreakpointPair(
         Breakpoint('7', 55211180, orient=ORIENT.LEFT),
         Breakpoint('7', 55218990, orient=ORIENT.RIGHT),
         untemplated_seq='',
     )
     assert bpp.net_size(lambda p1, p2: TranscriptomeEvidence.distance(
         egfr_evidence, p1, p2)) == Interval(-4 + -135, -4)
Beispiel #14
0
 def test_insertion_at_exon_start_mixed(self):
     # EXON 15: 55232973-55233130
     # EXON 16: 55238868-55238906
     # EXON 17: 55240676-55240817
     bpp = BreakpointPair(Breakpoint('7', 55238867, orient=ORIENT.LEFT),
                          Breakpoint('7', 55238868, orient=ORIENT.RIGHT),
                          untemplated_seq='TTATCG')
     self.assertEqual(Interval(6), bpp.net_size(self.egfr_distance))
Beispiel #15
0
 def test_indel_in_intron(self):
     # 55238868_55238906
     bpp = BreakpointPair(
         Breakpoint('7', 5523700, orient=ORIENT.LEFT),
         Breakpoint('7', 5523751, orient=ORIENT.RIGHT),
         untemplated_seq='TTATCG',
     )
     self.assertEqual(Interval(-44), bpp.net_size(self.egfr_distance))
Beispiel #16
0
 def test_insertion_at_exon_end_mixed(self):
     # 55238868_55238906
     bpp = BreakpointPair(
         Breakpoint('7', 55238905, orient=ORIENT.LEFT),
         Breakpoint('7', 55238906, orient=ORIENT.RIGHT),
         untemplated_seq='TTATCG',
     )
     self.assertEqual(Interval(6), bpp.net_size(self.egfr_distance))
Beispiel #17
0
 def test_insertion_at_exon_start(self, egfr_evidence):
     # 55238868_55238906
     bpp = BreakpointPair(
         Breakpoint('7', 55233130, orient=ORIENT.LEFT),
         Breakpoint('7', 55238868, orient=ORIENT.RIGHT),
         untemplated_seq='TTATCG',
     )
     assert bpp.net_size(lambda p1, p2: TranscriptomeEvidence.distance(
         egfr_evidence, p1, p2)) == Interval(6)
Beispiel #18
0
 def test_indel_in_intron(self, egfr_evidence):
     # 55238868_55238906
     bpp = BreakpointPair(
         Breakpoint('7', 5523700, orient=ORIENT.LEFT),
         Breakpoint('7', 5523751, orient=ORIENT.RIGHT),
         untemplated_seq='TTATCG',
     )
     assert bpp.net_size(lambda p1, p2: TranscriptomeEvidence.distance(
         egfr_evidence, p1, p2)) == Interval(-44)
Beispiel #19
0
 def test_insertion_at_exon_start_mixed(self, egfr_evidence):
     # EXON 15: 55232973-55233130
     # EXON 16: 55238868-55238906
     # EXON 17: 55240676-55240817
     bpp = BreakpointPair(
         Breakpoint('7', 55238867, orient=ORIENT.LEFT),
         Breakpoint('7', 55238868, orient=ORIENT.RIGHT),
         untemplated_seq='TTATCG',
     )
     assert bpp.net_size(lambda p1, p2: TranscriptomeEvidence.distance(
         egfr_evidence, p1, p2)) == Interval(6)
Beispiel #20
0
    def test_deletion_with_useq(self):
        bpp = BreakpointPair(Breakpoint('1', 6964, orient='L'),
                             Breakpoint('1', 7040, orient='R'),
                             opposing=False,
                             untemplated_seq='CCCT')
        self.assertEqual(sorted([SVTYPE.DEL, SVTYPE.INS]),
                         sorted(BreakpointPair.classify(bpp)))

        def distance(x, y):
            return Interval(abs(x - y))

        net_size = BreakpointPair.net_size(bpp, distance)
        self.assertEqual(Interval(-71), net_size)
        self.assertEqual(sorted([SVTYPE.DEL]),
                         sorted(BreakpointPair.classify(bpp, distance)))