Nothing
context("scan1coef for binary traits")
test_that("scan1coef for binary traits works with intercross", {
set.seed(17262911)
iron <- read_cross2(system.file("extdata", "iron.zip", package="qtl2"))
iron <- iron[,c(2,"X")]
map <- insert_pseudomarkers(iron$gmap, step=1)
probs <- calc_genoprob(iron, map, err=0.002)
phe <- iron$pheno[,1]
phe <- setNames(as.numeric(phe > quantile(phe, 0.7)),
ind_ids(iron))
# no covariates, autosome
co <- scan1coef(probs[,"2"], phe, model="binary", zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, model="binary", se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) glm(phe ~ -1 + a, family=binomial(link=logit),
control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
# no covariates, X chromosome
co <- scan1coef(probs[,"X"], phe, model="binary", zerosum=FALSE)
coSE <- scan1coef(probs[,"X"], phe, model="binary", se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[2]], 3, function(a) glm(phe ~ -1 + a, family=binomial(link=logit),
control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BS", "BB", "SY", "BY")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
sex <- setNames(as.numeric(iron$is_female), names(iron$is_female))
# add covariate, autosome
co <- scan1coef(probs[,"2"], phe, addcovar=sex, model="binary", zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, addcovar=sex, model="binary", se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) glm(phe ~ -1 + a + sex, family=binomial(link=logit),
control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB", "ac1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
covar <- setNames(rnorm(n_ind(iron)), names(sex))
# add covariate, X chromosome
co <- scan1coef(probs[,"X"], phe, addcovar=covar, model="binary", zerosum=FALSE)
coSE <- scan1coef(probs[,"X"], phe, addcovar=covar, model="binary", se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[2]], 3, function(a) glm(phe ~ -1 + a + covar, family=binomial(link=logit),
control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BS", "BB", "SY", "BY", "ac1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
# int covariate, autosome
co <- scan1coef(probs[,"2"], phe, addcovar=sex, intcovar=sex, model="binary", zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, addcovar=sex, intcovar=sex, model="binary", se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) {
X <- cbind(a, sex, a[,-1]*sex)
glm(phe ~ -1 + X, family=binomial(link=logit),
control=list(epsilon=1e-12)) })
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB", "ac1", "SB:ic1", "BB:ic1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
})
test_that("scan1coef for binary traits works some missing phenotypes", {
set.seed(17262911)
iron <- read_cross2(system.file("extdata", "iron.zip", package="qtl2"))
iron <- iron[,c(2,"X")]
map <- insert_pseudomarkers(iron$gmap, step=1)
probs <- calc_genoprob(iron, map, err=0.002)
phe <- iron$pheno[,1]
phe <- setNames(as.numeric(phe > quantile(phe, 0.7)),
ind_ids(iron))
phe[c(41,153)] <- NA
# no covariates, autosome
co <- scan1coef(probs[,"2"], phe, model="binary", zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, model="binary", se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) glm(phe ~ -1 + a, family=binomial(link=logit),
control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
# no covariates, X chromosome
co <- scan1coef(probs[,"X"], phe, model="binary", zerosum=FALSE)
coSE <- scan1coef(probs[,"X"], phe, model="binary", se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[2]], 3, function(a) glm(phe ~ -1 + a, family=binomial(link=logit),
control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BS", "BB", "SY", "BY")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
sex <- setNames(as.numeric(iron$is_female), names(iron$is_female))
# add covariate, autosome
co <- scan1coef(probs[,"2"], phe, addcovar=sex, model="binary", zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, addcovar=sex, model="binary", se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) glm(phe ~ -1 + a + sex, family=binomial(link=logit),
control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB", "ac1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
covar <- setNames(rnorm(n_ind(iron)), names(sex))
# add covariate, X chromosome
co <- scan1coef(probs[,"X"], phe, addcovar=covar, model="binary", zerosum=FALSE)
coSE <- scan1coef(probs[,"X"], phe, addcovar=covar, model="binary", se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[2]], 3, function(a) glm(phe ~ -1 + a + covar, family=binomial(link=logit),
control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BS", "BB", "SY", "BY", "ac1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
# int covariate, autosome
co <- scan1coef(probs[,"2"], phe, addcovar=sex, intcovar=sex, model="binary", zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, addcovar=sex, intcovar=sex, model="binary", se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) {
X <- cbind(a, sex, a[,-1]*sex)
glm(phe ~ -1 + X, family=binomial(link=logit),
control=list(epsilon=1e-12)) })
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB", "ac1", "SB:ic1", "BB:ic1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
})
test_that("scan1coef for binary traits works with weights", {
set.seed(17262911)
iron <- read_cross2(system.file("extdata", "iron.zip", package="qtl2"))
iron <- iron[,c(2,"X")]
map <- insert_pseudomarkers(iron$gmap, step=1)
probs <- calc_genoprob(iron, map, err=0.002)
phe <- iron$pheno[,1]
phe <- setNames(as.numeric(phe > quantile(phe, 0.7)),
ind_ids(iron))
weights <- setNames(sample(1:10, n_ind(iron), replace=TRUE), names(phe))
# no covariates, autosome
co <- scan1coef(probs[,"2"], phe, model="binary", weights=weights, zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, model="binary", , weights=weights, se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) glm(phe ~ -1 + a, family=binomial(link=logit),
weights=weights, control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
# no covariates, X chromosome
co <- scan1coef(probs[,"X"], phe, model="binary", weights=weights, zerosum=FALSE)
coSE <- scan1coef(probs[,"X"], phe, model="binary", se=TRUE, weights=weights, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[2]], 3, function(a) glm(phe ~ -1 + a, family=binomial(link=logit),
weights=weights, control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BS", "BB", "SY", "BY")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
sex <- setNames(as.numeric(iron$is_female), names(iron$is_female))
# add covariate, autosome
co <- scan1coef(probs[,"2"], phe, addcovar=sex, model="binary", weights=weights, zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, addcovar=sex, model="binary", se=TRUE, weights=weights, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) glm(phe ~ -1 + a + sex, family=binomial(link=logit),
weights=weights, control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB", "ac1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
covar <- setNames(rnorm(n_ind(iron)), names(sex))
# add covariate, X chromosome
co <- scan1coef(probs[,"X"], phe, addcovar=covar, model="binary", weights=weights, zerosum=FALSE)
coSE <- scan1coef(probs[,"X"], phe, addcovar=covar, model="binary", se=TRUE, weights=weights, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[2]], 3, function(a) glm(phe ~ -1 + a + covar, family=binomial(link=logit),
weights=weights, control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BS", "BB", "SY", "BY", "ac1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
# int covariate, autosome
co <- scan1coef(probs[,"2"], phe, addcovar=sex, intcovar=sex, model="binary", weights=weights, zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, addcovar=sex, intcovar=sex, model="binary", se=TRUE, weights=weights, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) {
X <- cbind(a, sex, a[,-1]*sex)
glm(phe ~ -1 + X, family=binomial(link=logit),
control=list(epsilon=1e-12), weights=weights) })
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB", "ac1", "SB:ic1", "BB:ic1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
})
test_that("scan1coef for binary traits works with weights and missing phenotypes", {
set.seed(17262911)
iron <- read_cross2(system.file("extdata", "iron.zip", package="qtl2"))
iron <- iron[,c(2,"X")]
map <- insert_pseudomarkers(iron$gmap, step=1)
probs <- calc_genoprob(iron, map, err=0.002)
phe <- iron$pheno[,1]
phe <- setNames(as.numeric(phe > quantile(phe, 0.7)),
ind_ids(iron))
phe[c(108,142,268)] <- NA
weights <- setNames(sample(1:10, n_ind(iron), replace=TRUE), names(phe))
# no covariates, autosome
co <- scan1coef(probs[,"2"], phe, model="binary", weights=weights, zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, model="binary", , weights=weights, se=TRUE, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) glm(phe ~ -1 + a, family=binomial(link=logit),
weights=weights, control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
# no covariates, X chromosome
co <- scan1coef(probs[,"X"], phe, model="binary", weights=weights, zerosum=FALSE)
coSE <- scan1coef(probs[,"X"], phe, model="binary", se=TRUE, weights=weights, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[2]], 3, function(a) glm(phe ~ -1 + a, family=binomial(link=logit),
weights=weights, control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BS", "BB", "SY", "BY")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
sex <- setNames(as.numeric(iron$is_female), names(iron$is_female))
# add covariate, autosome
co <- scan1coef(probs[,"2"], phe, addcovar=sex, model="binary", weights=weights, zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, addcovar=sex, model="binary", se=TRUE, weights=weights, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) glm(phe ~ -1 + a + sex, family=binomial(link=logit),
weights=weights, control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB", "ac1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
covar <- setNames(rnorm(n_ind(iron)), names(sex))
# add covariate, X chromosome
co <- scan1coef(probs[,"X"], phe, addcovar=covar, model="binary", weights=weights, zerosum=FALSE)
coSE <- scan1coef(probs[,"X"], phe, addcovar=covar, model="binary", se=TRUE, weights=weights, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[2]], 3, function(a) glm(phe ~ -1 + a + covar, family=binomial(link=logit),
weights=weights, control=list(epsilon=1e-12)))
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BS", "BB", "SY", "BY", "ac1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
# int covariate, autosome
co <- scan1coef(probs[,"2"], phe, addcovar=sex, intcovar=sex, model="binary", weights=weights, zerosum=FALSE)
coSE <- scan1coef(probs[,"2"], phe, addcovar=sex, intcovar=sex, model="binary", se=TRUE, weights=weights, zerosum=FALSE)
expect_equivalent(co, coSE)
out_glm <- apply(probs[[1]], 3, function(a) {
X <- cbind(a, sex, a[,-1]*sex)
glm(phe ~ -1 + X, family=binomial(link=logit),
control=list(epsilon=1e-12), weights=weights) })
glm_coef <- t(sapply(out_glm, function(a) a$coef))
glm_se <- t(sapply(out_glm, function(a) summary(a)$coef[,2]))
colnames(glm_se) <- colnames(glm_coef) <- c("SS", "SB", "BB", "ac1", "SB:ic1", "BB:ic1")
expect_equivalent(unclass(co), glm_coef)
expect_equal(attr(coSE, "SE"), glm_se, tol=1e-6)
})
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.