Nothing
genome <- tibble::tribble(
~chrom, ~size,
"chr1", 1000,
"chr2", 1000
)
x <- tibble::tribble(
~chrom, ~start, ~end,
"chr1", 50, 75,
"chr1", 250, 400,
"chr1", 500, 600
)
y <- tibble::tribble(
~chrom, ~start, ~end,
"chr1", 100, 200,
"chr1", 200, 800
)
bed_projection(x, y, genome)
bed_projection(x, y, genome, by_chrom = TRUE)
test_that("basic projection test works", {
# compare output to pbinom( )function
# 2 of 3 hits, 7 of 10 chance
# 1- pbinom because pval > .5
exp <- 1 - pbinom(2, 3, 7 / 10)
res <- bed_projection(x, y, genome)
expect_equal(res$p.value, exp)
})
test_that("projection per chromosome works (by_chrom = TRUE)", {
genome <- tibble::tribble(
~chrom, ~size,
"chr1", 2000,
"chr2", 2000
)
x <- tibble::tribble(
~chrom, ~start, ~end,
"chr1", 100, 200,
"chr1", 250, 400,
"chr1", 500, 600,
"chr1", 1000, 2000,
"chr2", 100, 200
)
y <- tibble::tribble(
~chrom, ~start, ~end,
"chr1", 150, 175,
"chr1", 525, 575,
"chr1", 1100, 1200,
"chr1", 1400, 1600,
"chr2", 100, 1500
)
res <- bed_projection(x, y, genome, by_chrom = TRUE)
expect_true(all(c("chr1", "chr2") %in% res$chrom))
})
test_that("report significant when intervals are underrepresented, .lower_tail = TRUE", {
sig <- pbinom(0, 4, .7)
genome <- tibble::tribble(
~chrom, ~size,
"chr1", 1000,
"chr2", 1000
)
x <- tibble::tribble(
~chrom, ~start, ~end,
"chr1", 10, 20,
"chr1", 25, 40,
"chr1", 50, 60,
"chr1", 100, 150
)
y <- tibble::tribble(
~chrom, ~start, ~end,
"chr1", 200, 275,
"chr1", 525, 575,
"chr1", 200, 900
)
res <- bed_projection(x, y, genome)
expect_true(res$lower_tail == TRUE)
expect_true(res$p.value < .5)
expect_true(res$p.value == sig)
})
test_that("report significant when intervals are overrepresented, .lower_tail = FALSE", {
sig <- 1 - pbinom(4, 4, .7)
genome <- tibble::tribble(
~chrom, ~size,
"chr1", 1000,
"chr2", 1000
)
x <- tibble::tribble(
~chrom, ~start, ~end,
"chr1", 200, 225,
"chr1", 250, 400,
"chr1", 500, 600,
"chr1", 300, 350
)
y <- tibble::tribble(
~chrom, ~start, ~end,
"chr1", 200, 275,
"chr1", 525, 575,
"chr1", 200, 900
)
res <- bed_projection(x, y, genome)
expect_true(res$lower_tail == FALSE)
expect_true(res$p.value < .5)
expect_true(res$p.value == sig)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.