Projection test for query interval overlap.
Value
ivl_df with the following columns:
chromthe name of chromosome tested ifby_chrom = TRUE, otherwise has a value ofwhole_genomep.valuep-value from a binomial test. p-values > 0.5 are converted to1 - p-valueandlower_tailisFALSEobs_exp_ratioratio of observed to expected overlap frequencylower_tailTRUEindicates the observed overlaps are in the lower tail of the distribution (e.g., less overlap than expected).FALSEindicates that the observed overlaps are in the upper tail of the distribution (e.g., more overlap than expected)
Details
Interval statistics can be used in combination with
dplyr::group_by() and dplyr::do() to calculate
statistics for subsets of data. See vignette('interval-stats') for
examples.
See also
https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1002529
Other interval statistics:
bed_absdist(),
bed_fisher(),
bed_jaccard(),
bed_reldist()
Examples
genome <- read_genome(valr_example("hg19.chrom.sizes.gz"))
x <- bed_random(genome, seed = 1010486)
y <- bed_random(genome, seed = 9203911)
bed_projection(x, y, genome)
#> # A tibble: 1 × 4
#> chrom p.value obs_exp_ratio lower_tail
#> <chr> <dbl> <dbl> <chr>
#> 1 whole_genome 0.000850 1.01 FALSE
bed_projection(x, y, genome, by_chrom = TRUE)
#> # A tibble: 25 × 4
#> chrom p.value obs_exp_ratio lower_tail
#> <chr> <dbl> <dbl> <chr>
#> 1 chr1 0.176 1.01 FALSE
#> 2 chr10 0.0209 1.02 FALSE
#> 3 chr11 0.118 1.01 FALSE
#> 4 chr12 0.479 1.00 FALSE
#> 5 chr13 0.245 1.01 FALSE
#> 6 chr14 0.120 0.990 TRUE
#> 7 chr15 0.333 1.00 FALSE
#> 8 chr16 0.213 1.01 FALSE
#> 9 chr17 0.181 0.991 TRUE
#> 10 chr18 0.0306 1.02 FALSE
#> # ℹ 15 more rows
