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))
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())
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))
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))
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)
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)
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)
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())
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)
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))
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))
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))
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)
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)
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)
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)))