Compute coverage of intervals.
Value
ivl_df with the following additional columns:
.intsnumber ofxintersections.covper-base coverage ofxintervals.lentotal length ofyintervals covered byxintervals.frac.lenscaled by the number ofyintervals
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
