## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE ) library(easylabel) ## ----eval = FALSE------------------------------------------------------------- # install.packages("easylabel") # library(easylabel) ## ----eval = FALSE------------------------------------------------------------- # devtools::install_github("myles-lewis/easylabel") # library(easylabel) ## ----eval = FALSE------------------------------------------------------------- # if (!requireNamespace("BiocManager", quietly = TRUE)) # install.packages("BiocManager") # BiocManager::install("qvalue") ## ----eval = FALSE------------------------------------------------------------- # BiocManager::install("AnnotationDbi") # BiocManager::install("org.Hs.eg.db") ## ----eval = FALSE------------------------------------------------------------- # data(mtcars) # easylabel(mtcars, x = 'mpg', y = 'wt', # colScheme = 'royalblue') ## ----scatter1, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("scatter1.png") ## ----eval=FALSE--------------------------------------------------------------- # data(mtcars) # # p1 <- easylabel(mtcars, x = 'mpg', y = 'wt', col = 'cyl', # startLabels = rownames(mtcars)[mtcars$gear == 5], # output_shiny = FALSE) %>% # layout(yaxis = list(zeroline = FALSE)) # # p2 <- easylabel(mtcars, x = 'mpg', y = 'drat', col = 'vs', # colScheme = c("dodgerblue", "orange"), # startLabels = rownames(mtcars)[mtcars$gear == 5], # output_shiny = FALSE) %>% # layout(xaxis = list(zeroline = FALSE)) # # plotly::subplot(p1, p2, nrows = 2, shareY = TRUE, titleX = TRUE, margin = 0.05) ## ----plotlyOutput, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("plotly_output.png") ## ----eval = FALSE------------------------------------------------------------- # easylabel(mtcars, x = 'mpg', y = 'wt', # col = 'cyl') ## ----eval = FALSE------------------------------------------------------------- # # gapminder data set # if(!require(gapminder)) {install.packages("gapminder")} # library(gapminder) # easylabel(gapminder[gapminder$year == 2007, ], x = 'gdpPercap', y = 'lifeExp', # col = 'continent', shape = 'continent', # size = 10, # labs = 'country', # zeroline = FALSE) ## ----scatter3, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("scatter3.png") ## ----eval = FALSE------------------------------------------------------------- # library(gapminder) # easylabel(gapminder[gapminder$year == 2007, ], x = 'gdpPercap', y = 'lifeExp', # col = 'continent', labs = 'country', # size = 'pop', # alpha = 0.6, # zeroline = FALSE) ## ----bubble, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("bubble.png") ## ----eval = FALSE------------------------------------------------------------- # easylabel(xymatrix, x = 'x', y = 'y', col = 'col', # colScheme = c('darkgrey', 'green3', 'gold3', 'blue'), # xlab = expression("log"[2] ~ " fold change post-Rituximab"), # ylab = expression("log"[2] ~ " fold change post-Tocilizumab"), # showgrid = TRUE) ## ----plot1, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("plot1.png") ## ----eval = FALSE------------------------------------------------------------- # # example axis ticks # if(!require(gapminder)) {install.packages("gapminder")} # library(gapminder) # easylabel(gapminder[gapminder$year == 2007, ], x = 'gdpPercap', y = 'lifeExp', # col = 'continent', shape = 'continent', # size = 10, # labs = 'country', # zeroline = FALSE, # xaxp = c(0, 50000, 10), # yaxp = c(40, 85, 9), # showgrid = TRUE) ## ----eval = FALSE------------------------------------------------------------- # # example adding a trend line using panel.last # fit <- lm(xymatrix$y ~ xymatrix$x) # easylabel(xymatrix, x = 'x', y = 'y', col = 'col', # colScheme = c('darkgrey', 'green3', 'gold3', 'blue'), # xlab = expression("log"[2] ~ " fold change post-Rituximab"), # ylab = expression("log"[2] ~ " fold change post-Tocilizumab"), # showgrid = TRUE, fullGeneNames = TRUE, # panel.last = { # abline(fit, col='red') # }) ## ----------------------------------------------------------------------------- # Example DESeq2 object head(volc1) # Example limma object head(volc2) ## ----eval = FALSE------------------------------------------------------------- # # Typical DESeq2 workflow # volc1 <- results(dds) # easyVolcano(volc1, useQ = TRUE) ## ----eval = FALSE------------------------------------------------------------- # # Manually specify columns # easyVolcano(volc1, x = 'log2FoldChange', y = 'pvalue', padj = 'padj') # # # To use nominal unadjusted p value for significant genes # easyVolcano(volc1, x = 'log2FoldChange', y = 'pvalue') ## ----eval = FALSE------------------------------------------------------------- # easyMAplot(volc2, useQ = TRUE) ## ----easyMAplot1, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("MAplot1.png") ## ----eval = FALSE------------------------------------------------------------- # BiocManager::install("AnnotationDbi") # BiocManager::install("org.Hs.eg.db") # easyVolcano(volc1, useQ = TRUE, fullGeneNames = TRUE) ## ----table1, echo = FALSE, message=FALSE, fig.align='center', out.width='100%', out.extra='style="border: 0;"'---- knitr::include_graphics("table1.png") ## ----eval = FALSE------------------------------------------------------------- # BiocManager::install("org.Mm.eg.db") # library(org.Mm.eg.db) # easyVolcano(volc1, # fullGeneNames = TRUE, # AnnotationDb = org.Mm.eg.db) ## ----eval = FALSE------------------------------------------------------------- # easyVolcano(volc2, # useQ = TRUE, # fccut = 0, # main = "Volcano title") ## ----plot7, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("plot7.png") ## ----eval = FALSE------------------------------------------------------------- # easyVolcano(volc1, # useQ = TRUE, fullGeneNames = TRUE, # Ltitle = expression(symbol("\254") ~ "Non-responder"), # Rtitle = expression("Responder" ~ symbol("\256")), # LRtitle_side = 1, # cex.lab = 0.9, cex.axis = 0.8, # fccut = c(1, 2), fdrcutoff = 0.2, # ylim = c(0, 6), xlim = c(-5, 5), # colScheme = c('darkgrey', 'blue', 'orange', 'red')) ## ----plot3, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("plot3.png") ## ----eval = FALSE------------------------------------------------------------- # easyVolcano(volc1, y = 'pvalue', padj = 'pvalue', fdrcutoff = 0.01) ## ----eval = FALSE------------------------------------------------------------- # colScheme <- c('darkgrey', 'blue', 'lightblue', 'orange', 'red') # easyVolcano(volc1, fccut = 1, fdrcutoff = 0.2, # ylim = c(0, 6), xlim = c(-5, 5), # colScheme = colScheme, # vline = c(-1, 1)) ## ----plot4, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("plot4.png") ## ----eval = FALSE------------------------------------------------------------- # library(RColorBrewer) # colScheme <- c('darkgrey', brewer.pal(9, 'RdYlBu')[c(9:7, 3:1)]) # easyVolcano(volc1, fccut = c(1, 2), fdrcutoff = 0.2, # ylim = c(0, 6), xlim = c(-5, 5), # colScheme = colScheme, # alpha = 0.75, outline_col = NA) ## ----plot5, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("plot5.png") ## ----eval = FALSE------------------------------------------------------------- # colScheme <- c('darkgrey', brewer.pal(9, 'RdYlBu')[c(7:9, 3:1)]) # easyMAplot(volc2, fdrcutoff = c(0.05, 0.01, 0.001), size = 6, useQ = TRUE, # alpha = 0.75, outline_col = NA, # colScheme = colScheme) ## ----easyMAplot2, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("MAplot2.png") ## ----eval = FALSE------------------------------------------------------------- # easyVolcano(volc1, labelDir = "horiz") # easyMAplot(volc1, labelDir = "vert") ## ----labdirs1, echo = FALSE, message=FALSE, fig.show='hold', out.width='48%', out.extra='style="border: 0;"'---- knitr::include_graphics(c("labdir_horiz.png", "labdir_vert.png")) ## ----eval = FALSE------------------------------------------------------------- # # Simple outlines # easyVolcano(volc2, useQ = TRUE, fccut = 0, # rectangles = TRUE) # # # Red outlined labels, rounded ends # easyVolcano(volc2, useQ = TRUE, fullGeneNames = TRUE, # rectangles = TRUE, # padding = 5, # border_radius = 10, # line_col = 'red', # border_col = 'red', # text_col = 'red') ## ----labrect2, echo = FALSE, message=FALSE, fig.show='hold', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("rect_red_outline.png") ## ----eval = FALSE------------------------------------------------------------- # # Transparent grey rectangles, rounded ends # easyMAplot(volc2, fdrcut = c(0.05, 0.01, 0.001), size = 6, useQ = TRUE, # alpha = 0.75, outline_col = NA, # fullGeneNames = TRUE, # colScheme = c('darkgrey', brewer.pal(9, 'RdYlBu')[c(7:9, 3:1)]), # rectangles = TRUE, # border_col = NA, # padding = 5, # rect_col = adjustcolor('grey', alpha.f = 0.6), # border_radius = 20) # # # White text on black background, no rounding # easyVolcano(volc2, useQ = TRUE, fullGeneNames = TRUE, # fccut = 0, # rectangles = TRUE, # padding = 4, # border_radius = 0, # rect_col = 'black', # text_col = 'white', # border_col = NA) ## ----labrect4, echo = FALSE, message=FALSE, fig.show='hold', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("rect_invert.png") ## ----eval = FALSE------------------------------------------------------------- # # Label text and label lines match point colours # easylabel(gapminder[gapminder$year == 2007, ], x = 'gdpPercap', y = 'lifeExp', # col = 'continent', labs = 'country', # size = 'pop', # alpha = 0.6, # line_col = "match", text_col = "match", # zeroline = FALSE, showgrid = "y") ## ----labmatch1, echo = FALSE, message=FALSE, fig.show='hold', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("match1.png") ## ----eval = FALSE------------------------------------------------------------- # # Rectangle fill colour and label line match point colours, rounded rectangles # easylabel(gapminder[gapminder$year == 2007, ], x = 'gdpPercap', y = 'lifeExp', # col = 'continent', labs = 'country', # size = 'pop', # alpha = 0.6, # line_col = "match", text_col = "white", # rectangles = TRUE, border_col = NA, # rect_col = "match", border_radius = 20, padding = 5, # zeroline = FALSE, showgrid = "y") ## ----labmatch2, echo = FALSE, message=FALSE, fig.show='hold', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("match2.png") ## ----eval = FALSE------------------------------------------------------------- # # Manhattan plot using SLE GWAS data from Bentham et al 2015 # # FTP download full summary statistics from # # https://www.ebi.ac.uk/gwas/studies/GCST003156 # library(data.table) # SLE_gwas <- fread('../bentham_2015_26502338_sle_efo0002690_1_gwas.sumstats.tsv') # # Simple Manhattan plot # easyManhattan(SLE_gwas) # # # 4 colours for chromosomes # easyManhattan(SLE_gwas, chromCols = RColorBrewer::brewer.pal(4, 'Paired')) ## ----manhat, echo = FALSE, message=FALSE, fig.show='hold', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("manhattan.png") ## ----eval = FALSE------------------------------------------------------------- # # Examples # # 12 colours for chromosomes, no separate colour for significant points # easyManhattan(SLE_gwas, chromCols = RColorBrewer::brewer.pal(12, 'Paired'), # sigCol = NA) # # # Label peaks automatically, add horizontal gridlines # easyManhattan(SLE_gwas, npeaks = 20, showgrid = "y") # # # Vertical version # easyManhattan(SLE_gwas, transpose = TRUE, height = 1000, width = 600) # # # Chr1 only # easyManhattan(SLE_gwas[SLE_gwas$chrom == 1, ]) # # # Add symbols for the significant SNPs # easyManhattan(SLE_gwas, chromCols = RColorBrewer::brewer.pal(4, 'Paired'), # size = 8, # shape = 'col', # shapeScheme = c(rep(20, 4), 18)) ## ----eval=FALSE--------------------------------------------------------------- # # Create a locus plot over one chromosomal region # library(plotly) # p1 = easyManhattan(SLE_gwas[SLE_gwas$chrom == 6 & # SLE_gwas$pos >= 28e6 & # SLE_gwas$pos <= 34e6, ], # output_shiny = FALSE, labs = "rsid", # startLabels=c("rs115466242", "rs2853999"), # npeaks = 3) # # # # # To annotate genes in that region # source("https://raw.githubusercontent.com/KatrionaGoldmann/BioOutputs/master/R/bio_gene_locations.R") # library(ggbio) # library(gginnards) # library(ggrepel) # if (! "EnsDb.Hsapiens.v75" %in% rownames(installed.packages())) # BiocManager::install("EnsDb.Hsapiens.v75") # # p2 = bio_gene_locations(6, c(28e6, 34e6), # subset_genes = c('HLA-F', 'HLA-G', 'HLA-A', 'HLA-E', # 'HLA-C', 'HLA-B', 'HLA-DRA', # 'HLA-DRB5', 'HLA-DRB1', 'HLA-DQA1', # 'HLA-DQB1', 'HLA-DQA2', 'HLA-DQB2', # 'HLA-DOB', 'HLA-DMB', 'HLA-DMA', # 'HLA-DOA', 'HLA-DPA1', 'HLA-DPB1')) # # plotly::subplot(p1, p2$plotly_location %>% layout(yaxis=list(range=c(0.25, 2))), # shareY = T, titleX = T, margin=0.05, # nrows=2, heights=c(0.7, 0.3)) # ## ----locusOutput, echo = FALSE, message=FALSE, fig.align='center', out.width='80%', out.extra='style="border: 0;"'---- knitr::include_graphics("locus.png")