Compute coverage of intervals.
bed_coverage(x, y, ...)
x | |
---|---|
y | |
... | extra arguments (not used) |
tbl_interval()
with the following additional columns:
.ints
number of x
intersections
.cov
per-base coverage of x
intervals
.len
total length of y
intervals covered by x
intervals
.frac
.len
scaled by the number of y
intervals
input tbls are grouped by chrom
by default, and additional
groups can be added using dplyr::group_by()
. For example,
grouping by strand
will constrain analyses to the same strand. To
compare opposing strands across two tbls, strands on the y
tbl can
first be inverted using flip_strands()
.
Book-ended intervals are included in coverage calculations.
http://bedtools.readthedocs.org/en/latest/content/tools/coverage.html
Other multiple set operations: bed_closest
,
bed_intersect
, bed_map
,
bed_subtract
, bed_window
x <- trbl_interval( ~chrom, ~start, ~end, ~strand, "chr1", 100, 500, '+', "chr2", 200, 400, '+', "chr2", 300, 500, '-', "chr2", 800, 900, '-' ) y <- trbl_interval( ~chrom, ~start, ~end, ~value, ~strand, "chr1", 150, 400, 100, '+', "chr1", 500, 550, 100, '+', "chr2", 230, 430, 200, '-', "chr2", 350, 430, 300, '-' ) bed_coverage(x, y)#> # A tibble: 4 x 8 #> chrom start end strand .ints .cov .len .frac #> <chr> <dbl> <dbl> <chr> <int> <int> <int> <dbl> #> 1 chr1 100 500 + 2 250 400 0.625 #> 2 chr2 200 400 + 2 170 200 0.850 #> 3 chr2 300 500 - 2 130 200 0.650 #> 4 chr2 800 900 - 0 0 100 0