Mercurial > repos > goeckslab > clustering_spatialge
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 |
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") |