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.