예제 #1
0
파일: gff3.py 프로젝트: pombredanne/petlx
def gff3lookup(features, facet='seqid'):
    """
    Build a GFF3 feature lookup based on interval trees. See also 
    :func:`petlx.interval.facetintervallookup`.
    
    .. versionadded:: 0.2
    
    """
    
    return facetintervallookup(features, facet=facet, start='start', stop='end')
예제 #2
0
def test_facetintervallookup():
    
    table = (('type', 'start', 'stop', 'value'),
             ('apple', 1, 4, 'foo'),
             ('apple', 3, 7, 'bar'),
             ('orange', 4, 9, 'baz'))
    
    lkp = facetintervallookup(table, facet='type', start='start', stop='stop')

    actual = lkp['apple'].find(1, 2)
    expect = [('apple', 1, 4, 'foo')]
    ieq(expect, actual)
    
    actual = lkp['apple'].find(2, 4)
    expect = [('apple', 1, 4, 'foo'), ('apple', 3, 7, 'bar')]
    ieq(expect, actual)
    
    actual = lkp['apple'].find(2, 5)
    expect = [('apple', 1, 4, 'foo'), ('apple', 3, 7, 'bar')]
    ieq(expect, actual)
    
    actual = lkp['orange'].find(2, 5)
    expect = [('orange', 4, 9, 'baz')]
    ieq(expect, actual)
    
    actual = lkp['orange'].find(9, 14)
    expect = []
    ieq(expect, actual)
    
    actual = lkp['orange'].find(19, 140)
    expect = []
    ieq(expect, actual)
    
    actual = lkp['apple'].find(1)
    expect = []
    ieq(expect, actual)
    
    actual = lkp['apple'].find(2)
    expect = [('apple', 1, 4, 'foo')]
    ieq(expect, actual)
    
    actual = lkp['apple'].find(4)
    expect = [('apple', 3, 7, 'bar')]
    ieq(expect, actual)
    
    actual = lkp['apple'].find(5)
    expect = [('apple', 3, 7, 'bar')]
    ieq(expect, actual)
    
    actual = lkp['orange'].find(5)
    expect = [('orange', 4, 9, 'baz')]
    ieq(expect, actual)
예제 #3
0
def test_facetintervallookup():
    
    table = (('type', 'start', 'stop', 'value'),
             ('apple', 1, 4, 'foo'),
             ('apple', 3, 7, 'bar'),
             ('orange', 4, 9, 'baz'))
    
    lkp = facetintervallookup(table, facet='type', start='start', stop='stop')

    actual = lkp['apple'].find(1, 2)
    expect = [('apple', 1, 4, 'foo')]
    ieq(expect, actual)
    
    actual = lkp['apple'].find(2, 4)
    expect = [('apple', 1, 4, 'foo'), ('apple', 3, 7, 'bar')]
    ieq(expect, actual)
    
    actual = lkp['apple'].find(2, 5)
    expect = [('apple', 1, 4, 'foo'), ('apple', 3, 7, 'bar')]
    ieq(expect, actual)
    
    actual = lkp['orange'].find(2, 5)
    expect = [('orange', 4, 9, 'baz')]
    ieq(expect, actual)
    
    actual = lkp['orange'].find(9, 14)
    expect = []
    ieq(expect, actual)
    
    actual = lkp['orange'].find(19, 140)
    expect = []
    ieq(expect, actual)
    
    actual = lkp['apple'].find(1)
    expect = []
    ieq(expect, actual)
    
    actual = lkp['apple'].find(2)
    expect = [('apple', 1, 4, 'foo')]
    ieq(expect, actual)
    
    actual = lkp['apple'].find(4)
    expect = [('apple', 3, 7, 'bar')]
    ieq(expect, actual)
    
    actual = lkp['apple'].find(5)
    expect = [('apple', 3, 7, 'bar')]
    ieq(expect, actual)
    
    actual = lkp['orange'].find(5)
    expect = [('orange', 4, 9, 'baz')]
    ieq(expect, actual)
예제 #4
0
def test_facetintervallookup_compound():

    table = (('type', 'variety', 'start', 'stop', 'value'),
             ('apple', 'cox', 1, 4, 'foo'),
             ('apple', 'fuji', 3, 7, 'bar'),
             ('orange', 'mandarin', 4, 9, 'baz'))

    lkp = facetintervallookup(table, facet=('type', 'variety'), start='start',
                              stop='stop')

    actual = lkp['apple', 'cox'].find(1, 2)
    expect = [('apple', 'cox', 1, 4, 'foo')]
    ieq(expect, actual)

    actual = lkp['apple', 'cox'].find(2, 4)
    expect = [('apple', 'cox', 1, 4, 'foo')]
    ieq(expect, actual)
예제 #5
0
파일: examples.py 프로젝트: ianfiske/petlx
a = toarray(table, dtype='a4, i2, f4')
a

a = toarray(table, dtype={'foo': 'a4'})
a


table = (('type', 'start', 'stop', 'value'),
         ('apple', 1, 4, 'foo'),
         ('apple', 3, 7, 'bar'),
         ('orange', 4, 9, 'baz'))

from petl import look
from petlx.interval import facetintervallookup
look(table)
lkp = facetintervallookup(table, facet='type', startfield='start', stopfield='stop')
lkp['apple'][1:2]
lkp['apple'][2:4]
lkp['apple'][2:5]
lkp['orange'][2:5]
lkp['orange'][9:14]
lkp['orange'][19:140]
lkp['apple'][1]
lkp['apple'][2]
lkp['apple'][4]
lkp['apple'][5]
lkp['orange'][5]

table = (('type', 'start', 'stop', 'value'),
         ('apple', 1, 4, 'foo'),
         ('apple', 3, 7, 'bar'),
예제 #6
0
a

a = toarray(table, dtype='a4, i2, f4')
a

a = toarray(table, dtype={'foo': 'a4'})
a

table = (('type', 'start', 'stop', 'value'), ('apple', 1, 4, 'foo'),
         ('apple', 3, 7, 'bar'), ('orange', 4, 9, 'baz'))

from petl import look
from petlx.interval import facetintervallookup
look(table)
lkp = facetintervallookup(table,
                          facet='type',
                          startfield='start',
                          stopfield='stop')
lkp['apple'][1:2]
lkp['apple'][2:4]
lkp['apple'][2:5]
lkp['orange'][2:5]
lkp['orange'][9:14]
lkp['orange'][19:140]
lkp['apple'][1]
lkp['apple'][2]
lkp['apple'][4]
lkp['apple'][5]
lkp['orange'][5]

table = (('type', 'start', 'stop', 'value'), ('apple', 1, 4, 'foo'),
         ('apple', 3, 7, 'bar'), ('orange', 4, 9, 'baz'))