def test_intergenic(self): # seg is compositon of BED6 and GTF interval: seg = create_interval_from_list( ['1', '0', '10', '.', '.', '+'] + ['.', '.', '.', '.', '.', '.', '.', '.', '.']) types = ['intergenic'] subtypes = [None] genes = [('.', None, 0)] interval = segment.make_uniq_region(seg, types, subtypes, genes) self.assertEqual(interval[:], [ '1', '.', 'intergenic', '1', '10', '.', '+', '.', 'gene_id "."; gene_name "None"; biotype "";' ])
def test_utr3(self): # seg is compositon of BED6 and GTF interval: seg = create_interval_from_list( ['1', '0', '10', '.', '.', '+'] + ['.', '.', '.', '.', '.', '.', '.', '.', '.']) types = ['intron'] subtypes = ['3prime_overlapping_ncRNA'] genes = [('id1', 'A', 20)] interval = segment.make_uniq_region(seg, types, subtypes, genes) self.assertEqual(interval[:], [ '1', '.', 'UTR3', '1', '10', '.', '+', '.', 'gene_id "id1"; gene_name "A"; biotype "mRNA";' ])
def test_take_longer_gene(self): # seg is compositon of BED6 and GTF interval: seg = create_interval_from_list( ['1', '0', '10', '.', '.', '+'] + ['.', '.', '.', '.', '.', '.', '.', '.', '.']) types = ['CDS', 'CDS'] subtypes = ['protein_coding', 'protein_coding'] genes = [('id1', 'A', 20), ('id2', 'B', 40)] interval = segment.make_uniq_region(seg, types, subtypes, genes) self.assertEqual(interval[:], [ '1', '.', 'CDS', '1', '10', '.', '+', '.', 'gene_id "id2"; gene_name "B"; biotype "mRNA";' ])
def test_multiple_biotypes(self): # seg is compositon of BED6 and GTF interval: seg = create_interval_from_list( ['1', '0', '10', '.', '.', '+'] + ['.', '.', '.', '.', '.', '.', '.', '.', '.']) types = ['intron', 'intron'] subtypes = ['protein_coding', 'TEC'] genes = [('id1', 'A', 20), ('id1', 'A', 20)] interval = segment.make_uniq_region(seg, types, subtypes, genes) self.assertEqual(interval[:], [ '1', '.', 'intron', '1', '10', '.', '+', '.', 'gene_id "id1"; gene_name "A"; biotype "lncRNA,pre-mRNA";' ])
def test_highest_rated_type(self): # seg is compositon of BED6 and GTF interval: seg = create_interval_from_list( ['1', '0', '10', '.', '.', '+'] + ['.', '.', '.', '.', '.', '.', '.', '.', '.']) types = ['UTR3', 'intron', 'UTR5'] subtypes = ['protein_coding', 'TEC', 'non_stop_decay'] genes = [('id1', 'A', 20), ('id1', 'A', 20), ('id1', 'A', 20)] interval = segment.make_uniq_region(seg, types, subtypes, genes) self.assertEqual(interval[:], [ '1', '.', 'UTR3', '1', '10', '.', '+', '.', 'gene_id "id1"; gene_name "A"; biotype "mRNA";' ])
def test_basic(self): # seg is composed of borders(BED6) and segment(GTF) interval: seg = create_interval_from_list( ['1', '0', '10', '.', '.', '+'] + ['.', '.', '.', '.', '.', '.', '.', '.', '.']) types = ['UTR3'] subtypes = ['TEC'] genes = [('id1', 'A', 50)] interval = segment.make_uniq_region(seg, types, subtypes, genes) self.assertEqual(interval[:], [ '1', '.', 'UTR3', '1', '10', '.', '+', '.', 'gene_id "id1"; gene_name "A"; biotype "lncRNA";' ])