Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE, fig.width = 7, fig.height = 5)
## -----------------------------------------------------------------------------
library(qtl2pattern)
## -----------------------------------------------------------------------------
dirpath <- "https://raw.githubusercontent.com/rqtl/qtl2data/master/DOex"
## -----------------------------------------------------------------------------
DOex <-
subset(
qtl2::read_cross2(file.path(dirpath, "DOex.zip")),
chr = "2")
## -----------------------------------------------------------------------------
tmpfile <- tempfile()
download.file(file.path(dirpath, "DOex_genoprobs_2.rds"), tmpfile, quiet=TRUE)
pr <- readRDS(tmpfile)
unlink(tmpfile)
## ----eval = FALSE-------------------------------------------------------------
# pr <- qtl2::calc_genoprob(DOex, error_prob=0.002)
## -----------------------------------------------------------------------------
tmpfile <- tempfile()
download.file(file.path(dirpath, "c2_snpinfo.rds"), tmpfile, quiet=TRUE)
snpinfo <- readRDS(tmpfile)
unlink(tmpfile)
## -----------------------------------------------------------------------------
snpinfo <- dplyr::rename(snpinfo, pos = pos_Mbp)
snpinfo <- qtl2::index_snps(DOex$pmap, snpinfo)
## -----------------------------------------------------------------------------
apr <- qtl2::genoprob_to_alleleprob(pr)
snpapr <- qtl2::genoprob_to_snpprob(apr, snpinfo)
dim(snpapr[["2"]])
dimnames(snpapr[["2"]])[[2]]
## -----------------------------------------------------------------------------
snppr <- qtl2::genoprob_to_snpprob(pr, snpinfo)
dim(snppr[["2"]])
dimnames(snppr[["2"]])[[2]]
## -----------------------------------------------------------------------------
rm(snpapr)
## -----------------------------------------------------------------------------
scan_snppr <- qtl2::scan1(snppr, DOex$pheno)
## -----------------------------------------------------------------------------
qtl2::find_peaks(scan_snppr, snpinfo)
## -----------------------------------------------------------------------------
top_snps_tbl <- top_snps_pattern(scan_snppr, snpinfo)
## -----------------------------------------------------------------------------
(patterns <- summary(top_snps_tbl))
## -----------------------------------------------------------------------------
head(summary(top_snps_tbl, "best"))
## -----------------------------------------------------------------------------
scan_pat <- scan1pattern(pr, DOex$pheno,
map = DOex$pmap,
patterns = patterns)
## -----------------------------------------------------------------------------
summary(scan_pat, DOex$pmap)
## -----------------------------------------------------------------------------
pat_names <- paste(c(52,43,16,20), colnames(scan_pat$scan), sep = "_")
## -----------------------------------------------------------------------------
plot(scan_pat$scan, DOex$pmap, lodcolumn = 2, col = "red", xlim = c(90,110), type = "b")
abline(v = c(96.5, 98.5), col = "darkgray", lwd = 2, lty = 2)
plot(scan_pat$scan, DOex$pmap, lodcolumn = 1, add = TRUE, col = "blue", type = "b")
plot(scan_pat$scan, DOex$pmap, lodcolumn = 3, add = TRUE, col = "purple", type = "b")
plot(scan_pat$scan, DOex$pmap, lodcolumn = 4, add = TRUE, col = "green", type = "b")
title("Scans for SDP 52 (blue), 43 (red), 16 (purple), 20 (green)")
## -----------------------------------------------------------------------------
plot(scan_pat$scan, DOex$pmap, lodcolumn = 2, col = "red")
abline(v = c(96.5, 98.5), col = "darkgray", lwd = 2, lty = 2)
plot(scan_pat$scan, DOex$pmap, lodcolumn = 1, add = TRUE, col = "blue")
plot(scan_pat$scan, DOex$pmap, lodcolumn = 3, add = TRUE, col = "purple")
plot(scan_pat$scan, DOex$pmap, lodcolumn = 4, add = TRUE, col = "green")
title("Scans for SDP 52 (blue), 43 (red), 16 (purple), 20 (green)")
## -----------------------------------------------------------------------------
oldpar <- par(mfrow = c(2,2))
cols <- c("blue","purple","red")
for(i in 1:4) {
plot(scan_pat$coef[[i]], DOex$pmap, columns = 1:3, col = cols, xlim = c(90,110), type = "b")
title(paste("Coefficients for", pat_names[i]))
if(i == 3) {
abline(v = c(96.5, 98.5), col = "darkgray", lwd = 2, lty = 2)
legend(104, -3, legend = c("ref","het","alt"),
col = cols, lty = 1, lwd = 2)
}
}
par(oldpar)
## -----------------------------------------------------------------------------
par(mfrow = c(2,2))
cols <- c("blue","purple","red")
for(i in 1:4) {
plot(scan_pat$coef[[i]], DOex$pmap, columns = 1:3, col = cols)
title(paste("Coefficients for", pat_names[i]))
if(i == 3) {
abline(v = c(96.5, 98.5), col = "darkgray", lwd = 2, lty = 2)
legend(125, -3, legend = c("ref","het","alt"),
col = cols, lty = 1, lwd = 2)
}
}
## -----------------------------------------------------------------------------
coefs2 <- qtl2::scan1coef(pr, DOex$pheno[,"OF_immobile_pct"], zerosum = FALSE)
## -----------------------------------------------------------------------------
x <- LETTERS[1:8]
ref <- outer(x,x,paste0)
ref <- ref[upper.tri(ref, diag=TRUE)]
ss <- 2 - sapply(stringr::str_split(ref, ""), function(x) x[1] == x[2])
alt <- ref[!stringr::str_detect(ref, c("A|B|C|D|G|H"))]
het <- ref[stringr::str_detect(ref, c("A|B|C|D|G|H")) & stringr::str_detect(ref, c("E|F"))]
altw <- ss[match(alt, ref, nomatch = 0)]
hetw <- ss[match(het, ref, nomatch = 0)]
refw <- ss[!stringr::str_detect(ref, c("E|F"))]
ref <- ref[!stringr::str_detect(ref, c("E|F"))]
## -----------------------------------------------------------------------------
coefsum <- coefs2
coefsum[,"AA"] <- apply(coefsum[,ref], 1, weighted.mean, w = refw)
coefsum[,"AB"] <- apply(coefsum[,het], 1, weighted.mean, w = hetw)
coefsum[,"BB"] <- apply(coefsum[,alt], 1, weighted.mean, w = altw)
colnames(coefsum)[1:3] <- c("ref","het","alt")
## -----------------------------------------------------------------------------
plot(coefsum, DOex$pmap, c("ref", "het", "alt", alt), xlim = c(90,110), ylim = c(-500, 500),
col = c(1,8,7,2:4), type = "b")
abline(h = mean(DOex$pheno[,"OF_immobile_pct"]), lwd = 2, col = "darkgrey", lty = 2)
abline(v = c(96.5, 98.5), col = "darkgray", lwd = 2, lty = 2)
title("Allele Coefficients for OF_immobile_pct")
legend(105, 80, legend = c("ref", "het", "alt", alt),
col = c(1,8,7,2:4), lty = 1, lwd = 2)
## -----------------------------------------------------------------------------
plot(coefsum, DOex$pmap, c("ref", "het", alt[-1]), xlim = c(90,110), ylim = c(55,90),
col = c(1,8,3:4), type = "b")
abline(h = mean(DOex$pheno[,"OF_immobile_pct"]), lwd = 2, col = "darkgrey", lty = 2)
abline(v = c(96.5, 98.5), col = "darkgray", lwd = 2, lty = 2)
title("Allele Pair Coefficients for OF_immobile_pct")
legend(107, 75, legend = c("ref", "het", alt[-1]),
col = c(1,8,3:4), lty = 1, lwd = 2)
## -----------------------------------------------------------------------------
scan_apr <- qtl2::scan1(apr, DOex$pheno)
coefs <- qtl2::scan1coef(apr, DOex$pheno)
coefs2 <- qtl2::scan1coef(pr, DOex$pheno)
## -----------------------------------------------------------------------------
alleles <- allele1(probD = pr,
scanH = scan_apr, coefH = coefs, coefD = coefs2,
scan_pat = scan_pat, map = DOex$pmap, alt = "E")
## -----------------------------------------------------------------------------
ggplot2::autoplot(alleles, scan_apr, DOex$pmap, frame = FALSE)
## -----------------------------------------------------------------------------
aa <- subset(alleles, sources = levels(alleles$source)[c(1,4:6)])
ggplot2::autoplot(aa, scan_apr, DOex$pmap, frame = FALSE)
## -----------------------------------------------------------------------------
pos = patterns$max_pos[patterns$sdp == 48]
wh <- which.min(abs(pos - DOex$pmap[[1]]))
geno <- apply(snppr[[1]][,,wh], 1, function(x) which.max(x))
geno <- factor(c("ref","het","alt")[geno], c("ref","het","alt"))
dat <- data.frame(DOex$pheno, geno = geno)
dat$x <- jitter(rep(1, nrow(dat)))
## -----------------------------------------------------------------------------
ggplot2::ggplot(dat) +
ggplot2::aes(x = x, y = OF_immobile_pct, col = geno, label = geno) +
ggplot2::geom_boxplot() +
ggplot2::geom_point() +
ggplot2::facet_wrap(~ geno)
## -----------------------------------------------------------------------------
tmpfile <- tempfile()
download.file(file.path(dirpath, "c2_genes.rds"), tmpfile, quiet=TRUE)
gene_tbl <- readRDS(tmpfile)
unlink(tmpfile)
class(gene_tbl) <- c("feature_tbl", class(gene_tbl))
## -----------------------------------------------------------------------------
out <- merge_feature(top_snps_tbl, snpinfo, scan_snppr, exons = gene_tbl)
summary(out, "pattern")
## -----------------------------------------------------------------------------
out$snp_type <- sample(c(rep("intron", 40), rep("exon", nrow(out) - 40)))
## -----------------------------------------------------------------------------
ggplot2::autoplot(out, "OF_immobile_pct")
## -----------------------------------------------------------------------------
ggplot2::autoplot(out, "OF_immobile_pct", "consequence")
## ----eval = FALSE-------------------------------------------------------------
# # Not quite right.
# gene <- "Lrrc4c"
# geneinfo <- dplyr::filter(gene_tbl, Name == gene)
# parts <- geneinfo$start + diff(unlist(geneinfo[,c("start","stop")])) * (0:5) / 5
# geneinfo <- geneinfo[rep(1,3),]
# geneinfo$type <- "exon"
# geneinfo$start <- parts[c(1,3,5)]
# geneinfo$stop <- parts[c(2,4,6)]
# gene_tbl <- rbind(gene_tbl[1,], geneinfo, gene_tbl[-1,])
## -----------------------------------------------------------------------------
qtl2::plot_genes(gene_tbl, xlim = c(96,99))
## -----------------------------------------------------------------------------
ggplot2::autoplot(gene_tbl)
## -----------------------------------------------------------------------------
ggplot2::autoplot(gene_tbl, top_snps_tbl = top_snps_tbl)
## -----------------------------------------------------------------------------
# Get Gene exon information.
out <- gene_exon(top_snps_tbl, gene_tbl)
summary(out, gene = out$gene[1])
## -----------------------------------------------------------------------------
ggplot2::autoplot(out, top_snps_tbl)
## -----------------------------------------------------------------------------
query_variants <-
qtl2::create_variant_query_func(
file.path("qtl2shinyData", "CCmouse", "cc_variants.sqlite"))
## -----------------------------------------------------------------------------
query_genes <-
qtl2::create_gene_query_func(
file.path("qtl2shinyData", "CCmouse", "mouse_genes.sqlite"))
## -----------------------------------------------------------------------------
objects(envir = environment(query_variants))
## -----------------------------------------------------------------------------
get("dbfile", envir = environment(query_variants))
## ----eval = FALSE-------------------------------------------------------------
# saveRDS(query_variants, "query_variants.rds")
# #
# # other code
# #
# query_variants <- readRDS("query_variants.rds")
## ----eval = FALSE-------------------------------------------------------------
# query_probs <-
# create_probs_query_func(
# file.path("qtl2shinyData", "CCmouse", "Recla"))
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.