Ejemplo n.º 1
0
def build_tree_from_group(group, ref_dataframe, coord_func, bar=None):
    '''
    Build an IntervalTree from a sub-DataFrame, for groupby() operations
    '''
    tree = IntervalTree()

    for idx, row in group.iterrows():
        if bar is not None:
            bar.update()
        start, end, chrom, strand = coord_func(row)
        tree.insert_interval(DataFrameInterval(idx, ref_dataframe, start, end,
                                               chrom=chrom, strand=strand))

    return tree
Ejemplo n.º 2
0
def build_forest_from_groups(grouped_df, reference_df, coord_func, bar=None):

    forest = IntervalForest()
    
    for key, group in grouped_df:
        tree = IntervalTree()
        for idx, row in group.iterrows():
            start, end, chrom, strand = coord_func(row)
            tree.insert_interval(DataFrameInterval(idx, reference_df, start, end,
                                                   chrom=chrom, strand=strand))
            if bar is not None:
                bar.update()
        forest.add_tree(key, tree)

    return forest
Ejemplo n.º 3
0
def build_tree_from_group(group, ref_dataframe, coord_func, bar=None):
    '''
    Build an IntervalTree from a sub-DataFrame, for groupby() operations
    '''
    tree = IntervalTree()

    for idx, row in group.iterrows():
        if bar is not None:
            bar.update()
        start, end, chrom, strand = coord_func(row)
        tree.insert_interval(
            DataFrameInterval(idx,
                              ref_dataframe,
                              start,
                              end,
                              chrom=chrom,
                              strand=strand))

    return tree
Ejemplo n.º 4
0
def build_forest_from_groups(grouped_df, reference_df, coord_func, bar=None):

    forest = IntervalForest()

    for key, group in grouped_df:
        tree = IntervalTree()
        for idx, row in group.iterrows():
            start, end, chrom, strand = coord_func(row)
            tree.insert_interval(
                DataFrameInterval(idx,
                                  reference_df,
                                  start,
                                  end,
                                  chrom=chrom,
                                  strand=strand))
            if bar is not None:
                bar.update()
        forest.add_tree(key, tree)

    return forest