Nothing
## ----options, include = FALSE-------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "##>"
)
## ----workflow, echo = FALSE, out.width = "80%"--------------------------------
knitr::include_graphics("figures/workflow.png")
## ----cran_install, eval = FALSE-----------------------------------------------
# packages.cran <- c(
# "ggplot2", "shiny", "shinythemes", "gprofiler2", "stats", "ggrepel",
# "utils", "RColorBrewer", "circlize", "shinyWidgets", "shinyjqui",
# "dplyr", "magrittr", "ggforce", "rlang", "glue", "matrixStats",
# "noisyr", "tibble", "ggnewscale", "ggrastr", "visNetwork", "shinyLP",
# "grid", "DT", "scales", "shinyjs", "tidyr", "UpSetR", "ggVennDiagram"
# )
# new.packages.cran <- packages.cran[!(packages.cran %in% installed.packages()[, "Package"])]
# if(length(new.packages.cran))
# install.packages(new.packages.cran)
## ----bioc_install, eval = FALSE-----------------------------------------------
# packages.bioc <- c(
# "edgeR", "DESeq2", "preprocessCore", "GENIE3", "ComplexHeatmap"
# )
# new.packages.bioc <- packages.bioc[!(packages.bioc %in% installed.packages()[,"Package"])]
# if(length(new.packages.bioc)){
# if (!requireNamespace("BiocManager", quietly = TRUE))
# install.packages("BiocManager")
# BiocManager::install(new.packages.bioc)
# }
## ----github_install, eval = FALSE---------------------------------------------
# install.packages("bulkAnalyseR")
#
# ### OR
#
# if (!requireNamespace("devtools", quietly = TRUE))
# install.packages("devtools")
#
# devtools::install_github("Core-Bioinformatics/bulkAnalyseR")
## ----setup--------------------------------------------------------------------
library(bulkAnalyseR)
library(dplyr)
library(ggplot2)
## ----read---------------------------------------------------------------------
counts.in <- system.file("extdata", "expression_matrix.csv", package = "bulkAnalyseR")
exp <- as.matrix(read.csv(counts.in, row.names = 1))
head(exp)
## ----metadata-----------------------------------------------------------------
meta <- data.frame(
srr = colnames(exp),
timepoint = rep(c("0h", "12h", "36h"), each = 2)
)
meta
## ----preprocess,fig.width=7, fig.height=5-------------------------------------
exp.proc <- preprocessExpressionMatrix(exp, output.plot = TRUE)
## ----bioconductor dbs, eval = FALSE-------------------------------------------
# BiocManager::available("^org\\.")
## ----generate app, eval=FALSE-------------------------------------------------
# generateShinyApp(
# shiny.dir = "shiny_Yang2019",
# app.title = "Shiny app for visualisation of three timepoints from the Yang 2019 data",
# modality = "RNA",
# expression.matrix = exp.proc,
# metadata = meta,
# organism = "mmusculus",
# org.db = "org.Mm.eg.db"
# )
## ----only QC and DE panels, eval = FALSE--------------------------------------
# generateShinyApp(
# shiny.dir = "shiny_Yang2019_onlyQC_DE",
# app.title = "Shiny app for visualisation of three timepoints from the Yang 2019 data",
# modality = "RNA",
# expression.matrix = exp.proc,
# metadata = meta,
# organism = "mmusculus",
# org.db = "org.Mm.eg.db",
# panels.default = c('QC','DE')
# )
## ----two modalities, eval = FALSE---------------------------------------------
# generateShinyApp(
# shiny.dir = "shiny_Yang2019_two_modalities",
# app.title = "Shiny app for visualisation of three timepoints from the Yang 2019 data",
# modality = c("RNA 1", "RNA 2"),
# expression.matrix = exp.proc,
# metadata = meta,
# organism = "mmusculus",
# org.db = "org.Mm.eg.db",
# panels.default = list(
# c("Landing", "SampleSelect", "QC", "DE", "DEplot", "DEsummary",
# "Enrichment", "Patterns", "Cross", "GRN"),
# c('QC','DE')
# )
# )
## ----sample select, echo = FALSE, out.width = "80%"---------------------------
knitr::include_graphics("figures/SampleSelect.png")
## ----JSI, echo = FALSE, out.width = "80%"-------------------------------------
knitr::include_graphics("figures/JSI.png")
## ----JSI_code, eval = FALSE---------------------------------------------------
# jaccard_heatmap(
# expression.matrix = exp.proc,
# metadata = meta,
# top.annotation.ids = 2,
# n.abundant = 500,
# show.values = FALSE,
# show.row.column.names = (nrow(meta) <= 20)
# )
## ----PCA, echo = FALSE, out.width = "80%"-------------------------------------
knitr::include_graphics("figures/PCA.png")
## ----PCA_code, eval = FALSE---------------------------------------------------
# plot_pca(
# expression.matrix = exp.proc,
# metadata = meta,
# annotation.id = 2,
# n.abundant = 500,
# show.labels = TRUE,
# show.ellipses = TRUE
# )
## ----MA QC, echo = FALSE, out.width = "80%"-----------------------------------
knitr::include_graphics("figures/MA_QC.png")
## ----DE, echo = FALSE, out.width = "80%"--------------------------------------
knitr::include_graphics("figures/DE.png")
## ----DE_code, eval = FALSE----------------------------------------------------
# # first create annotation table
# anno <- AnnotationDbi::select(
# org.Mm.eg.db::org.Mm.eg.db,
# keys = rownames(exp.proc),
# keytype = 'ENSEMBL',
# columns = 'SYMBOL'
# ) %>%
# distinct(ENSEMBL, .keep_all = TRUE) %>%
# mutate(NAME = ifelse(is.na(SYMBOL), ENSEMBL, SYMBOL))
#
# DEtable <- DEanalysis_edger(
# expression.matrix = exp.proc[, 1:4],
# condition = meta$timepoint[1:4],
# var1 = "0h",
# var2 = "12h",
# anno = anno
# )
# DEtable_deseq <- DEanalysis_deseq2(
# expression.matrix = exp.proc[, 1:4],
# condition = meta$timepoint[1:4],
# var1 = "0h",
# var2 = "12h",
# anno = anno
# )
## ----volcano, echo = FALSE, out.width = "80%"---------------------------------
knitr::include_graphics("figures/VolcanoPlot.png")
## ----volcano_code, eval = FALSE-----------------------------------------------
# volcano_plot(
# genes.de.results = DEtable,
# pval.threshold = 0.05,
# lfc.threshold = 1,
# log10pval.cap = TRUE
# )
## ----MA_DE, echo = FALSE, out.width = "80%"-----------------------------------
knitr::include_graphics("figures/MAPlot.png")
## ----MA_DE_code, eval = FALSE-------------------------------------------------
# ma_plot(
# genes.de.results = DEtable,
# pval.threshold = 0.05,
# lfc.threshold = 1
# )
## ----heatmap, echo = FALSE, out.width = "80%"---------------------------------
knitr::include_graphics("figures/ExpressionHeatmap.png")
## ----heatmap_code, eval = FALSE-----------------------------------------------
# genes_heatmap <- filter(arrange(DEtable, desc(abs(log2FC))), pvalAdj < 0.05)$gene_id
# expression_heatmap(
# expression.matrix.subset = exp.proc[genes_heatmap, ],
# top.annotation.ids = 2,
# metadata = meta,
# type = "Z-score",
# show.column.names = (nrow(meta) <= 20)
# )
## ----PCA_DE, echo = FALSE, out.width = "80%"----------------------------------
knitr::include_graphics("figures/PCA_DE.png")
## ----PCA_DE_code, eval = FALSE------------------------------------------------
# genes_de <- filter(DEtable, pvalAdj < 0.05, abs(log2FC) > 1)$gene_id
# plot_pca(
# expression.matrix = exp.proc[genes_de, ],
# metadata = meta,
# annotation.id = 2,
# n.abundant = NULL,
# show.labels = TRUE,
# show.ellipses = TRUE
# )
## ----enrichment, echo = FALSE, out.width = "80%"------------------------------
knitr::include_graphics("figures/Enrichment.png")
## ----enrichment_code, eval = FALSE--------------------------------------------
# gostres <- gprofiler2::gost(
# query = genes_de,
# organism = "mmusculus",
# correction_method = 'fdr',
# custom_bg = DEtable$gene_id,
# evcodes = TRUE
# )
# gostres$result <- mutate(
# gostres$result,
# parents = sapply(.data$parents, toString),
# intersection_names = sapply(.data$intersection, function(x){
# ensids <- strsplit(x, split = ",")[[1]]
# names <- DEtable$gene_name[match(ensids, DEtable$gene_id)]
# paste(names, collapse = ",")
# })
# )
## ----patterns, echo = FALSE, out.width = "30%"--------------------------------
knitr::include_graphics("figures/ExpressionPatterns.png")
## ----patterns_code, eval = FALSE----------------------------------------------
# condition <- factor(meta$timepoint)
# tbl <- calculate_condition_mean_sd_per_gene(exp.proc, condition)
# patterns <- make_pattern_matrix(tbl, n_sd = 2)[, "pattern"]
## ----patternLine, echo = FALSE, out.width = "80%"-----------------------------
knitr::include_graphics("figures/ExpressionPatternsLinePlot.png")
## ----patternHeatmap, echo = FALSE, out.width = "80%"--------------------------
knitr::include_graphics("figures/ExpressionPatternsHeatmap.png")
## ----cross, echo = FALSE, out.width = "80%"-----------------------------------
knitr::include_graphics("figures/CrossPlot.png")
## ----cross_code, eval = FALSE-------------------------------------------------
# cross_plot(
# DEtable1 = DEtable,
# DEtable2 = DEtable_deseq,
# DEtable1Subset = filter(DEtable, pvalAdj < 0.05, abs(log2FC) > 1),
# DEtable2Subset = filter(DEtable_deseq, pvalAdj < 0.05, abs(log2FC) > 1),
# lfc.threshold = 1
# )
## ----GRN, echo = FALSE, out.width = "80%"-------------------------------------
knitr::include_graphics("figures/GRN.png")
## ----GRN_code, eval = FALSE---------------------------------------------------
# infer_GRN(
# expression.matrix = exp.proc,
# metadata = meta,
# anno = anno,
# seed = 13,
# targets = "Trpm1",
# condition = "timepoint",
# samples = c("0h", "12h"),
# inference_method = "GENIE3"
# )
## ----add extra panel, eval = FALSE--------------------------------------------
# generateShinyApp(
# shiny.dir = "shiny_Yang2019_ExtraQC",
# app.title = "Shiny app for visualisation of three timepoints from the Yang 2019 data - extra QC",
# modality = "RNA",
# expression.matrix = exp.proc,
# metadata = meta,
# organism = "mmusculus",
# org.db = "org.Mm.eg.db",
# panels.extra = tibble::tibble(
# name = "RNA2",
# UIfun = "modalityPanelUI",
# UIvars = "'RNA2', metadata[[1]], NA, 'QC'",
# serverFun = "modalityPanelServer",
# serverVars = "'RNA2', expression.matrix[[1]], metadata[[1]], anno[[1]], NA, 'QC'"
# )
# )
## ----add extra data, eval = FALSE---------------------------------------------
# extra.data1 = matrix(rnorm(36),nrow=6)
# extra.data2 = matrix(rnorm(60),nrow=10)
#
# generateShinyApp(
# shiny.dir = "shiny_Yang2019_ExtraQC",
# app.title = "Shiny app for visualisation of three timepoints from the Yang 2019 data - extra QC",
# modality = "RNA",
# expression.matrix = exp.proc,
# metadata = meta,
# organism = "mmusculus",
# org.db = "org.Mm.eg.db",
# panels.extra = tibble::tibble(
# name = "RNA2",
# UIfun = "modalityPanelUI",
# UIvars = "'RNA2', metadata[[1]], NA, 'QC'",
# serverFun = "modalityPanelServer",
# serverVars = "'RNA2', expression.matrix[[1]], metadata[[1]], anno[[1]], NA, 'QC'"
# ),
# data.extra = list(extra.data1, extra.data2),
# packages.extra = "somePackage",
# )
## ----sessionInfo--------------------------------------------------------------
sessionInfo()
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.