Compute coverage of intervals.
Value
ivl_df with the following additional columns:
.ints
number ofx
intersections.cov
per-base coverage ofx
intervals.len
total length ofy
intervals covered byx
intervals.frac
.len
scaled by the number ofy
intervals
Details
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()
.
See also
https://bedtools.readthedocs.io/en/latest/content/tools/coverage.html
Other multiple set operations:
bed_closest()
,
bed_intersect()
,
bed_map()
,
bed_subtract()
,
bed_window()
Examples
x <- tibble::tribble(
~chrom, ~start, ~end, ~strand,
"chr1", 100, 500, "+",
"chr2", 200, 400, "+",
"chr2", 300, 500, "-",
"chr2", 800, 900, "-"
)
y <- tibble::tribble(
~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 × 8
#> chrom start end strand .ints .cov .len .frac
#> <chr> <dbl> <dbl> <chr> <int> <int> <dbl> <dbl>
#> 1 chr1 100 500 + 2 250 400 0.625
#> 2 chr2 200 400 + 2 170 200 0.85
#> 3 chr2 300 500 - 2 130 200 0.65
#> 4 chr2 800 900 - 0 0 100 0