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