x <- tibble::tribble(
~chrom, ~start, ~end,
"chr1", 75, 125
)
y <- tibble::tribble(
~chrom, ~start, ~end,
"chr1", 50, 100,
"chr1", 100, 150
)
test_that("reldist calculation is correct", {
res <- bed_reldist(x, y)
expect_true(res$.reldist == 0.5)
})
test_that("self reldist is 0", {
res <- bed_reldist(y, y)
expect_true(res$.reldist == 0)
})
test_that("detail argument works", {
res <- bed_reldist(x, y, detail = TRUE)
expect_true(all(names(res) %in% c("chrom", "start", "end", ".reldist")))
})
test_that("reldist respects groups (#108)", {
x <- tibble::tribble(
~chrom, ~start, ~end, ~group,
"chr1", 100, 200, "B",
"chr1", 200, 400, "A",
"chr1", 500, 600, "C",
"chr2", 125, 175, "C",
"chr2", 150, 200, "A",
"chr3", 100, 300, "A"
)
y <- tibble::tribble(
~chrom, ~start, ~end, ~group,
"chr1", 100, 199, "A",
"chr1", 200, 400, "B",
"chr1", 500, 600, "A",
"chr2", 100, 175, "C",
"chr2", 350, 500, "A",
"chr3", 500, 600, "A"
)
genome <- tibble::tribble(
~chrom, ~size,
"chr1", 10000,
"chr2", 10000
)
x <- arrange(x, chrom, start)
x <- group_by(x, group, chrom)
y <- arrange(y, chrom, start)
y <- group_by(y, group, chrom)
res <- bed_reldist(x, y, detail = TRUE)
expect_true(nrow(res) == 1)
})
# from https://github.com/arq5x/bedtools2/blob/master/test/reldist/test-reldist.sh
# files not included with package
# a <- read_bed(valr_example("refseq.chr1.exons.bed.gz"), n_fields = 6)
# b <- read_bed(valr_example("aluY.chr1.bed.gz"), n_fields = 6)
# c <- read_bedgraph(valr_example("gerp.chr1.bed.gz"))
#
# test_that("Test intervals that are randomly distributed. The relative distances should equally represented .", {
# res <- bed_reldist(a, b)
# d <- tibble::tribble(
# ~reldist, ~count, ~total, ~fraction,
# 0, 164L, 43408L, 0.004,
# 0.01, 551L, 43408L, 0.013,
# 0.02, 598L, 43408L, 0.014,
# 0.03, 637L, 43408L, 0.015,
# 0.04, 793L, 43408L, 0.018,
# 0.05, 688L, 43408L, 0.016,
# 0.06, 874L, 43408L, 0.02,
# 0.07, 765L, 43408L, 0.018,
# 0.08, 685L, 43408L, 0.016,
# 0.09, 929L, 43408L, 0.021,
# 0.1, 876L, 43408L, 0.02,
# 0.11, 959L, 43408L, 0.022,
# 0.12, 860L, 43408L, 0.02,
# 0.13, 851L, 43408L, 0.02,
# 0.14, 903L, 43408L, 0.021,
# 0.15, 893L, 43408L, 0.021,
# 0.16, 883L, 43408L, 0.02,
# 0.17, 828L, 43408L, 0.019,
# 0.18, 917L, 43408L, 0.021,
# 0.19, 875L, 43408L, 0.02,
# 0.2, 897L, 43408L, 0.021,
# 0.21, 986L, 43408L, 0.023,
# 0.22, 903L, 43408L, 0.021,
# 0.23, 944L, 43408L, 0.022,
# 0.24, 904L, 43408L, 0.021,
# 0.25, 867L, 43408L, 0.02,
# 0.26, 943L, 43408L, 0.022,
# 0.27, 933L, 43408L, 0.021,
# 0.28, 1132L, 43408L, 0.026,
# 0.29, 881L, 43408L, 0.02,
# 0.3, 851L, 43408L, 0.02,
# 0.31, 963L, 43408L, 0.022,
# 0.32, 950L, 43408L, 0.022,
# 0.33, 965L, 43408L, 0.022,
# 0.34, 907L, 43408L, 0.021,
# 0.35, 884L, 43408L, 0.02,
# 0.36, 965L, 43408L, 0.022,
# 0.37, 944L, 43408L, 0.022,
# 0.38, 911L, 43408L, 0.021,
# 0.39, 939L, 43408L, 0.022,
# 0.4, 921L, 43408L, 0.021,
# 0.41, 950L, 43408L, 0.022,
# 0.42, 935L, 43408L, 0.022,
# 0.43, 919L, 43408L, 0.021,
# 0.44, 915L, 43408L, 0.021,
# 0.45, 934L, 43408L, 0.022,
# 0.46, 843L, 43408L, 0.019,
# 0.47, 850L, 43408L, 0.02,
# 0.48, 1006L, 43408L, 0.023,
# 0.49, 937L, 43408L, 0.022
# )
# expect_equal(round(res$.freq, 3), d$fraction)
# expect_equal(round(res$.counts, 3), d$count)
# })
#
# test_that("Test intervals that are consistently closer to one another than expected. The distances should be biased towards 0.", {
# res <- bed_reldist(a, c)
# d <- tibble::tribble(
# ~reldist, ~count, ~total, ~fraction,
# 0, 20629L, 43422L, 0.475,
# 0.01, 2629L, 43422L, 0.061,
# 0.02, 1427L, 43422L, 0.033,
# 0.03, 985L, 43422L, 0.023,
# 0.04, 897L, 43422L, 0.021,
# 0.05, 756L, 43422L, 0.017,
# 0.06, 667L, 43422L, 0.015,
# 0.07, 557L, 43422L, 0.013,
# 0.08, 603L, 43422L, 0.014,
# 0.09, 487L, 43422L, 0.011,
# 0.1, 461L, 43422L, 0.011,
# 0.11, 423L, 43422L, 0.01,
# 0.12, 427L, 43422L, 0.01,
# 0.13, 435L, 43422L, 0.01,
# 0.14, 375L, 43422L, 0.009,
# 0.15, 367L, 43422L, 0.008,
# 0.16, 379L, 43422L, 0.009,
# 0.17, 371L, 43422L, 0.009,
# 0.18, 346L, 43422L, 0.008,
# 0.19, 389L, 43422L, 0.009,
# 0.2, 377L, 43422L, 0.009,
# 0.21, 411L, 43422L, 0.009,
# 0.22, 377L, 43422L, 0.009,
# 0.23, 352L, 43422L, 0.008,
# 0.24, 334L, 43422L, 0.008,
# 0.25, 315L, 43422L, 0.007,
# 0.26, 370L, 43422L, 0.009,
# 0.27, 330L, 43422L, 0.008,
# 0.28, 330L, 43422L, 0.008,
# 0.29, 280L, 43422L, 0.006,
# 0.3, 309L, 43422L, 0.007,
# 0.31, 326L, 43422L, 0.008,
# 0.32, 287L, 43422L, 0.007,
# 0.33, 294L, 43422L, 0.007,
# 0.34, 306L, 43422L, 0.007,
# 0.35, 307L, 43422L, 0.007,
# 0.36, 309L, 43422L, 0.007,
# 0.37, 271L, 43422L, 0.006,
# 0.38, 293L, 43422L, 0.007,
# 0.39, 311L, 43422L, 0.007,
# 0.4, 331L, 43422L, 0.008,
# 0.41, 320L, 43422L, 0.007,
# 0.42, 299L, 43422L, 0.007,
# 0.43, 327L, 43422L, 0.008,
# 0.44, 321L, 43422L, 0.007,
# 0.45, 326L, 43422L, 0.008,
# 0.46, 306L, 43422L, 0.007,
# 0.47, 354L, 43422L, 0.008,
# 0.48, 365L, 43422L, 0.008,
# 0.49, 336L, 43422L, 0.008,
# 0.5, 38L, 43422L, 0.001
# )
# expect_equal(round(res$.freq, 3), d$fraction)
# expect_equal(res$.counts, d$count)
# expect_equal(res$.total, d$total)
# expect_equal(sum(res$.counts), sum(d$count))
#
# })
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.