Esempio n. 1
0
    def test_identity(self):
        i1, i2, i3, i4 = P.closed(0, 1), P.openclosed(0, 1), P.closedopen(0, 1), P.open(0, 1)

        assert P.from_string(P.to_string(i1), int) == i1
        assert P.from_string(P.to_string(i2), int) == i2
        assert P.from_string(P.to_string(i3), int) == i3
        assert P.from_string(P.to_string(i4), int) == i4
Esempio n. 2
0
    def test_parameters(self):
        i1, i2, i3, i4 = P.closed(0, 1), P.openclosed(0, 1), P.closedopen(0, 1), P.open(0, 1)
        params = {
            'disj': ' or ',
            'sep': '-',
            'left_open': '<!',
            'left_closed': '<',
            'right_open': '!>',
            'right_closed': '>',
            'conv': lambda s: '"{}"'.format(s),
            'pinf': '+oo',
            'ninf': '-oo',
        }

        assert P.to_string(i1, **params) == '<"0"-"1">'
        assert P.to_string(i2, **params) == '<!"0"-"1">'
        assert P.to_string(i3, **params) == '<"0"-"1"!>'
        assert P.to_string(i4, **params) == '<!"0"-"1"!>'

        assert P.to_string(P.empty(), **params) == '<!!>'
        assert P.to_string(P.singleton(1), **params) == '<"1">'

        assert P.to_string(P.openclosed(-P.inf, 1), **params) == '<!-oo-"1">'
        assert P.to_string(P.closedopen(1, P.inf), **params) == '<"1"-+oo!>'

        assert P.to_string(P.closed(0, 1) | P.closed(2, 3), **params) == '<"0"-"1"> or <"2"-"3">'
Esempio n. 3
0
    gtffile = args.gtf
    dbfile = args.db
    jsonfile = args.json
    threads = int(args.threads)
    print('Creating gtf database, this will take some time...')
    db = gffutils.create_db(gtffile, dbfile)
    isoform_interval_dict = {}
    for gene in db.features_of_type('gene'):
        g_id = gene['gene_id'][0]
        isoform_interval_dict[g_id] = {}
        for transcript in db.children(gene, featuretype='transcript'):
            t_id = transcript['transcript_id'][0]
            isoform_interval_dict[g_id][t_id] = P.empty()
            for exon in db.children(transcript, featuretype='exon'):
                isoform_interval_dict[g_id][
                    t_id] = isoform_interval_dict[g_id][t_id] | P.closed(
                        exon.start, exon.end)
    print('Extracting unque isoform intervals')
    res = Parallel(n_jobs=threads, verbose=3, backend='loky')(
        delayed(create_interval_dict_linear_time)(gene, transcript_intervals)
        for gene, transcript_intervals in isoform_interval_dict.items())
    isoform_unique_intervals = {k: v for k, v in res}
    isoform_unique_intervals_for_json_dump = {
        gene: {P.to_string(k): ','.join(v)
               for k, v in d.items()}
        for gene, d in isoform_unique_intervals.items()
    }
    print('Writing unique isoform intervals to json file {}'.format(jsonfile))
    with open(jsonfile, 'w') as fp:
        json.dump(isoform_unique_intervals_for_json_dump, fp)
Esempio n. 4
0
 def test_bounds(self):
     assert P.to_string(P.closed(0, 1)) == '[0,1]'
     assert P.to_string(P.openclosed(0, 1)) == '(0,1]'
     assert P.to_string(P.closedopen(0, 1)) == '[0,1)'
     assert P.to_string(P.open(0, 1)) == '(0,1)'
Esempio n. 5
0
 def test_bound_types(self):
     assert P.to_string(P.closed('a', 'b')) == "['a','b']"
     assert P.to_string(P.closed(tuple([0]), tuple([1]))) == '[(0,),(1,)]'
Esempio n. 6
0
 def test_unions(self):
     assert P.to_string(P.closed(0, 1) | P.closed(2, 3)) == '[0,1] | [2,3]'
Esempio n. 7
0
 def test_infinities(self):
     assert P.to_string(P.openclosed(-P.inf, 1)) == '(-inf,1]'
     assert P.to_string(P.closedopen(1, P.inf)) == '[1,+inf)'
Esempio n. 8
0
 def test_empty(self):
     assert P.to_string(P.empty()) == '()'
Esempio n. 9
0
 def test_singleton(self):
     assert P.to_string(P.singleton(0)) == '[0]'
Esempio n. 10
0
def time_interval_to_str(interval):
    converter = lambda t: t.strftime(time_format)
    temp_interval = interval.apply(lambda i:
                                   (P.CLOSED, i.lower, i.upper, P.CLOSED))
    return P.to_string(temp_interval, conv=converter)