This is a generalization of GenomicRanges::binnedAverage
to allow the
use of any applicable function instead of simply the mean. The interface is
very similar, with two differences:
Added argument fun
, for the function to use.
Dropped argument varname
, since this function outputs the
metadata as a vector, rather than the complete GRanges
object with
the metadata column added and named as indicated by varname
.
binned_function(bins, numvar, fun, ...)
bins |
|
---|---|
numvar | Named RleList object representing a numerical variable defined
along the genome covered by bins (which is the genome described by
|
fun | R function to apply to the numerical variable in each bin. No default. |
... | optional arguments to |
# NOT RUN { # Generate 100-bp genome tiles for a given GRanges object bins <- GenomicRanges::tileGenome(GenomeInfoDb::seqlengths(gr), tilewidth=100, cut.last.tile.in.chrom=TRUE) # Get signal as "RleList"; stored in the "score" metadata column score <- GenomicRanges::coverage(gr, weight="score") # Now use the function to get the maximum score in each tile gr$max_per_bin <- binned_function(bins=bins, numvar=score, fun=max) # You can pass arguments to fun too gr$max_per_bin <- binned_function(bins=bins, numvar=score, fun=max, na.rm=TRUE) # }