def test_single_bp_dup(self): transcript = fusion.FusionTranscript() transcript.position = Interval(1, 500) transcript.exons = [ genomic.Exon(1, 7, transcript=transcript, intact_end_splice=False), genomic.Exon(8, 8, transcript=transcript, intact_start_splice=False, intact_end_splice=False), genomic.Exon(9, 100, transcript=transcript, intact_start_splice=False), genomic.Exon(200, 500, transcript=transcript), ] cfg = DiagramSettings(width=1500) canvas = Drawing(size=(cfg.width, 1000)) drawing_width = cfg.width - cfg.label_left_margin - cfg.left_margin - cfg.right_margin canvas.add( draw_ustranscript(cfg, canvas, transcript, target_width=drawing_width)) if OUTPUT_SVG: canvas.saveas('test_single_bp_dup.svg')
def test_single_bp_ins_exon(self): transcript = fusion.FusionTranscript() transcript.position = Interval(401258, 408265) transcript.exons = [ genomic.Exon(401258, 401461, transcript=transcript), genomic.Exon(404799, 405254, intact_end_splice=False, transcript=transcript), genomic.Exon( 405255, 405255, intact_start_splice=False, intact_end_splice=False, transcript=transcript, ), genomic.Exon(405256, 408265, intact_start_splice=False, transcript=transcript), ] cfg = DiagramSettings(width=1500) canvas = Drawing(size=(cfg.width, 1000)) drawing_width = cfg.width - cfg.label_left_margin - cfg.left_margin - cfg.right_margin canvas.add( draw_ustranscript(cfg, canvas, transcript, target_width=drawing_width)) if OUTPUT_SVG: canvas.saveas('test_single_bp_ins_exon.svg')
def test_draw_consec_exons(self): d = DiagramSettings() # domains = [protein.Domain()] t = build_transcript( gene=None, cds_start=50, cds_end=249, exons=[(1, 99), (200, 299), (300, 350), (400, 499)], strand=STRAND.POS, domains=[], ) b = Breakpoint('1', 350, 410, orient=ORIENT.LEFT) g = draw_ustranscript(d, self.canvas, t, 500, colors={t.exons[1]: '#FFFF00'}, breakpoints=[b]) self.canvas.add(g) if OUTPUT_SVG: self.canvas.saveas('test_draw_consec_exons.svg') # self.canvas.saveas('test_draw_ustranscript.svg') self.assertEqual(2, len(self.canvas.elements)) self.assertEqual(3, len(g.elements)) # check that only 2 splicing marks were created self.assertEqual(2, len(g.elements[0].elements[0].elements)) # get the second exon ex2 = g.elements[0].elements[1].elements[2].elements[0] print(ex2) self.assertAlmostEqual(120.7783426339, ex2.attribs.get('width')) # get the third exon ex3 = g.elements[0].elements[1].elements[3].elements[0] print(ex3) self.assertAlmostEqual(96.52494419642852, ex3.attribs.get('width'))
def test_draw_consec_exons(self, canvas): d = DiagramSettings(domain_name_regex_filter=r'.*') # domains = [protein.Domain()] t = build_transcript( gene=None, cds_start=50, cds_end=249, exons=[(1, 99), (200, 299), (300, 350), (400, 499)], strand=STRAND.POS, domains=[], ) b = Breakpoint('1', 350, 410, orient=ORIENT.LEFT) g = draw_ustranscript(d, canvas, t, 500, colors={t.exons[1]: '#FFFF00'}, breakpoints=[b]) canvas.add(g) if OUTPUT_SVG: canvas.saveas('test_draw_consec_exons.svg') # canvas.saveas('test_draw_ustranscript.svg') assert len(canvas.elements) == 2 assert len(g.elements) == 3 # check that only 2 splicing marks were created assert len(g.elements[0].elements[0].elements) == 2 # get the second exon ex2 = g.elements[0].elements[1].elements[2].elements[0] print(ex2) assert pytest.approx(ex2.attribs.get('width')) == 120.7783426339 # get the third exon ex3 = g.elements[0].elements[1].elements[3].elements[0] print(ex3) assert pytest.approx(ex3.attribs.get('width')) == 96.52494419642852
def test_draw_ustranscript(self): d = DiagramSettings() # domains = [protein.Domain()] d1 = protein.Domain('first', [(55, 61), (71, 73)]) d2 = protein.Domain('second', [(10, 20), (30, 34)]) t = build_transcript( gene=None, cds_start=50, cds_end=249, exons=[(1, 99), (200, 299), (400, 499)], strand=STRAND.NEG, domains=[d2, d1], ) b = Breakpoint('1', 350, 410, orient=ORIENT.LEFT) g = draw_ustranscript(d, self.canvas, t, 500, colors={t.exons[1]: '#FFFF00'}, breakpoints=[b]) self.canvas.add(g) # self.canvas.saveas('test_draw_ustranscript.svg') self.assertEqual(2, len(self.canvas.elements)) self.assertEqual(3, len(g.elements)) for el, cls in zip(g.elements[0].elements, ['splicing', 'exon_track', 'protein']): self.assertEqual(cls, el.attribs.get('class', '')) for el, cls in zip(g.elements[0].elements[1].elements, ['scaffold', 'exon', 'exon', 'exon']): self.assertEqual(cls, el.attribs.get('class', '')) for el, cls in zip(g.elements[0].elements[2].elements, ['translation', 'domain', 'domain']): self.assertEqual(cls, el.attribs.get('class', '')) self.assertEqual( sum([ d.track_height, d.splice_height, 2 * d.padding, d.domain_track_height * 2, d.translation_track_height, d.padding, d.breakpoint_top_margin, d.breakpoint_bottom_margin, ]), g.height, ) self.assertEqual(d1.name, g.labels['D1']) self.assertEqual(d2.name, g.labels['D2'])
def test_two_exon_transcript(self): transcript = fusion.FusionTranscript() transcript.position = Interval(1, 555) transcript.exons = [ genomic.Exon(55820038, 55820969, transcript=transcript), genomic.Exon(55820971, 55820976, transcript=transcript), ] transcript.exon_mapping[Interval(55820971, 55820976)] = MockObject( transcript=MockObject(exon_number=lambda *x: 2)) cfg = DiagramSettings(width=1500) canvas = Drawing(size=(cfg.width, 1000)) drawing_width = cfg.width - cfg.label_left_margin - cfg.left_margin - cfg.right_margin canvas.add( draw_ustranscript(cfg, canvas, transcript, target_width=drawing_width)) if OUTPUT_SVG: canvas.saveas('test_two_exon_transcript.svg')