annotate masspix/massPix.R @ 2:b2f4fc0fc97d draft default tip

Uploaded
author metaboflow_cam
date Tue, 22 Oct 2019 05:44:45 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
1 #' wl-02-11-2017, Thu: commence
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
2 #' wl-07-11-2017, Tue: debug using manual test
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
3 #' wl-10-11-2017, Fri: change 'steps' as float
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
4 #' wl-24-11-2017, Fri: Major changes
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
5 #' wl-25-11-2017, Sat: error handling
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
6 #' wl-07-11-2017, Thu: add debug codes
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
7 #' wl-25-01-2018, Thu: remove user's input for 'offset'
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
8 #' wl-30-01-2018, Tue: fix bugs in 'standards'
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
9 #' wl-12-02-2018, Mon: change output file as tabular (.tab) for galaxy only
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
10 #' wl-14-02-2018, Wed: save cluster intensity data
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
11 #' wl-28-03-2019, Thu: apply style_file() to reformat this script and use
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
12 #' vim's folding as outline view. Without reformatng, the folding
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
13 #' is messy.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
14 #' Usages:
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
15 #' 1.) For command line and galaxy, change `com_f` to TRUE.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
16 #' 2.) For command line, change `home_dir` as appropriate
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
17 #' For Windows, run: massPix.bat
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
18 #' For Linux, run: ./massPix.sh
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
19 #' 3.) For interactive environment, change `com_f` to FALSE
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
20
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
21 ## ==== General settings ====
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
22
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
23 rm(list = ls(all = T))
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
24 set.seed(123)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
25
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
26 #' flag for command-line use or not. If false, only for debug interactively.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
27 com_f <- T
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
28
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
29 #' galaxy will stop even if R has warning message
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
30 options(warn = -1) #' disable R warning. Turn back: options(warn=0)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
31
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
32 #' Setup R error handling to go to stderr
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
33 #' options(show.error.messages = F, error = function() {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
34 #' cat(geterrmessage(), file = stderr())
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
35 #' q("no", 1, F)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
36 #' })
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
37
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
38 #' we need that to not crash galaxy with an UTF8 error on German LC settings.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
39 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
40
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
41 suppressPackageStartupMessages({
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
42 library(optparse)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
43 library(calibrate)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
44 library(rJava)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
45 library(WriteXLS)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
46 })
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
47
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
48 ## ==== Command line or interactive setting ====
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
49
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
50 if (com_f) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
51
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
52 #' Setup home directory
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
53 #' wl-24-11-2017, Fri: A dummy function for the base directory. The reason
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
54 #' to write such a function is to keep the returned values by
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
55 #' 'commandArgs' with 'trailingOnly = FALSE' in a local environment
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
56 #' otherwise 'parse_args' will use the results of
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
57 #' 'commandArgs(trailingOnly = FALSE)' even with 'args =
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
58 #' commandArgs(trailingOnly = TRUE)' in its argument area.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
59 func <- function() {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
60 argv <- commandArgs(trailingOnly = FALSE)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
61 path <- sub("--file=", "", argv[grep("--file=", argv)])
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
62 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
63 #' prog_name <- basename(func())
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
64 home_dir <- paste0(dirname(func()), "/")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
65
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
66 #' Specify our desired options in a list by default OptionParser will add
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
67 #' an help option equivalent to make_option(c("-h", "--help"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
68 #' action="store_true", default=FALSE, help="Show this help message and
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
69 #' exit")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
70 option_list <- list(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
71 make_option(c("-v", "--verbose"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
72 action = "store_true", default = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
73 help = "Print extra output [default]"
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
74 ),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
75 make_option(c("-q", "--quietly"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
76 action = "store_false",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
77 dest = "verbose", help = "Print little output"
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
78 ),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
79
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
80 #' input files
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
81 make_option("--imzML_file",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
82 type = "character",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
83 help = "Mass spectrometry imaging data to be processed.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
84 Currently imzML format is supported."
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
85 ),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
86 make_option("--image_file",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
87 type = "character",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
88 help = "Processed imaging data to be further analysis."
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
89 ),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
90
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
91 #' image processing
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
92 make_option("--process", type = "logical", default = TRUE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
93
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
94 #' make library
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
95 make_option("--ionisation_mode", type = "character", default = "positive"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
96 make_option("--fixed", type = "logical", default = FALSE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
97 make_option("--fixed_FA", type = "double", default = 16),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
98
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
99 #' mz_extractor
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
100 make_option("--thres_int", type = "integer", default = 100000),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
101 make_option("--thres_low", type = "integer", default = 200),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
102 make_option("--thres_high", type = "integer", default = 1000),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
103
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
104 #' peak_bin
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
105 make_option("--bin_ppm", type = "integer", default = 10),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
106
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
107 #' subset_image
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
108 make_option("--percentage_deiso", type = "integer", default = 3),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
109
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
110 #' filter
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
111 make_option("--steps", type = "double", default = 0.05),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
112 make_option("--thres_filter", type = "integer", default = 11),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
113
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
114 #' deisotope
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
115 make_option("--ppm", type = "integer", default = 3),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
116 make_option("--no_isotopes", type = "integer", default = 2),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
117 make_option("--prop_1", type = "double", default = 0.9),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
118 make_option("--prop_2", type = "double", default = 0.5),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
119 make_option("--search_mod", type = "logical", default = TRUE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
120 make_option("--mod",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
121 type = "character",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
122 default = "c(NL = T, label = F, oxidised = F, desat = F)"
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
123 ),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
124
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
125 #' annotate
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
126 make_option("--ppm_annotate", type = "integer", default = 10),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
127
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
128 #' normalise
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
129 make_option("--norm_type", type = "character", default = "TIC"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
130 make_option("--standards", type = "character", default = "NULL"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
131
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
132 #' output parameters and files
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
133 make_option("--image_out",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
134 type = "character", default = "image.tsv",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
135 help = "Processed imaging data visualisation"
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
136 ),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
137
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
138 make_option("--rdata", type = "logical", default = TRUE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
139 make_option("--rdata_out",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
140 type = "character", default = "r_running.rdata",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
141 help = "All the running results in RData for inspection."
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
142 ),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
143
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
144 #' plot parameters
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
145 make_option("--scale", type = "integer", default = 100),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
146 make_option("--nlevels", type = "integer", default = 50),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
147 make_option("--res_spatial", type = "integer", default = 50),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
148 make_option("--rem_outliers", type = "logical", default = TRUE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
149 make_option("--summary", type = "logical", default = FALSE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
150 make_option("--title", type = "logical", default = TRUE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
151
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
152 #' pca plot
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
153 make_option("--pca", type = "logical", default = TRUE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
154 make_option("--pca_out", type = "character", default = "pca.pdf"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
155 make_option("--scale_type", type = "character", default = "cs"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
156 make_option("--transform", type = "logical", default = FALSE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
157 make_option("--PCnum", type = "integer", default = 5),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
158 make_option("--loading", type = "logical", default = TRUE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
159 make_option("--loading_out", type = "character", default = "loading.xlsx"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
160
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
161 #' slice plot
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
162 make_option("--slice", type = "logical", default = TRUE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
163 make_option("--row", type = "integer", default = 12),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
164 make_option("--slice_out", type = "character", default = "slice.pdf"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
165
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
166 #' cluster plot
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
167 make_option("--clus", type = "logical", default = TRUE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
168 make_option("--clus_out", type = "character", default = "clus.pdf"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
169 make_option("--cluster_type", type = "character", default = "kmeans"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
170 make_option("--clusters", type = "integer", default = 5),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
171 make_option("--intensity", type = "logical", default = TRUE),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
172 make_option("--intensity_out", type = "character", default = "intensity.tsv")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
173 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
174
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
175 opt <- parse_args(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
176 object = OptionParser(option_list = option_list),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
177 args = commandArgs(trailingOnly = TRUE)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
178 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
179 } else {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
180 #' home_dir <- "C:/R_lwc/massPix/" #' for windows
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
181 home_dir <- "/home/wl/my_galaxy/massPix/" #' for linux. must be case-sensitive
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
182 opt <- list(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
183 #' -------------------------------------------------------------------
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
184 #' input files. Note that using full path here.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
185 imzML_file = paste0(home_dir, "test-data/test_pos.imzML"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
186 image_file = paste0(home_dir, "test-data/image_norm.tsv"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
187
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
188 #' image data processing parameters
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
189 process = T,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
190
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
191 #' make library
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
192 ionisation_mode = "positive",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
193 fixed = FALSE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
194 fixed_FA = 16,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
195 #' mz_extractor
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
196 thres_int = 100000,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
197 thres_low = 200,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
198 thres_high = 1000,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
199 #' peak_bin
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
200 bin_ppm = 10,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
201 #' subset_image
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
202 percentage_deiso = 3,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
203 #' filter
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
204 steps = 0.05,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
205 thres_filter = 11,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
206 #' deisotope
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
207 ppm = 3,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
208 no_isotopes = 2,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
209 prop_1 = 0.9,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
210 prop_2 = 0.5,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
211 search_mod = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
212 mod = "c(NL = T, label = F, oxidised = F, desat = F)",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
213 #' annotate
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
214 ppm_annotate = 10,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
215 #' normalise
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
216 norm_type = "TIC",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
217 standards = "NULL",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
218
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
219 #' output parameters and files
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
220 image_out = paste0(home_dir, "test-data/res/image.tsv"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
221
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
222 rdata = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
223 rdata_out = paste0(home_dir, "test-data/res/r_running.rdata"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
224
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
225 #' plot parameters
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
226 scale = 100,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
227 nlevels = 50,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
228 res_spatial = 50,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
229 rem_outliers = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
230 summary = FALSE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
231 title = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
232
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
233 #' pca plot
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
234 pca = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
235 pca_out = paste0(home_dir, "test-data/res/pca.pdf"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
236 scale_type = "cs",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
237 transform = FALSE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
238 PCnum = 5,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
239 loading = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
240 loading_out = paste0(home_dir, "test-data/res/loading.xlsx"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
241
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
242 #' slice plot
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
243 slice = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
244 slice_out = paste0(home_dir, "test-data/res/slice.pdf"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
245 row = 12,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
246
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
247 #' cluster plot
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
248 clus = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
249 clus_out = paste0(home_dir, "test-data/res/clus.pdf"),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
250 cluster_type = "kmeans",
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
251 clusters = 5,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
252 intensity = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
253 intensity_out = paste0(home_dir, "test-data/res/intensity.tsv")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
254 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
255 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
256 #' opt
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
257
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
258 suppressPackageStartupMessages({
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
259 source(paste0(home_dir, "all_massPix.R"))
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
260 })
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
261
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
262 ## ==== Pre-processing ====
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
263
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
264 #' imzML converter
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
265 lib_dir <- paste0(home_dir, "libraries/")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
266 imzMLparse <- paste0(home_dir, "imzMLConverter/imzMLConverter.jar")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
267
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
268 options(java.parameters = "Xmx4g")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
269
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
270 #' enforce the following required arguments
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
271 if (is.null(opt$imzML_file)) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
272 cat("'imzML_file' is required\n")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
273 q(status = 1)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
274 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
275 #' wl-07-02-2018, Wed: 'imzML_file' must be provided no matter what
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
276 #' 'process' is. For 'process' is FALSE, it gives 'x.cood' and 'y.cood' for
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
277 #' visualisation.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
278
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
279 if (!opt$process) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
280 if (is.null(opt$image_file)) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
281 cat("'image_file' is required\n")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
282 q(status = 1)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
283 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
284 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
285
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
286 #' read in library files
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
287 read <- read.csv(paste(lib_dir, "lib_FA.csv", sep = "/"), sep = ",", header = T)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
288 lookup_FA <- read[, 2:4]
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
289 row.names(lookup_FA) <- read[, 1]
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
290
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
291 read <- read.csv(paste(lib_dir, "lib_class.csv", sep = "/"), sep = ",", header = T)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
292 lookup_lipid_class <- read[, 2:3]
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
293 row.names(lookup_lipid_class) <- read[, 1]
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
294
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
295 read <- read.csv(paste(lib_dir, "lib_element.csv", sep = "/"), sep = ",", header = T)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
296 lookup_element <- read[, 2:3]
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
297 row.names(lookup_element) <- read[, 1]
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
298
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
299 read <- read.csv(paste(lib_dir, "lib_modification.csv", sep = "/"), sep = ",", header = T)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
300 lookup_mod <- read[, 2:ncol(read)]
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
301 row.names(lookup_mod) <- read[, 1]
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
302
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
303 #' parsing the data and getting x and y dimensions
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
304 .jinit()
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
305 .jaddClassPath(path = imzMLparse)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
306
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
307 imzML <- J("imzMLConverter.ImzMLHandler")$parseimzML(opt$imzML_file)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
308 #' wl-07-11-2017, Tue: Location opt$ibd_file is also written into imzML.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
309 #' Note that opt$imzML_file and opt$ibd_file must have the same file name
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
310 #' and extention names imzML and ibd, respectively. You can see this from
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
311 #' CPP file: (https://goo.gl/WTkFkn)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
312 #'
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
313 #' // Remove ".imzML" from the end of the file
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
314 #' this->ibdLocation = imzMLFilename.substr(0, imzMLFilename.size()-6) + ".ibd";
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
315 #'
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
316 #' Otherwise this function: J(spectrum, 'getIntensityArray') does not work.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
317 #' Three functions mzextractor, subsetImage and contructImage call this
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
318 #' function.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
319 #' wl-25-11-2017, Sat: imzML and ibd file must be uploaded and located in
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
320 #' the same directory. If so, no need to pass ibd file into R code since
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
321 #' imzMLConverter will get ibd file implicitely based on the directory and
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
322 #' name of imzML file.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
323
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
324 x.cood <- J(imzML, "getWidth")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
325 y.cood <- J(imzML, "getHeight")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
326
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
327 ## ==== Main Process ====
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
328
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
329 if (opt$process) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
330 #' make library
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
331 dbase <- makelibrary(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
332 ionisation_mode = opt$ionisation_mode,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
333 sel.class = NULL, fixed = opt$fixed,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
334 fixed_FA = opt$fixed_FA,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
335 lookup_lipid_class = lookup_lipid_class,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
336 lookup_FA = lookup_FA,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
337 lookup_element = lookup_element
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
338 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
339
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
340 #' Extract m/z and pick peaks
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
341 extracted <- mzextractor(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
342 files = opt$imzML,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
343 imzMLparse = imzMLparse,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
344 thres.int = opt$thres_int,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
345 thres.low = opt$thres_low,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
346 thres.high = opt$thres_high
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
347 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
348
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
349 #' Bin all m/zs by ppm bucket
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
350 peaks <- peakpicker.bin(extracted = extracted, bin.ppm = opt$bin_ppm)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
351
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
352 #' Generate subset of first image file to improve speed of deisotoping
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
353 temp.image <- subsetImage(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
354 extracted = extracted, peaks = peaks,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
355 percentage.deiso = opt$percentage_deiso,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
356 thres.int = opt$thres_int,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
357 thres.low = opt$thres_low,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
358 thres.high = opt$thres_high,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
359 files = opt$imzML,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
360 imzMLparse = imzMLparse
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
361 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
362
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
363 #' Filter to a matrix subset that includes variables above a threshold of
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
364 #' missing values
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
365 temp.image.filtered <- filter(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
366 imagedata.in = temp.image,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
367 steps = seq(0, 1, opt$steps),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
368 thres.filter = opt$thres_filter,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
369 offset = 1
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
370 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
371
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
372 #' Perform deisotoping on a subset of the image
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
373 deisotoped <- deisotope(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
374 ppm = opt$ppm, no_isotopes = opt$no_isotopes,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
375 prop.1 = opt$prop_1, prop.2 = opt$prop_2,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
376 peaks = list("", temp.image.filtered[, 1]),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
377 image.sub = temp.image.filtered,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
378 search.mod = opt$search_mod,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
379 mod = eval(parse(text = opt$mod)),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
380 lookup_mod = lookup_mod
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
381 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
382
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
383 #' Perform annotation of lipids using library
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
384 annotated <- annotate(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
385 ionisation_mode = opt$ionisation_mode,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
386 deisotoped = deisotoped,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
387 ppm.annotate = opt$ppm_annotate,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
388 dbase = dbase
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
389 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
390
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
391 #' make full image and add lipid ids
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
392 #' wl-23-08-2017: it takes **LONG TIME**.
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
393 final.image <- contructImage(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
394 extracted = extracted,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
395 deisotoped = deisotoped,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
396 peaks = peaks, imzMLparse = imzMLparse,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
397 thres.int = opt$thres_int,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
398 thres.low = opt$thres_low,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
399 thres.high = opt$thres_high,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
400 files = opt$imzML
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
401 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
402
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
403 ids <- cbind(deisotoped[[2]][, 1], annotated, deisotoped[[2]][, 3:4])
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
404
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
405 #' Create annotated image
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
406 image.ann <- cbind(ids, final.image[, 2:ncol(final.image)])
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
407
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
408 #' Normalise image
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
409 image.norm <- normalise(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
410 imagedata.in = image.ann,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
411 norm.type = opt$norm_type,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
412 standards = eval(parse(text = opt$standards)),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
413 offset = 4
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
414 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
415
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
416 #' wl-12-02-2018, Mon: change the first column name
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
417 colnames(image.norm)[1] <- "peak"
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
418
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
419 #' save processed results
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
420 #' write.csv(image.norm, file=opt$image_out, row.names = FALSE)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
421 write.table(image.norm, file = opt$image_out, sep = "\t", row.names = FALSE)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
422
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
423 #' save to rda for debug
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
424 if (opt$rdata) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
425 save(image.norm, image.ann, final.image, annotated, deisotoped,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
426 temp.image.filtered, temp.image, peaks, extracted, dbase,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
427 file = opt$rdata_out
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
428 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
429 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
430 } else {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
431 image.norm <- read.table(opt$image_file,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
432 sep = "\t", header = TRUE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
433 na.strings = "", stringsAsFactors = T
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
434 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
435 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
436
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
437
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
438 ## ==== Perform PCA if requested ====
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
439
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
440 if (opt$pca) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
441 image.scale <- centreScale(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
442 imagedata.in = image.norm,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
443 scale.type = opt$scale_type,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
444 transform = opt$transform,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
445 offset = 4
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
446 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
447
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
448 pdf(file = opt$pca_out, onefile = T)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
449 imagePca(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
450 imagedata.in = image.scale, offset = 4,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
451 PCnum = opt$PCnum, scale = opt$scale,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
452 x.cood = x.cood, y.cood = y.cood,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
453 nlevels = opt$nlevels, res.spatial = opt$res_spatial,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
454 rem.outliers = opt$rem_outliers,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
455 summary = opt$summary, title = opt$title
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
456 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
457 dev.off()
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
458
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
459 if (opt$loading) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
460 pca <- princomp(t(image.scale[, (4 + 1):ncol(image.scale)]),
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
461 cor = FALSE,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
462 scores = TRUE, covmat = NULL
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
463 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
464 labs.all <- as.numeric(as.vector(image.scale[, 1]))
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
465
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
466 #' for (i in 1:opt$PCnum){
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
467 #' loadings <- pca$loadings[,i]
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
468 #' loadings <- cbind(loadings, labs.all)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
469 #' write.csv(loadings, file=paste0(home_dir,"/res/", "loadings_PC",i,".csv"))
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
470 #' }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
471
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
472 #' wl-05-02-2018, Mon: save as one excel file
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
473 ld <- lapply(1:opt$PCnum, function(i) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
474 loadings <- pca$loadings[, i]
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
475 loadings <- cbind(loadings, labs.all)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
476 loadings <- as.data.frame(loadings)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
477 })
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
478 names(ld) <- paste0("PC", 1:opt$PCnum)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
479
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
480 WriteXLS(ld,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
481 ExcelFileName = opt$loading_out,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
482 row.names = F, FreezeRow = 1
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
483 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
484 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
485 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
486
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
487 ## ==== Make ion slice if requested ====
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
488
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
489 if (opt$slice) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
490 pdf(file = opt$slice_out, onefile = T)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
491 imageSlice(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
492 row = opt$row, imagedata.in = image.norm, scale = opt$scale,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
493 x.cood = x.cood, y.cood = y.cood,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
494 nlevels = opt$nlevels,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
495 name = image.norm[opt$row, 1],
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
496 subname = image.norm[opt$row, 2],
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
497 offset = 4, res.spatial = opt$res_spatial,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
498 rem.outliers = opt$rem_outliers, summary = opt$summary,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
499 title = opt$title
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
500 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
501 dev.off()
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
502 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
503
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
504 ## ==== Perform clustering if requested ====
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
505
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
506 if (opt$clus) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
507 pdf(file = opt$clus_out, onefile = T)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
508 intensity <- cluster(
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
509 cluster.type = opt$cluster_type,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
510 imagedata.in = image.norm,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
511 offset = 4, res.spatial = opt$res_spatial,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
512 width = x.cood, height = y.cood,
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
513 clusters = opt$clusters
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
514 )
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
515 dev.off()
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
516
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
517 if (opt$intensity) {
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
518 #' write.table(intensity,file=opt$intensity_out,sep="\t")
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
519 #' wl-14-02-2018, Wed: more need to be done for "\t"
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
520 tmp <- cbind(Clusters = rownames(intensity), intensity)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
521 write.table(tmp, file = opt$intensity_out, sep = "\t", row.name = FALSE)
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
522 }
b2f4fc0fc97d Uploaded
metaboflow_cam
parents:
diff changeset
523 }