Last updated: 2019-02-11
workflowr checks: (Click a bullet for more information) ✔ R Markdown file: up-to-date
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
✔ Environment: empty
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
✔ Seed:
set.seed(20181220)
The command set.seed(20181220)
was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.
✔ Session information: recorded
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
✔ Repository version: 2417cdf
wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Ignored files:
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: dsc-mash-gtex/
Untracked files:
Untracked: .DS_Store
Untracked: code/Demo_SumstatQuery.R
Untracked: data/.DS_Store
Untracked: data/cor_tissues_non_ash_voom_pearson.rda
Untracked: data/gene_names_GTEX_V6.txt
Untracked: data/genewide_ash_out_tissue_mat_halfuniform_non_mode.rda
Untracked: data/order_index.rda
Untracked: data/samples_id.txt
Untracked: data/sexde/
Untracked: data/tissuewide_pearson_halfuniform_tissuewide_non_mode.rda
Untracked: output/.DS_Store
Untracked: output/GTExV6/
Untracked: output/GTExV6pipeline/
Untracked: output/corshrink_noise_gene_1.rds
Untracked: output/sexde/
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
File | Version | Author | Date | Message |
---|---|---|---|---|
Rmd | 2417cdf | zouyuxin | 2019-02-11 | wflow_publish(“analysis/SexDEpipeline.Rmd”) |
library(mashr)
Loading required package: ashr
library(knitr)
library(kableExtra)
library(ggplot2)
library(gridExtra)
sexde <- readRDS('data/sexde/sexde.rds')
missing.tissues <- c(7, 24, 25, 31, 40, 43, 49, 51, 52)
gtex.colors <- read.table("https://github.com/stephenslab/gtexresults/blob/master/data/GTExColors.txt?raw=TRUE", sep = '\t', comment.char = '')[-missing.tissues, 2]
gtex.colors <- as.character(gtex.colors)
The results are from mashr_flashr_pipeline. We include the data driven covariance matrices based on the first three principal components and factors from flash
.
factors = readRDS('output/sexde/sexde.EE.flash.model.rds')$factors
par(mfrow = c(2, 3))
for(k in 1:7){
barplot(factors[,k], col=gtex.colors, names.arg = FALSE, axes = FALSE, main=paste0("Factor ", k))
}
factors = readRDS('output/sexde/sexde.EZ.flash.model.rds')$factors
par(mfrow = c(2, 3))
for(k in 1:16){
barplot(factors[,k], col=gtex.colors, names.arg = FALSE, axes = FALSE, main=paste0("Factor ", k))
}
# read model
m_mle_EE = readRDS('output/sexde/sexde.EE.FL_PC3.V_mle.mash_model.rds')
m_mle_EE$result = readRDS('output/sexde/sexde.EE.FL_PC3.V_mle.posterior.random.script.rds')
m_mle_EZ = readRDS('output/sexde/sexde.EZ.FL_PC3.V_mle.mash_model.rds')
m_mle_EZ$result = readRDS('output/sexde/sexde.EZ.FL_PC3.V_mle.posterior.random.rds')
V.mle.EE = readRDS('output/sexde/sexde.EE.FL_PC3.V_mle.rds')
corrplot::corrplot(V.mle.EE, method='color', type='upper', tl.col="black", tl.srt=45, tl.cex = 0.5, diag = FALSE, col=colorRampPalette(c("blue", "white", "red"))(200), cl.lim = c(-1,1), title = 'MLE EE', mar=c(0,0,5,0))
V.mle.EZ = readRDS('output/sexde/sexde.EZ.FL_PC3.V_mle.rds')
corrplot::corrplot(V.mle.EZ, method='color', type='upper', tl.col="black", tl.srt=45, tl.cex = 0.5, diag = FALSE, col=colorRampPalette(c("blue", "white", "red"))(200), cl.lim = c(-1,1), title = 'MLE EZ', mar=c(0,0,5,0))
logliks = c(get_loglik(m_mle_EE))
logliks_EZ = c(get_loglik(m_mle_EZ))
tmp = cbind(logliks, logliks_EZ)
row.names(tmp) = c('MLE')
colnames(tmp) = c('EE', 'EZ')
tmp %>% kable() %>% kable_styling()
EE | EZ | |
---|---|---|
MLE | 1696029 | 1709549 |
par(mfrow=c(1,2))
barplot(get_estimated_pi(m_mle_EE), las=2, cex.names = 0.7, main = 'MLE EE')
barplot(get_estimated_pi(m_mle_EZ), las=2, cex.names = 0.7, main = 'MLE EZ')
Number of significant:
numsig_EE = c(length(get_significant_results(m_mle_EE)))
numsig_EZ = c(length(get_significant_results(m_mle_EZ)))
tmp = cbind(numsig_EE, numsig_EZ)
row.names(tmp) = c('MLE')
colnames(tmp) = c('EE', 'EZ')
tmp %>% kable() %>% kable_styling()
EE | EZ | |
---|---|---|
MLE | 17635 | 20023 |
The pairwise sharing by magnitude
par(mfrow = c(1,2))
clrs=colorRampPalette(rev(c('darkred', 'red','orange','yellow','cadetblue1', 'cyan', 'dodgerblue4', 'blue','darkorchid1','lightgreen','green', 'forestgreen','darkolivegreen')))(200)
x <- get_pairwise_sharing(m_mle_EE)
colnames(x) <- colnames(get_lfsr(m_mle_EE))
rownames(x) <- colnames(x)
corrplot::corrplot(x, method='color', type='upper', tl.col="black", tl.srt=45, tl.cex = 0.7, diag = FALSE, col=clrs, cl.lim = c(0,1), title = 'MLE EE', mar=c(0,0,5,0))
x <- get_pairwise_sharing(m_mle_EZ)
colnames(x) <- colnames(get_lfsr(m_mle_EZ))
rownames(x) <- colnames(x)
corrplot::corrplot(x, method='color', type='upper', tl.col="black", tl.srt=45, tl.cex = 0.7, diag = FALSE, col=clrs, cl.lim = c(0,1), title = 'MLE EZ', mar=c(0,0,5,0))
meta_result = read.table('data/sexde/meta.sexde.svs.FE.allgenes.txt', header = TRUE)
meta_gene = as.character(meta_result$gene[meta_result$qval < 0.05])
length(intersect(meta_gene, names(get_significant_results(m_mle_EZ))))
[1] 9707
There are 11929 significant genes from meta analysis, 9707 of them are significant in mash model (EZ) as well.
The gene significant in meta analysis, not in MLE EZ
:
ind.name = setdiff(meta_gene, names(get_significant_results(m_mle_EZ)))[1]
ind = which(row.names(sexde$random.b) == ind.name)
stronggene = data.frame(sexde$random.b[ind,])
colnames(stronggene) = 'EffectSize'
stronggene$Group = row.names(stronggene)
stronggene$se = sexde$random.s[ind,]
p1 = ggplot(stronggene, aes(y = EffectSize, x = Group)) +
geom_point(show.legend = FALSE, color=gtex.colors) + coord_flip() + ggtitle('Row') + ylim(c(-1.3,1.1)) + geom_errorbar(aes(ymin=EffectSize-1.96*se, ymax=EffectSize+1.96*se), width=0.4, show.legend = FALSE, color=gtex.colors) +
theme_bw(base_size=12) + theme(axis.text.y = element_text(colour = gtex.colors, size = 6))
stronggeneMLE = data.frame(m_mle_EZ$result$PosteriorMean[ind,])
colnames(stronggeneMLE) = 'EffectSize'
stronggeneMLE$Group = row.names(stronggeneMLE)
stronggeneMLE$se = m_mle_EZ$result$PosteriorSD[ind,]
p2 = ggplot(stronggeneMLE, aes(y = EffectSize, x = Group)) +
geom_point(show.legend = FALSE, color=gtex.colors) + coord_flip() + ggtitle('MLE EZ') + ylim(c(-1.3,1.1)) +
geom_errorbar(aes(ymin=EffectSize-1.96*se, ymax=EffectSize+1.96*se), width=0.4, show.legend = FALSE, color=gtex.colors) +
theme_bw(base_size=12) + theme(axis.text.y = element_text(colour = gtex.colors, size = 6))
grid.arrange(p1, p2, nrow = 1)
sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS 10.14.2
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] gridExtra_2.3 ggplot2_3.1.0 kableExtra_1.0.1 knitr_1.20
[5] mashr_0.2.19.0555 ashr_2.2-26
loaded via a namespace (and not attached):
[1] tidyselect_0.2.5 corrplot_0.84 purrr_0.2.5
[4] lattice_0.20-38 colorspace_1.4-0 htmltools_0.3.6
[7] viridisLite_0.3.0 yaml_2.2.0 rlang_0.3.1
[10] R.oo_1.22.0 mixsqp_0.1-93 pillar_1.3.1
[13] withr_2.1.2 glue_1.3.0 R.utils_2.7.0
[16] bindrcpp_0.2.2 bindr_0.1.1 foreach_1.4.4
[19] plyr_1.8.4 stringr_1.3.1 munsell_0.5.0
[22] gtable_0.2.0 workflowr_1.1.1 rvest_0.3.2
[25] R.methodsS3_1.7.1 mvtnorm_1.0-8 codetools_0.2-16
[28] evaluate_0.12 labeling_0.3 pscl_1.5.2
[31] doParallel_1.0.14 parallel_3.5.1 highr_0.7
[34] Rcpp_1.0.0 readr_1.3.1 backports_1.1.3
[37] scales_1.0.0 rmeta_3.0 webshot_0.5.1
[40] truncnorm_1.0-8 abind_1.4-5 hms_0.4.2
[43] digest_0.6.18 stringi_1.2.4 dplyr_0.7.8
[46] grid_3.5.1 rprojroot_1.3-2 tools_3.5.1
[49] magrittr_1.5 lazyeval_0.2.1 tibble_2.0.1
[52] crayon_1.3.4 whisker_0.3-2 pkgconfig_2.0.2
[55] MASS_7.3-51.1 Matrix_1.2-15 SQUAREM_2017.10-1
[58] xml2_1.2.0 assertthat_0.2.0 rmarkdown_1.11
[61] httr_1.4.0 rstudioapi_0.9.0 iterators_1.0.10
[64] R6_2.3.0 git2r_0.24.0 compiler_3.5.1
This reproducible R Markdown analysis was created with workflowr 1.1.1