Nothing
context("calc_genoprob")
suppressMessages(library(qtl))
grab_prob_rqtl <- function(cross) lapply(cross$geno, function(a) aperm(a$prob, c(1,3,2)))
test_that("backcross autosome calc_genoprob matches R/qtl", {
data(hyper)
chr <- c(1, 3, 4, 17, 19)
hyper <- hyper[chr,]
hyper <- calc.genoprob(hyper, err=0.002)
pr <- grab_prob_rqtl(hyper)
hyper2 <- convert2cross2(hyper)
pr2 <- calc_genoprob(hyper2, error_prob=0.002)
expect_equivalent(pr, pr2)
})
test_that("intercross autosome calc_genoprob matches R/qtl", {
data(listeria)
chr <- c(1, 4, 14, 18)
listeria <- listeria[chr,]
listeria <- calc.genoprob(listeria, step=1, stepwidth="max", err=0.01)
pr <- grab_prob_rqtl(listeria)
listeria2 <- convert2cross2(listeria)
map <- insert_pseudomarkers(listeria2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(listeria2, map, error_prob=0.01)
expect_equivalent(pr, pr2)
})
test_that("risib autosome calc_genoprob matches R/qtl", {
data(hyper)
chr <- c(1, 3, 4, 17, 19)
hyper <- hyper[chr,]
class(hyper)[1] <- "risib"
hyper <- calc.genoprob(hyper, step=1, stepwidth="max", err=0.002)
pr <- grab_prob_rqtl(hyper)
hyper2 <- convert2cross2(hyper)
map <- insert_pseudomarkers(hyper2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(hyper2, map, error_prob=0.002)
expect_equivalent(pr, pr2)
})
test_that("riself autosome calc_genoprob matches R/qtl", {
data(hyper)
chr <- c(1, 3, 4, 17, 19)
hyper <- hyper[chr,]
class(hyper)[1] <- "riself"
hyper <- calc.genoprob(hyper, step=1, stepwidth="max", err=0.002)
pr <- grab_prob_rqtl(hyper)
hyper2 <- convert2cross2(hyper)
map <- insert_pseudomarkers(hyper2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(hyper2, map, error_prob=0.002)
expect_equivalent(pr, pr2)
})
test_that("f2 X chr calc_genoprob matches R/qtl", {
data(fake.f2)
fake.f2 <- fake.f2["X",]
fake.f2 <- calc.genoprob(fake.f2, step=1, stepwidth="max", error.prob=0.01)
pr <- fake.f2$geno[[1]]$prob
pr <- reviseXdata("f2", "full", getsex(fake.f2), prob=pr, cross.attr=attributes(fake.f2))
pr <- aperm(pr, c(1,3,2))
fake.f2.2 <- convert2cross2(fake.f2)
map <- insert_pseudomarkers(fake.f2.2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(fake.f2.2, map, error_prob=0.01)[[1]]
expect_equivalent(pr, pr2)
})
test_that("bc X chr calc_genoprob matches R/qtl", {
data(hyper)
hyper <- hyper["X",]
# make it half female, half male
hyper$pheno$sex <- rep(c("female", "male"), nind(hyper)/2)
hyper <- calc.genoprob(hyper, step=1, stepwidth="max", error.prob=0.02)
pr <- hyper$geno[["X"]]$prob
pr <- reviseXdata("bc", "full", getsex(hyper), prob=pr, cross.attr=attributes(hyper))
pr <- aperm(pr, c(1,3,2))
hyper2 <- convert2cross2(hyper)
map <- insert_pseudomarkers(hyper2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(hyper2, map, error_prob=0.02)[[1]]
expect_equivalent(pr, pr2)
})
test_that("f2 X chr all males calc_genoprob matches R/qtl", {
data(fake.f2)
fake.f2 <- fake.f2["X",]
fake.f2$pheno$sex <- 1
fake.f2 <- calc.genoprob(fake.f2, step=1, stepwidth="max", error.prob=0.02)
pr <- fake.f2$geno[["X"]]$prob
pr <- aperm(pr, c(1,3,2))
fake.f2.2 <- convert2cross2(fake.f2)
map <- insert_pseudomarkers(fake.f2.2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(fake.f2.2, map, error_prob=0.02)[[1]][,5:6,]
expect_equivalent(pr, pr2)
})
test_that("f2 X chr all females calc_genoprob matches R/qtl", {
data(fake.f2)
fake.f2 <- fake.f2["X",]
fake.f2$pheno$sex <- 0
fake.f2 <- calc.genoprob(fake.f2, step=1, stepwidth="max", error.prob=0.02)
pr <- fake.f2$geno[["X"]]$prob
pr <- aperm(pr, c(1,3,2))
fake.f2.2 <- convert2cross2(fake.f2)
map <- insert_pseudomarkers(fake.f2.2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(fake.f2.2, map, error_prob=0.02)[[1]]
pr2 <- pr2[,1:2,] + pr2[,4:3,] # recode as in R/qtl
expect_equivalent(pr, pr2)
})
test_that("f2 X chr all females forw calc_genoprob matches R/qtl", {
data(fake.f2)
fake.f2 <- fake.f2["X",]
fake.f2$pheno$sex <- 0
fake.f2$pheno$pgm <- 0
fake.f2 <- calc.genoprob(fake.f2, step=1, stepwidth="max", error.prob=0.0001)
pr <- fake.f2$geno[["X"]]$prob
pr <- aperm(pr, c(1,3,2))
fake.f2.2 <- convert2cross2(fake.f2)
map <- insert_pseudomarkers(fake.f2.2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(fake.f2.2, map, error_prob=0.0001)[[1]][,1:2,]
expect_equivalent(pr, pr2)
})
test_that("f2 X chr all females rev calc_genoprob matches R/qtl", {
data(fake.f2)
fake.f2 <- fake.f2["X",]
fake.f2$pheno$sex <- 0
fake.f2$pheno$pgm <- 1
fake.f2 <- calc.genoprob(fake.f2, step=1, stepwidth="max", error.prob=0.0001)
pr <- fake.f2$geno[["X"]]$prob
pr <- aperm(pr, c(1,3,2))
fake.f2.2 <- convert2cross2(fake.f2)
map <- insert_pseudomarkers(fake.f2.2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(fake.f2.2, map, error_prob=0.0001)[[1]][,4:3,]
expect_equivalent(pr, pr2)
})
test_that("bc X chr all males calc_genoprob matches R/qtl", {
data(hyper)
hyper <- hyper["X",]
sexpgm <- getsex(hyper)
hyper <- calc.genoprob(hyper, step=1, stepwidth="max", error.prob=0.02)
pr <- hyper$geno[["X"]]$prob
pr <- reviseXdata("bc", "full", getsex(hyper), prob=pr, cross.attr=attributes(hyper))
pr <- aperm(pr, c(1,3,2))
hyper2 <- convert2cross2(hyper)
map <- insert_pseudomarkers(hyper2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(hyper2, map, error_prob=0.02)[[1]][,3:4,]
expect_equivalent(pr, pr2)
})
test_that("bc X chr all females calc_genoprob matches R/qtl", {
data(hyper)
hyper <- hyper["X",]
hyper$pheno$sex <- "female"
hyper <- calc.genoprob(hyper, step=1, stepwidth="max", error.prob=0.02)
pr <- hyper$geno[["X"]]$prob
pr <- reviseXdata("bc", "full", getsex(hyper), prob=pr, cross.attr=attributes(hyper))
pr <- aperm(pr, c(1,3,2))
hyper2 <- convert2cross2(hyper)
map <- insert_pseudomarkers(hyper2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(hyper2, map, error_prob=0.02)[[1]]
pr2 <- pr2[,1:2,] + pr2[,3:4,]
expect_equivalent(pr, pr2)
})
test_that("doubled haploids calc_genoprob matches R/qtl", {
data(hyper)
hyper <- hyper[1,]
hyper$pheno <- hyper$pheno[,1,drop=FALSE]
class(hyper)[1] <- "dh"
hyper <- calc.genoprob(hyper, step=1, stepwidth="max", error.prob=0.02)
pr <- hyper$geno[[1]]$prob
pr <- aperm(pr, c(1,3,2))
hyper2 <- convert2cross2(hyper)
map <- insert_pseudomarkers(hyper2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(hyper2, map, error_prob=0.02)[[1]]
expect_equivalent(pr, pr2)
})
test_that("haploids calc_genoprob matches R/qtl", {
data(hyper)
hyper <- hyper[2,]
hyper$pheno <- hyper$pheno[,1,drop=FALSE]
class(hyper)[1] <- "haploid"
hyper <- calc.genoprob(hyper, step=1, stepwidth="max", error.prob=0.02)
pr <- hyper$geno[[1]]$prob
pr <- aperm(pr, c(1,3,2))
hyper2 <- convert2cross2(hyper)
map <- insert_pseudomarkers(hyper2$gmap, step=1, stepwidth="max")
pr2 <- calc_genoprob(hyper2, map, error_prob=0.02)[[1]]
expect_equivalent(pr, pr2)
})
test_that("backcross autosome calc_genoprob with markers at same location", {
grav2 <- read_cross2(system.file("extdata", "grav2.zip", package="qtl2"))
grav2 <- grav2[1:4,1]
# put some markers at same location
grav2$gmap[[1]][4] <- grav2$gmap[[1]][3]
pr <- calc_genoprob(grav2, err=0)
expect_true( all(!is.na(pr[[1]])) )
})
test_that("calc_genoprob works when multi-core", {
skip_if(isnt_karl(), "this test only run locally")
data(hyper)
hyper2 <- convert2cross2(hyper)
pr <- calc_genoprob(hyper2, error_prob=0.002)
pr_mc <- calc_genoprob(hyper2, error_prob=0.002, cores=2)
expect_equal(pr_mc, pr)
data(listeria)
listeria2 <- convert2cross2(listeria)
map <- insert_pseudomarkers(listeria2$gmap, step=1, stepwidth="max")
pr <- calc_genoprob(listeria2, map, error_prob=0.01)
pr_mc <- calc_genoprob(listeria2, map, error_prob=0.01, cores=2)
expect_equal(pr_mc, pr)
})
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.