Mercurial > repos > workflow4metabolomics > camera_findadducts
annotate CAMERA_findAdducts.R @ 0:3b2f7cb74c33 draft default tip
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
| author | workflow4metabolomics |
|---|---|
| date | Sun, 24 Nov 2024 21:31:14 +0000 |
| parents | |
| children |
| rev | line source |
|---|---|
|
0
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
1 #!/usr/bin/env Rscript |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
2 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
3 # ----- PACKAGE ----- |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
4 cat("\tSESSION INFO\n") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
5 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
6 # Import the different functions |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
7 source_local <- function(fname) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
8 argv <- commandArgs(trailingOnly = FALSE) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
9 base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
10 source(paste(base_dir, fname, sep = "/")) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
11 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
12 source_local("lib.r") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
13 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
14 pkgs <- c("CAMERA", "xcms", "multtest", "batch") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
15 loadAndDisplayPackages(pkgs) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
16 cat("\n\n") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
17 # ----- ARGUMENTS ----- |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
18 cat("\tARGUMENTS INFO\n") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
19 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
20 args <- parseCommandArgs(evaluate = FALSE) # interpretation of arguments given in command line as an R list of objects |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
21 write.table(as.matrix(args), col.names = FALSE, quote = FALSE, sep = "\t") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
22 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
23 cat("\n\n") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
24 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
25 print("Arguments retrieved from the command line:") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
26 print(args) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
27 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
28 # Function to convert "NULL" strings to actual NULL values |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
29 convertNullString <- function(x) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
30 if (x == "NULL") { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
31 return(NULL) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
32 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
33 return(x) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
34 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
35 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
36 # Function to convert string to numeric lists |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
37 convert_psg_list <- function(x) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
38 # Check if x is NULL or has zero length before further processing |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
39 if (is.null(x) || length(x) == 0) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
40 return(NULL) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
41 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
42 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
43 # Force conversion to character |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
44 x <- as.character(x) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
45 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
46 if (grepl("^[0-9]+$", x)) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
47 # If the string represents a single numeric value |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
48 return(as.numeric(x)) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
49 } else { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
50 # Convert string representation of a list to a numeric vector |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
51 # Use a regular expression to split by common separators |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
52 return(as.numeric(unlist(strsplit(x, "[,;\\s]+")))) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
53 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
54 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
55 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
56 for (arg in names(args)) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
57 args[[arg]] <- convertNullString(args[[arg]]) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
58 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
59 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
60 # Convert only the 'psg_list' element in args |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
61 args$psg_list <- convert_psg_list(args$psg_list) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
62 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
63 print("Argument types:") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
64 print(sapply(args, class)) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
65 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
66 # Check if the image file exists |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
67 if (!file.exists(args$image)) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
68 stop("The RData file does not exist: ", args$image) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
69 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
70 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
71 # ----- PROCESSING INFILE ----- |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
72 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
73 # Load the RData file |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
74 load(args$image) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
75 args$image <- NULL |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
76 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
77 # Save arguments for report generation |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
78 if (!exists("listOFlistArguments")) listOFlistArguments <- list() |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
79 listOFlistArguments[[format(Sys.time(), "%y%m%d-%H:%M:%S_findAdducts")]] <- args |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
80 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
81 # We unzip automatically the chromatograms from the zip files. |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
82 if (!exists("zipfile")) zipfile <- NULL |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
83 if (!exists("singlefile")) singlefile <- NULL |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
84 rawFilePath <- getRawfilePathFromArguments(singlefile, zipfile, args) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
85 zipfile <- rawFilePath$zipfile |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
86 singlefile <- rawFilePath$singlefile |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
87 args <- rawFilePath$args |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
88 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
89 print(paste("singlefile :", singlefile)) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
90 if (!is.null(singlefile)) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
91 directory <- retrieveRawfileInTheWorkingDir(singlefile, zipfile) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
92 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
93 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
94 # Check if the 'rules' argument in 'args' is NULL |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
95 if (is.null(args$rules)) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
96 # If 'args$rules' is NULL, set 'rulset' to NULL |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
97 args$rulset <- NULL |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
98 } else { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
99 # Try to read the rules file with different delimiters |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
100 delimiters <- c(";", "\t", ",") # List of possible delimiters |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
101 success <- FALSE # Flag to check if reading was successful |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
102 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
103 for (sep in delimiters) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
104 # Attempt to read the rules file with the current separator |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
105 args$rulset <- read.table(args$rules, header = TRUE, sep = sep) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
106 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
107 # Check if the number of columns is at least 4 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
108 if (ncol(args$rulset) >= 4) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
109 success <- TRUE # Mark success if the format is correct |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
110 break # Exit the loop if the file was read successfully |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
111 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
112 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
113 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
114 # If reading the rules file failed for all delimiters |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
115 if (!success) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
116 # Display an error message if the file is not well formatted |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
117 error_message <- "The rules file appears to be improperly formatted. Accepted column separators are ;, tab, and ,." |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
118 print(error_message) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
119 stop(error_message) # Stop execution with an error |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
120 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
121 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
122 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
123 # Verify that the object xa is loaded |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
124 if (!exists("xa")) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
125 stop("The object xa was not found in the RData file.") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
126 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
127 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
128 print("Loaded xa object:") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
129 print(xa) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
130 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
131 # Apply the findAdducts function on the xsAnnotate object |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
132 print("Calling findAdducts function:") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
133 xa <- findAdducts(xa, ppm = args$ppm, mzabs = args$mzabs, multiplier = args$multiplier, polarity = args$polarity, rules = args$rulset, max_peaks = args$max_peaks, psg_list = args$psg_list, intval = args$intval) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
134 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
135 print("Result of findAdducts function:") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
136 print(xa) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
137 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
138 # Extract the list of annotated peaks |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
139 peakList <- getPeaklist(xa, intval = args$intval) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
140 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
141 if (length(phenoData@data$sample_name) == 1) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
142 peakList$name <- make.unique(paste0("M", round(peakList[, "mz"], 0), "T", round(peakList[, "rt"], 0)), "_") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
143 variableMetadata <- peakList[, c("name", setdiff(names(peakList), "name"))] |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
144 variableMetadata <- formatIonIdentifiers(variableMetadata, numDigitsRT = args$numDigitsRT, numDigitsMZ = args$numDigitsMZ) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
145 } else { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
146 names_default <- groupnames(xa@xcmsSet, mzdec = 0, rtdec = 0) # Names without decimals |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
147 names_custom <- groupnames(xa@xcmsSet, mzdec = args$numDigitsMZ, rtdec = args$numDigitsRT) # Names with "x" decimals |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
148 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
149 variableMetadata <- data.frame( |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
150 name = names_default, |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
151 name_custom = names_custom, |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
152 stringsAsFactors = FALSE |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
153 ) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
154 variableMetadata <- cbind(variableMetadata, peakList[, !(make.names(colnames(peakList)) %in% c(make.names(sampnames(xa@xcmsSet))))]) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
155 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
156 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
157 if (!exists("RTinMinute")) RTinMinute <- FALSE |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
158 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
159 if (args$convertRTMinute && RTinMinute == FALSE) { |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
160 RTinMinute <- TRUE |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
161 variableMetadata <- RTSecondToMinute(variableMetadata = variableMetadata, convertRTMinute = args$convertRTMinute) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
162 } |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
163 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
164 # Save the extracted peak list as a TSV file named 'variableMetadata.tsv' |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
165 output_file_tsv <- "variableMetadata.tsv" |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
166 write.table(variableMetadata, file = output_file_tsv, sep = "\t", row.names = FALSE, quote = FALSE) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
167 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
168 # Save the updated xsAnnotate object |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
169 output_file_RData <- "camera_findAdducts.RData" |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
170 objects2save <- c("xa", "variableMetadata", "listOFlistArguments", "zipfile", "singlefile", "RTinMinute", "phenoData") |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
171 save(list = objects2save[objects2save %in% ls()], file = output_file_RData) |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
172 |
|
3b2f7cb74c33
planemo upload commit 24d44ee26b7c23380c2b42fae2f7f6e58472100d
workflow4metabolomics
parents:
diff
changeset
|
173 cat("Output files generated:", output_file_tsv, "and", output_file_RData, "\n") |
