annotate spatialGE_single_input.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 # Data Cleaning
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 # SINGLE INPUT SCRIPT:
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
6 # Accepts single raw data sample and single cosmx sample
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
7 # Does not accept single visium sample due to spatial subdirectory
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
8
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
9 # Purpose:
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
10 # Transform data into STlist, perform QC, log transform
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
11
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
12 library(spatialGE)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
13 library(optparse)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
14 library(ggplot2)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
15 library(tools)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
16 library(fs)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
17
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
18
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
19 ### Command line options
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
20
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
21 option_list <- list(
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("-c", "--counts"), 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
23 help = "Path to count data file(s)"),
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("-s", "--spots"), 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
25 help = "Path to cell coordinates file(s), not required for Visium or Xenium"),
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("-m", "--meta"), 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
27 help = "Path to metadata file"),
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("-n", "--names"), 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
29 help = "Specific sample names"),
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("--plotmeta"), 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
31 help = "Plots counts per cell or genes per cell"),
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("--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
33 help = "Samples to include in plots, defaults to all"),
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("--sminreads"), action = "store", default = 0, type = "integer",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
35 help = "Minimum number of total reads for a spot to be retained"),
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("--smaxreads"), action = "store", default = NULL, type = "integer",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
37 help = "Maximum number of total reads for a spot to be retained"),
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("--smingenes"), action = "store", default = 0, type = "integer",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
39 help = "Minimum number of non-zero counts for a spot to be retained"),
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("--smaxgenes"), action = "store", default = NULL, type = "integer",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
41 help = "Maximum number of non-zero counts for a spot to be retained"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
42 make_option(c("--gminreads"), action = "store", default = 0, type = "integer",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
43 help = "Minimum number of total reads for a gene to be retained"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
44 make_option(c("--gmaxreads"), action = "store", default = NULL, type = "integer",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
45 help = "Maximum number of total reads for a gene to be retained"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
46 make_option(c("--gminspots"), action = "store", default = 0, type = "integer",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
47 help = "Minimum number of spots with non-zero counts for a gene to be retained"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
48 make_option(c("--gmaxspots"), action = "store", default = NULL, type = "integer",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
49 help = "Maximum number of spots with non-zero counts for a gene to be retained"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
50 make_option(c("--distplot"), 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
51 help = "If set, generate unfiltered distribution plot"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
52 make_option(c("--filter"), 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
53 help = "If set, apply filtering before transformation"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
54 make_option(c("--filterplot"), 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
55 help = "If set, generate filtered distribution plot"),
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
56 make_option(c("-t", "--type"), action = "store_true", default = "log", type = "character",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
57 help = "Type of transformation to apply: log or sct")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
58 )
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 ### Main
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
61
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
62 #parse args
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
63 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
64
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
65 #check if metadata or sample names were provided
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
66 #need metadata for raw, sample names for cosmx
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
67 if (!is.na(opt$meta) && is.na(opt$names)) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
68 samples_input <- opt$meta
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
69 } else if (is.na(opt$meta) && !is.na(opt$names)) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
70 samples_input <- opt$names
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
71 } else {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
72 stop("Please only specify either --metadata OR --names")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
73 }
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
74
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
75 #create STlist with single input flags
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
76 st_data <- STlist(rnacounts = opt$counts, spotcoords = opt$spots, samples = samples_input)
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 message("STlist has been created")
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 #distribution plot
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 #create distribution plot if flag is included
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
83 if (opt$distplot) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
84
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
85 #if sample names are provided, separate the character string
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
86 #probably don't need strsplit, keeping for safety
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
87 if (!is.null(opt$samples) && opt$samples != "") {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
88 sample_names <- strsplit(opt$samples, split = ",", fixed = TRUE)[[1]]
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
89 } else {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
90 sample_names <- NULL
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
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
93 #generate distribution plot
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
94 dist_plot <- distribution_plots(x = st_data, plot_meta = opt$plotmeta, samples = sample_names, ptsize = 1)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
95
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
96 #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
97 base_input <- basename(opt$counts)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
98 base_name <- file_path_sans_ext(base_input)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
99
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
100 filename <- paste0("unfiltered_", base_name, ".png")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
101
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
102 #create output directory for cluster plots
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
103 dir.create("./unfiltered_distribution_plots", showWarnings = FALSE, recursive = TRUE)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
104
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
105 #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
106 ggsave(
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
107 path = "./unfiltered_distribution_plots",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
108 filename = filename,
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
109 bg = "white",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
110 width = 12
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
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
113 message("Unfiltered distribution plot saved to ./unfiltered_distribution_plots")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
114 }
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 #spot/cell filtering
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
117
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
118 #filter spots if flag is included
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
119 if (opt$filter) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
120
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
121 #filter out spots or genes based on minimum and maximum counts
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
122 st_data <- filter_data(x = st_data, spot_minreads = opt$sminreads, spot_maxreads = opt$smaxreads, spot_mingenes = opt$smingenes,
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
123 spot_maxgenes = opt$smaxgenes, gene_minreads = opt$gminreads)
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("Data filtering completed & saved to STlist")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
126 }
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
127
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
128 #filtered data plot
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
129
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
130 #create filtered distribution plot if flag is included
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
131 if (opt$filterplot) {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
132
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
133 #if sample names are provided, separate the character string
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
134 #probably don't need strsplit, keeping for safety
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
135 if (!is.null(opt$samples) && opt$samples != "") {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
136 sample_names <- strsplit(opt$samples, split = ",", fixed = TRUE)[[1]]
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
137 } else {
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
138 sample_names <- NULL
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
139 }
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
140
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
141 #generate filtered distribution plot
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
142 filter_dist_plot <- distribution_plots(x = st_data, plot_meta = opt$plotmeta, samples = sample_names, ptsize = 1)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
143
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
144 #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
145 base_input_2 <- basename(opt$counts)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
146 base_name_2 <- file_path_sans_ext(base_input_2)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
147
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
148 filename_2 <- paste0("filtered_", base_name_2, ".png")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
149
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
150 #create output directory for cluster plots
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
151 dir.create("./filtered_distribution_plots", showWarnings = FALSE, recursive = TRUE)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
152
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
153 #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
154 ggsave(
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
155 path = "./filtered_distribution_plots",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
156 filename = filename_2,
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
157 bg = "white",
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
158 width = 12
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
159 )
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
160
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
161 message("Filtered distribution plot saved to ./filtered_distribution_plots")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
162 }
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
163
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
164 #transform data, defaults to log transformation
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
165
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
166 STobj <- transform_data(x = st_data, method = opt$type)
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
167
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
168 message("Data has been log transformed, unless otherwise specified")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
169
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
170 #save transformed data to .rds
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
171
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
172 saveRDS(STobj, file = "STobj.rds")
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
173
555ca19d07e6 planemo upload for repository https://github.com/goeckslab/tools-st/tree/main/tools/spatialge commit 482b2e0e6ca7aaa789ba07b8cd689da9a01532ef
goeckslab
parents:
diff changeset
174 message("STlist has been saved as .rds file")