annotate spatialGE_clust.R @ 0:555ca19d07e6 draft default tip

planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
author goeckslab
date Wed, 13 Aug 2025 19:32:19 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
1 # ------------------------------
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
2 # Spatially-Informed Clustering
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
3 # ------------------------------
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
4
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
5 # Purpose:
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
6 # Group cells into tissue domains using hierarchical clustering on a weighted similarity matrix
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
7
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
8 library(spatialGE)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
9 library(optparse)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
10 library(ggplot2)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
11 library(tools)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
12 library(dplyr)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
13
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
14 ### Command Line Options
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
15
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
16
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
17 option_list <- list(
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
18 make_option(c("-f", "--file"), action = "store", default = NA, type = "character",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
19 help = "STlist .rds file path from preprocessing"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
20 make_option(c("--visium"), action = "store_true", type = "logical", default = FALSE,
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
21 help = "Flag for Visium data"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
22 make_option(c("--raw"), action = "store_true", type = "logical", default = FALSE,
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
23 help = "Flag for raw data"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
24 make_option(c("--cosmx"), action = "store_true", type = "logical", default = FALSE,
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
25 help = "Flag for CosMX data"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
26 make_option(c("-s", "--samples"), action = "store", default = NULL, type = "character",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
27 help = "Sample subset to perform clustering on"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
28 make_option(c("-w", "--weight"), action = "store", default = 0.025, type = "numeric",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
29 help = "Weight to be applied to spatial distances between 0-1"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
30 make_option(c("-d", "--dist"), action = "store", default = "euclidean", type = "character",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
31 help = "Distance metric to be used, all methods found in wordspace::dist.matrix"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
32 make_option(c("--dslogical"), action = "store_true", type = "logical", default = FALSE,
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
33 help = "Deepsplit logical flag"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
34 make_option(c("--logical"), action = "store", default = TRUE, type = "logical",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
35 help = "Control cluster resolution, true will produce more clusters"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
36 make_option(c("--dsnumeric"), action = "store_true", type = "logical", default = FALSE,
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
37 help = "Deepsplit numeric flag"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
38 make_option(c("--numeric"), action = "store", default = 0, type = "numeric",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
39 help = "control cluster resolution between 0-4, higher number will produce more clusters"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
40 make_option(c("-p", "--ptsize"), action = "store", default = 2.75, type = "numeric",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
41 help = "Size of points on cluster plot")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
42 )
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
43
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
44 ### Main
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
45
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
46 # parse args
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
47 opt <- parse_args(OptionParser(option_list = option_list))
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
48
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
49 # read in ST data from spatialGE preprocessing
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
50 STdata <- readRDS(opt$file)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
51
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
52 message("Rds object successfully loaded")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
53
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
54 # if deepSplit flag is included, choose between logical or numeric
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
55 if (opt$logical) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
56 deepsplit <- opt$dslogical
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
57 } else if (opt$numeric) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
58 deepsplit <- opt$dsnumeric
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
59 }
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
60
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
61 if (!is.null(opt$samples)) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
62 opt$samples <- strsplit(opt$samples, ",")[[1]]
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
63 } else if (is.null(opt$samples)) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
64 opt$samples <- NULL
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
65 }
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
66
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
67 # perform data clustering on transformed data
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
68 clusters <- STclust(x = STdata, samples = opt$samples, ws = opt$weight, dist_metric = opt$dist, deepSplit = deepsplit)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
69
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
70 message("Unsupervised spatially-informed clustering has been performed")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
71
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
72 # transform S4 to list for easier slot access
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
73 S4toList <- function(obj) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
74 slot_names <- slotNames(obj)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
75 structure(lapply(slot_names, slot, object = obj), names = slot_names)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
76 }
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
77
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
78 STdata <- S4toList(STdata)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
79
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
80 message("Transformed to S4 for slot name access")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
81
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
82 # depending on data input type, pull correct sample column
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
83 if (opt$visium) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
84 sample_col <- "sample_id"
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
85 } else if (opt$raw) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
86 sample_col <- "sampleID"
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
87 } else if (opt$cosmx) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
88 sample_col <- "sample_name"
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
89 }
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
90
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
91
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
92 if (!is.null(opt$samples)) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
93 samples <- STdata$sample_meta %>% pull(.data[[sample_col]]) %>% intersect(opt$samples)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
94 } else {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
95 samples <- STdata$sample_meta %>% pull(.data[[sample_col]])
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
96 }
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
97
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
98
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
99 message("Sample names identified")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
100
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
101 # create cluster plot directory
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
102 if (!dir.exists("cluster_plots")) dir.create("cluster_plots")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
103
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
104 # iterate through each sample, generate a plot, and save
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
105 for (s in samples) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
106
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
107 plot <- STplot(x = clusters, ws = opt$weight, ptsize = opt$ptsize, deepSplit = deepsplit, samples = s)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
108
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
109 message("Cluster plots generated")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
110
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
111
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
112 #create unique plot file names based on sample name
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
113
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
114 filename <- paste0("clustered_", s, ".png")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
115
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
116 #save plot to subdir
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
117 ggsave(
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
118 path = "./cluster_plots",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
119 filename = filename,
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
120 bg = "white",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
121 width = 12
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
122 )
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
123 }
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
124
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
125 message("Cluster plots saved")