annotate isolib.R @ 7:06f2d0d6d107 draft default tip

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
author recetox
date Tue, 01 Jul 2025 09:28:32 +0000
parents f0fe957df1cc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
1 library(enviPat)
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
2 library(Spectra)
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
3 library(MsBackendMsp)
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
4 library(MetaboCoreUtils)
2
b3251a7dae25 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit b9574494a6f9d2239dc81899e6d4074b33b078b7
recetox
parents: 0
diff changeset
5 library(readr)
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
6 library(tidyselect)
7
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
7 library(stringr)
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
8 library(dplyr)
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
9
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
10 isotopes <- data.frame(
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
11 element = character(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
12 abundance = numeric(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
13 isotope = character()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
14 )
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
15 element <- character()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
16 abundance <- numeric()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
17 adducts <- data.frame(
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
18 Name = character(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
19 Mult = numeric(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
20 Formula_add = character(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
21 Formula_ded = character(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
22 Charge = numeric(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
23 Ion_mode = character(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
24 Mass = numeric()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
25 )
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
26 mz <- numeric()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
27 peaks <- numeric()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
28 isos <- character()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
29 retention_time <- numeric()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
30 full_formula <- character()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
31 name <- character()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
32
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
33
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
34 parse_args <- function() {
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
35 args <- commandArgs(trailingOnly = TRUE)
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
36
7
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
37 compound_table_full <- read_tsv(
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
38 file = args[1],
7
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
39 col_types = cols(
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
40 name = col_character(),
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
41 formula = col_character(),
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
42 rt = col_double(),
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
43 .default = col_guess()
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
44 )
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
45 )
7
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
46
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
47 # Extract selected columns
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
48 compound_table <- compound_table_full[, intersect(c("name", "formula", "rt"), colnames(compound_table_full)), drop = FALSE]
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
49
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
50 # Extract remaining columns
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
51 remaining_columns <- setdiff(colnames(compound_table_full), colnames(compound_table))
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
52 remaining_data <- compound_table_full[, c("name", remaining_columns), drop = FALSE]
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
53
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
54 # Handle missing or empty rel_to argument
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
55 rel_to_value <- if (length(args) >= 8 && args[8] != "") {
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
56 if (args[8] == "none") 0 else as.numeric(args[8])
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
57 } else {
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
58 0 # Default value is 0
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
59 }
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
60
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
61 if (!rel_to_value %in% c(0, 1, 2, 3, 4)) {
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
62 stop(
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
63 "Invalid value for rel_to. Expected 'none' (0),",
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
64 " or a numeric value between 0 and 4."
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
65 )
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
66 }
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
67
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
68 parsed <- list(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
69 compound_table = compound_table,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
70 adducts_to_use = c(unlist(strsplit(args[2], ",", fixed = TRUE))),
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
71 threshold = as.numeric(args[3]),
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
72 append_adducts = args[4],
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
73 append_isotopes = args[5],
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
74 out_format = args[6],
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
75 outfile = args[7],
7
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
76 rel_to = rel_to_value,
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
77 remaining_data = remaining_data
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
78 )
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
79 parsed
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
80 }
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
81
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
82 generate_isotope_spectra <- function(compound_table,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
83 adducts_to_use,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
84 append_adducts,
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
85 threshold,
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
86 rel_to) {
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
87 data(isotopes)
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
88 data(adducts)
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
89
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
90 monoisotopic <- isotopes |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
91 dplyr::group_by(element) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
92 dplyr::slice_max(abundance, n = 1) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
93 dplyr::filter(!stringr::str_detect(element, "\\[|\\]"))
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
94
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
95 chemforms <- enviPat::check_chemform(isotopes, compound_table$formula)[, 2]
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
96 spectra <- data.frame()
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
97
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
98 for (current in adducts_to_use) {
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
99 adduct <- adducts[adducts$Name == current, ]
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
100 multiplied_chemforms <- enviPat::multiform(chemforms, adduct$Mult)
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
101
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
102 if (adduct$Ion_mode == "negative") {
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
103 merged_chemforms <- enviPat::subform(
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
104 multiplied_chemforms,
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
105 adduct$Formula_ded
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
106 )
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
107 } else {
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
108 merged_chemforms <- enviPat::mergeform(
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
109 multiplied_chemforms,
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
110 adduct$Formula_add
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
111 )
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
112 }
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
113
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
114 charge_string <- paste0(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
115 if (adduct$Charge > 0) "+" else "-",
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
116 if (abs(adduct$Charge) > 1) abs(adduct$Charge) else ""
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
117 )
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
118 adduct_string <- paste0("[", adduct$Name, "]", charge_string)
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
119 precursor_mass <- MetaboCoreUtils::calculateMass(multiplied_chemforms)
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
120 precursor_mz <- precursor_mass + adduct$Mass
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
121
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
122 if (append_adducts == TRUE) {
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
123 names <- paste(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
124 compound_table$name,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
125 paste0("(", adduct$Name, ")"),
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
126 sep = " "
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
127 )
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
128 } else {
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
129 names <- compound_table$name
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
130 }
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
131
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
132 spectra_df <- data.frame(
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
133 name = names,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
134 adduct = adduct_string,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
135 formula = chemforms,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
136 charge = adduct$Charge,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
137 ionization_mode = adduct$Ion_mode,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
138 precursor_mz = precursor_mz,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
139 msLevel = as.integer(1)
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
140 )
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
141
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
142 if ("rt" %in% colnames(compound_table)) {
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
143 spectra_df$retention_time <- compound_table$rt
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
144 }
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
145
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
146 patterns <- enviPat::isopattern(
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
147 isotopes = isotopes,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
148 chemforms = merged_chemforms,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
149 charge = adduct$Charge,
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
150 threshold = threshold,
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
151 rel_to = rel_to,
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
152 )
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
153
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
154 mzs <- list()
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
155 intensities <- list()
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
156 isos <- list()
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
157
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
158 for (i in seq_along(patterns)) {
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
159 mzs <- append(mzs, list(patterns[[i]][, 1]))
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
160 intensities <- append(intensities, list(patterns[[i]][, 2]))
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
161
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
162 # select all columns which describe the elemental composition
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
163 # remove all 12C, 35Cl etc.
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
164 # remove isotopes which don't occur
6
f0fe957df1cc planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 148c6b04fff1cedd890d33e98d4fd787026a8628
recetox
parents: 5
diff changeset
165 compositions <- as.data.frame(patterns[[i]][, -c(1, 2), drop = FALSE]) |>
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
166 dplyr::select(-tidyselect::any_of(monoisotopic$isotope)) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
167 dplyr::select_if(~ !all(. == 0))
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
168
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
169 # combine elemental composition into single string
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
170 compositions <- compositions |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
171 dplyr::rowwise() |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
172 dplyr::mutate(isotopes = paste(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
173 purrr::map2_chr(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
174 names(compositions),
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
175 dplyr::c_across(everything()),
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
176 ~ paste(.x, .y, sep = ":")
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
177 ),
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
178 collapse = ", "
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
179 )) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
180 dplyr::ungroup() |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
181 dplyr::select(isotopes)
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
182 isos <- append(isos, list(compositions$isotopes))
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
183 }
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
184
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
185 spectra_df$mz <- mzs
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
186 spectra_df$intensity <- intensities
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
187 spectra_df$isotopes <- isos
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
188 spectra <- rbind(spectra, spectra_df)
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
189 }
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
190 spectra
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
191 }
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
192
7
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
193 join_remaining_data <- function(df, remaining_data) {
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
194 if (nrow(remaining_data) > 0) {
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
195 df <- df %>%
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
196 dplyr::mutate(base_name = stringr::str_trim(stringr::str_remove(name, "\\s*\\([^)]*\\)$")))
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
197 df <- dplyr::left_join(df, remaining_data, by = c("base_name" = "name"))
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
198 df <- df %>% dplyr::select(-base_name)
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
199 }
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
200 df
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
201 }
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
202
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
203 write_to_msp <- function(spectra, file, remaining_data) {
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
204 spectra <- join_remaining_data(spectra, remaining_data)
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
205 sps <- Spectra::Spectra(dplyr::select(spectra, -isotopes))
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
206 Spectra::export(sps, MsBackendMsp::MsBackendMsp(), file = file)
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
207 }
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
208
7
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
209 write_to_table <- function(spectra, file, append_isotopes, remaining_data) {
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
210 entries <- spectra |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
211 dplyr::rowwise() |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
212 dplyr::mutate(peaks = paste(unlist(mz), collapse = ";")) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
213 dplyr::mutate(isos = paste(unlist(isotopes), collapse = ";"))
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
214 result <- tidyr::separate_longer_delim(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
215 entries,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
216 all_of(c("peaks", "isos")),
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
217 ";"
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
218 )
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
219 result <- result |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
220 dplyr::select(-c("mz", "intensity", "isotopes")) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
221 dplyr::rename(mz = peaks, isotopes = isos, rt = retention_time)
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
222
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
223 if (append_isotopes) {
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
224 result <- result |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
225 dplyr::mutate(result,
6
f0fe957df1cc planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 148c6b04fff1cedd890d33e98d4fd787026a8628
recetox
parents: 5
diff changeset
226 full_formula = ifelse(
f0fe957df1cc planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 148c6b04fff1cedd890d33e98d4fd787026a8628
recetox
parents: 5
diff changeset
227 is.na(isotopes) | isotopes == "",
f0fe957df1cc planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 148c6b04fff1cedd890d33e98d4fd787026a8628
recetox
parents: 5
diff changeset
228 formula,
f0fe957df1cc planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 148c6b04fff1cedd890d33e98d4fd787026a8628
recetox
parents: 5
diff changeset
229 paste0(formula, " (", isotopes, ")")
f0fe957df1cc planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 148c6b04fff1cedd890d33e98d4fd787026a8628
recetox
parents: 5
diff changeset
230 )
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
231 ) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
232 dplyr::select(-all_of(c("formula", "isotopes"))) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
233 dplyr::rename(formula = full_formula) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
234 dplyr::relocate(formula, .after = name)
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
235 }
7
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
236 result <- join_remaining_data(result, remaining_data)
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
237 readr::write_tsv(result, file = file)
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
238 }
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
239
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
240 main <- function() {
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
241 args <- parse_args()
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
242 spectra <- generate_isotope_spectra(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
243 args$compound_table,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
244 args$adducts_to_use,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
245 args$append_adducts,
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
246 args$threshold,
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
247 args$rel_to
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
248 )
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
249
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
250 if (args$out_format == "msp") {
7
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
251 write_to_msp(spectra, args$outfile, args$remaining_data)
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
252 } else if (args$out_format == "tabular") {
7
06f2d0d6d107 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit aec90552d259748822d040248a9e1265759cc198
recetox
parents: 6
diff changeset
253 write_to_table(spectra, args$outfile, args$append_isotopes, args$remaining_data)
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
254 }
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
255 }
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
256
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
257 # Call the main function
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
258 main()