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
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
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
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