## ---- echo=FALSE, results="hide"---------------------------------------------- knitr::opts_chunk$set(error=FALSE, warning=FALSE, message=FALSE, crop = NULL) library(BiocStyle) ## ----library, echo=FALSE------------------------------------------------------ library(imcRtools) ## ----access-spillover-files--------------------------------------------------- path <- system.file("extdata/spillover", package = "imcRtools") list.files(path, recursive = TRUE) ## ----access-txt-files--------------------------------------------------------- txt_files <- list.files(system.file("extdata/mockData/raw", package = "imcRtools")) txt_files ## ----imcsegmentationpipeline-data--------------------------------------------- path <- system.file("extdata/mockData/cpout", package = "imcRtools") list.files(path, recursive = TRUE) ## ----steinbock-data----------------------------------------------------------- path <- system.file("extdata/mockData/steinbock", package = "imcRtools") list.files(path, recursive = TRUE) ## ----show_cpout_features------------------------------------------------------ path <- system.file("extdata/mockData/cpout", package = "imcRtools") show_cpout_features(path) ## ----read_cpout--------------------------------------------------------------- cur_path <- system.file("extdata/mockData/cpout", package = "imcRtools") # Read as SpatialExperiment (spe <- read_cpout(cur_path, graph_file = "Object_relationships.csv")) # Read as SingleCellExperiment (sce <- read_cpout(cur_path, graph_file = "Object_relationships.csv", return_as = "sce")) ## ----read_steinbock----------------------------------------------------------- cur_path <- system.file("extdata/mockData/steinbock", package = "imcRtools") # Read as SpatialExperiment (spe <- read_steinbock(cur_path)) # Read as SingleCellExperiment (sce <- read_steinbock(cur_path, return_as = "sce")) ## ----read-txt-1--------------------------------------------------------------- path <- system.file("extdata/mockData/raw", package = "imcRtools") cur_CytoImageList <- readImagefromTXT(path) cur_CytoImageList ## ----read-single-metals------------------------------------------------------- path <- system.file("extdata/spillover", package = "imcRtools") sce <- readSCEfromTXT(path) sce ## ----plotSpotHeatmap, fig.width=5, fig.height=5------------------------------- plotSpotHeatmap(sce) ## ----plotSpotHeatmap-2, fig.width=5, fig.height=5----------------------------- plotSpotHeatmap(sce, log = FALSE, threshold = 200) ## ----pixel-binning, fig.width=5, fig.height=5--------------------------------- sce2 <- binAcrossPixels(sce, bin_size = 5) plotSpotHeatmap(sce2, log = FALSE, threshold = 200) ## ----assign-pixels------------------------------------------------------------ library(CATALYST) bc_key <- as.numeric(unique(sce$sample_mass)) assay(sce, "exprs") <- asinh(counts(sce)/5) sce <- assignPrelim(sce, bc_key = bc_key) sce <- estCutoffs(sce) sce <- applyCutoffs(sce) # Filter out mislabeled pixels sce <- filterPixels(sce) table(sce$bc_id, sce$sample_mass) ## ----estimate-spillover------------------------------------------------------- sce <- computeSpillmat(sce) metadata(sce)$spillover_matrix ## ----buildSpatialGraph, message=FALSE----------------------------------------- library(cytomapper) data("pancreasSCE") pancreasSCE <- buildSpatialGraph(pancreasSCE, img_id = "ImageNb", type = "expansion", threshold = 20) pancreasSCE <- buildSpatialGraph(pancreasSCE, img_id = "ImageNb", type = "knn", k = 5) pancreasSCE <- buildSpatialGraph(pancreasSCE, img_id = "ImageNb", type = "delaunay") colPairNames(pancreasSCE) ## ----plotSpatial-------------------------------------------------------------- library(ggplot2) library(ggraph) plotSpatial(pancreasSCE, img_id = "ImageNb", node_color_by = "CellType", node_shape_by = "ImageNb", node_size_by = "Area", draw_edges = TRUE, colPairName = "knn_interaction_graph", directed = FALSE) # Colored by expression and with arrows plotSpatial(pancreasSCE, img_id = "ImageNb", node_color_by = "PIN", assay_type = "exprs", node_size_fix = 3, edge_width_fix = 0.2, draw_edges = TRUE, colPairName = "knn_interaction_graph", directed = TRUE, arrow = grid::arrow(length = grid::unit(0.1, "inch")), end_cap = ggraph::circle(0.05, "cm")) # Subsetting the SingleCellExperiment plotSpatial(pancreasSCE[,pancreasSCE$Pattern], img_id = "ImageNb", node_color_by = "CellType", node_size_fix = 1, draw_edges = TRUE, colPairName = "knn_interaction_graph", directed = TRUE, scales = "fixed") ## ----aggregateNeigbors-------------------------------------------------------- pancreasSCE <- aggregateNeighbors(pancreasSCE, colPairName = "knn_interaction_graph", aggregate_by = "metadata", count_by = "CellType") head(pancreasSCE$aggregatedNeighbors) pancreasSCE <- aggregateNeighbors(pancreasSCE, colPairName = "knn_interaction_graph", aggregate_by = "expression", assay_type = "exprs") head(pancreasSCE$mean_aggregatedExpression) ## ----aggregateNeigbors-clustering--------------------------------------------- cur_cluster <- kmeans(pancreasSCE$aggregatedNeighbors, centers = 3) pancreasSCE$clustered_neighbors <- factor(cur_cluster$cluster) plotSpatial(pancreasSCE, img_id = "ImageNb", node_color_by = "CellType", node_size_fix = 4, edge_width_fix = 2, edge_color_by = "clustered_neighbors", draw_edges = TRUE, colPairName = "knn_interaction_graph", directed = FALSE, nodes_first = FALSE) + scale_color_brewer(palette = "Set2") + scale_edge_color_brewer(palette = "Set1") ## ----findBorderCells---------------------------------------------------------- pancreasSCE <- findBorderCells(pancreasSCE, img_id = "ImageNb", border_dist = 10) plotSpatial(pancreasSCE[,!pancreasSCE$border_cells], img_id = "ImageNb", node_color_by = "CellType", node_size_fix = 4, edge_width_fix = 2, edge_color_by = "clustered_neighbors", draw_edges = TRUE, colPairName = "knn_interaction_graph", directed = FALSE, nodes_first = FALSE) + scale_color_brewer(palette = "Set2") + scale_edge_color_brewer(palette = "Set1") ## ----patchDetection----------------------------------------------------------- pancreasSCE <- patchDetection(pancreasSCE, patch_cells = pancreasSCE$CellType == "celltype_B", colPairName = "expansion_interaction_graph", expand_by = 20, img_id = "ImageNb") plotSpatial(pancreasSCE, img_id = "ImageNb", node_color_by = "patch_id") ## ----countInteractions-------------------------------------------------------- out <- countInteractions(pancreasSCE, group_by = "ImageNb", label = "CellType", method = "classic", colPairName = "knn_interaction_graph") out ## ----testInteractions--------------------------------------------------------- out <- testInteractions(pancreasSCE, group_by = "ImageNb", label = "CellType", method = "classic", colPairName = "knn_interaction_graph") out ## ----sessionInfo, echo=FALSE-------------------------------------------------- sessionInfo()