## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, message = FALSE, comment = "#>", # fig.width = 8, # fig.height = 8, fig.small = TRUE, fig.retina = NULL ) ## ----install_bioc, eval=FALSE------------------------------------------------- # if (!require("BiocManager", quietly = TRUE)) { # install.packages("BiocManager") # } # BiocManager::install("escheR") ## ----install_github, eval = FALSE--------------------------------------------- # if (!require("devtools")) install.packages("devtools") # devtools::install_github("boyiguo1/escheR") # # # `devel` version from Bioconductor # BiocManager::install(version='devel') ## ----setup-------------------------------------------------------------------- library(escheR) library(STexampleData) ## ----data.import-------------------------------------------------------------- spe <- Visium_humanDLPFC() # Subset in-tissue spots spe <- spe[, spe$in_tissue == 1] spe <- spe[, !is.na(spe$ground_truth)] ## ----spe_summary-------------------------------------------------------------- spe ## ----create_plot-------------------------------------------------------------- p <- make_escheR(spe) ## ----creat_fill--------------------------------------------------------------- (p1 <- p |> add_fill(var = "cell_count")) ## ----create_ground------------------------------------------------------------ (p2 <- p |> add_ground(var = "ground_truth")) # round layer ## ----add_symbol--------------------------------------------------------------- p2 |> add_symbol(var = "ground_truth", size = 0.2) # Symbol layer ## ----default_con_cat_eg------------------------------------------------------- # Prep data # Adding gene counts for MBP to the colData spe$counts_MOBP <- counts(spe)[which(rowData(spe)$gene_name=="MOBP"),] (p <- make_escheR(spe) |> add_fill(var = "counts_MOBP") |> add_ground(var = "ground_truth", stroke = 0.5)) ## ----improved_con_cat_eg------------------------------------------------------ (p2 <- p + scale_fill_gradient(low = "white", high = "black")) ## ----creat_group-------------------------------------------------------------- spe$tmp_group <- cut( spe$array_row, breaks = c(min(spe$array_row)-1 , fivenum(spe$array_row)) ) table(spe$tmp_group) ## ----cat_cat_eg--------------------------------------------------------------- make_escheR(spe) |> add_fill(var = "tmp_group") |> add_ground(var = "ground_truth", stroke = 0.5) + scale_fill_brewer() + theme_void() ## ----cat_cat_eg2-------------------------------------------------------------- make_escheR(spe) |> add_fill(var = "tmp_group") |> add_ground(var = "ground_truth", stroke = 0.5) + scale_fill_brewer() + scale_color_manual( name = "", # turn off legend name for ground_truth values = c( "Layer1" = "#F0027F", "Layer2" = "transparent", "Layer3" = "#4DAF4A", "Layer4" = "#984EA3", "Layer5" = "#FFD700", "Layer6" = "#FF7F00", "WM" = "#1A1A1A") ) ## ----customize, eval = FALSE-------------------------------------------------- # (p_final <- p2 + # scale_color_manual( # name = "", # No legend name # values = c( # "Layer1" = "#F0027F", # "Layer2" = "#377EB8", # "Layer3" = "#4DAF4A", # "Layer4" = "#984EA3", # "Layer5" = "#FFD700", # "Layer6" = "#FF7F00", # "WM" = "#1A1A1A") # ) + # labs(title = "Example Title")) ## ----subset------------------------------------------------------------------- table(spe$ground_truth, useNA = "ifany") spe$tmp_fac <- factor(spe$ground_truth, levels = c("Layer1", "Layer2")) table(spe$tmp_fac, useNA = "ifany") make_escheR(spe) |> add_ground(var = "ground_truth") |> add_symbol(var = "tmp_fac", size = 0.4) + scale_shape_manual( values=c(3, 16), #> Set different symbols for the 2 levels breaks = c("Layer1", "Layer2") #> Remove NA from legend ) ## ----make_plot_list, eval = FALSE--------------------------------------------- # # Create a list of `escheR` plots # plot_list <- unique(spe$sample_id) |> # Create a list of sample names # lapply(FUN = function(.sample_id){ # Iterate over all samples # spe_single <- spe[, spe$sample_id == .sample_id] # make_escheR(spe_single) |> # add_fill(var = "counts_MOBP") |> # add_ground(var = "ground_truth", stroke = 0.5)) # # Customize theme # }) ## ----paneling, fig.width=8, fig.height=5-------------------------------------- library(ggpubr) plot_list <- list(p2, p2) ggarrange( plotlist = plot_list, ncol = 2, nrow = 1, common.legend = TRUE) ## ----save_escheR, eval = FALSE------------------------------------------------ # ggsave( # filename = "path/file_name.pdf", # plot = p_final # ) ## ----------------------------------------------------------------------------- utils::sessionInfo()