コード例 #1
0
def tab_loader(inputfn, trackfn, genome, parsecols, expectedrows):
    buffersize = int(expectedrows / 100)
    # element
    seqid_col = [col for (col, name, _, _) in parsecols if name == "seqid"][0]
    left_col = [col for (col, name, _, _) in parsecols if name == "left"][0]
    right_col = [col for (col, name, _, _) in parsecols if name == "right"][0]
    # data(s)
    for (col, name, _, typ) in parsecols:
        dtype = []
        data_cols = []
        if name not in ("seqid", "left", "right"):
            dtype.append(typ)
            data_cols.append(col)
    #
    title = trackfn.split(".")[0]
    track = gtrackcore.empty_track(trackfn, genome, expectedrows, title)
    #
    track.unseal()
    arr = track.add_node_values(name, ",".join(dtype))
    with open(inputfn) as rh:
        nodes = []
        datas = []
        for i, fields in enumerate(tab_parser_converter(rh, parsecols,
                                                        genome)):
            node = (fields[seqid_col], fields[left_col], fields[right_col])
            nodes.append(node)
            data = tuple([fields[data_col] for data_col in data_cols])
            datas.append(data[0] if len(data) == 1 else data)
            if ((i + 1) % buffersize) == 0:
                track.add_nodes(nodes)
                arr.append(datas)
                track.flush()
                nodes, datas = [], []
        if nodes:
            track.add_nodes(nodes)
            arr.append(datas)
    track.flush()
    track.seal()
    return track
コード例 #2
0
ファイル: io.py プロジェクト: brynjagr/gtrackcore
def tab_loader(inputfn, trackfn, genome, parsecols, expectedrows):
    buffersize = int(expectedrows / 100)
    # element
    seqid_col = [col for (col, name, _, _) in parsecols if name == "seqid"][0]
    left_col  = [col for (col, name, _, _) in parsecols if name == "left"][0]
    right_col = [col for (col, name, _, _) in parsecols if name == "right"][0]
    # data(s)
    for (col, name, _, typ) in parsecols:
        dtype = []
        data_cols = []
        if name not in ("seqid", "left", "right"):
            dtype.append(typ)
            data_cols.append(col)
    #
    title = trackfn.split(".")[0]
    track = gtrackcore.empty_track(trackfn, genome, expectedrows, title)    
    #
    track.unseal()    
    arr = track.add_node_values(name, ",".join(dtype))
    with open(inputfn) as rh:
        nodes = []
        datas = []
        for i, fields in enumerate(tab_parser_converter(rh, parsecols, genome)):
            node = (fields[seqid_col], fields[left_col], fields[right_col])
            nodes.append(node)
            data = tuple([fields[data_col] for data_col in data_cols])
            datas.append(data[0] if len (data) == 1 else data)
            if ((i + 1) % buffersize) == 0:
                track.add_nodes(nodes)
                arr.append(datas)
                track.flush()
                nodes, datas = [], []
        if nodes:
            track.add_nodes(nodes)
            arr.append(datas)
    track.flush()
    track.seal()
    return track
コード例 #3
0
 def get_track(self):
     fn = self.get_fn()
     track = gtrackcore.empty_track(fn, GENOMES["HG19"])
     return track
コード例 #4
0
ファイル: common.py プロジェクト: brynjagr/gtrackcore
 def get_track(self):
     fn = self.get_fn()
     track = gtrackcore.empty_track(fn, GENOMES["HG19"])
     return track