This tutorial contains the analysis of CosMx spatial transcriptomics data from pancreatic tissue. The analysis includes data processing, visualization, and differential expression analysis.
# Install required packages if not already installed
# Remove the hastags if you need to download these
# install.packages("Seurat")
# install.packages("tidyverse")
# install.packages("future")
# install.packages("BiocManager")
# install.packages("openxlsx")
# BiocManager::install("EnhancedVolcano")
library(Seurat)
library(tidyverse)
library(openxlsx)
library(ggplot2)
library(future)
library(EnhancedVolcano)
# Sets working environment to hold larger data objects
options(future.globals.maxSize = 8000 * 1024^2)
# Define color palette using glasbey and polychrome colors (uses Seurat package)
colors_20 <- DiscretePalette(20, palette = "glasbey", shuffle = FALSE)
colors_10 <- DiscretePalette(10, palette = "polychrome", shuffle = FALSE)
readRDS to the path to where your data object is# This is a Seurat object
## Change path!
so_panc <- readRDS("~/Documents/GCB_Academy_2025/spatial_biology/cosmxsinglecell/so_panc_cosmxWTA_sct.rds")
Idents(so_panc) <- "types"
# Zoomed to single FOV: CellOverlay_F053.jpg
# Visualize cell types in zoom 1
ImageDimPlot(object = so_panc, fov = "zoom1", group.by = "types", axes = TRUE, cols = "glasbey")
# Zoomed to 6 FOVs: CellOverlay_F051.jpg - CellOverlay_F056.jpg
# Visualize cell types in zoom 4
ImageDimPlot(object = so_panc, fov = "zoom4", group.by = "types", axes = TRUE, cols = "glasbey")
molsAll <- c("GCG", "EPCAM", "PRSS1", "C1QA",
"ACTA2", "CD3E", "INS", "CD163", "CD86")
molsDuct <- c("KRT19", "SOX9", "CFTR", "MUC1")
molsBeta <- c("INS", "IAPP", "DLK1", "PDX1")
molsMacs <- c("CD68", "CD163", "CD86", "CSF1R", "MARCO")
molsPSC <- c("FAP", "ACTA2", "COL1A1", "PDGFRA")
# Plot ductal markers (molecules) in single zoom segment
ImageDimPlot(so_panc, fov = "zoom1", cols = "polychrome", alpha = 0.25, molecules = molsDuct,
mols.size = 0.77, nmols = 20000, border.color = "black", coord.fixed = FALSE)
# Plot Beta cell markers
ImageDimPlot(so_panc, fov = "zoom1", cols = "polychrome", alpha = 0.25, molecules = molsBeta,
mols.size = 0.77, nmols = 20000, border.color = "black", coord.fixed = FALSE)
# Plot macrophage markers
ImageDimPlot(so_panc, fov = "zoom1", cols = "polychrome", alpha = 0.25, molecules = molsMacs,
mols.size = 0.77, nmols = 20000, border.color = "black", coord.fixed = FALSE)
# Plot PSC markers- these are the fibroblasts of the pancreas
ImageDimPlot(so_panc, fov = "zoom1", cols = "polychrome", alpha = 0.25, molecules = molsPSC,
mols.size = 0.77, nmols = 20000, border.color = "black", coord.fixed = FALSE)
# Plot a group of marker genes for all cell types
ImageDimPlot(so_panc, fov = "zoom1", cols = "polychrome", alpha = 0.25, molecules = molsAll,
mols.size = 0.35, nmols = 20000, border.color = "black", coord.fixed = FALSE)