annotate isolib.R @ 5:964b4559eb1b draft default tip

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
author recetox
date Thu, 15 May 2025 16:42:56 +0000
parents 2b1118bce0b1
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)
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
7
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
8
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
9 isotopes <- data.frame(
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
10 element = character(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
11 abundance = numeric(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
12 isotope = character()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
13 )
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
14 element <- character()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
15 abundance <- numeric()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
16 adducts <- data.frame(
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
17 Name = character(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
18 Mult = numeric(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
19 Formula_add = character(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
20 Formula_ded = character(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
21 Charge = numeric(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
22 Ion_mode = character(),
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
23 Mass = numeric()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
24 )
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
25 mz <- numeric()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
26 peaks <- numeric()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
27 isos <- character()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
28 retention_time <- numeric()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
29 full_formula <- character()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
30 name <- character()
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
31
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
32
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
33 parse_args <- function() {
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
34 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
35
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
36 compound_table <- read_tsv(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
37 file = args[1],
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
38 col_types = "ccd",
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
39 col_select = all_of(c("name", "formula")) | any_of("rt")
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
40 )
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
41 # 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
42 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
43 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
44 } else {
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
45 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
46 }
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
47
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
48 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
49 stop(
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
50 "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
51 " 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
52 )
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
53 }
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
54
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
55 parsed <- list(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
56 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
57 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
58 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
59 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
60 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
61 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
62 outfile = args[7],
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
63 rel_to = rel_to_value
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
64 )
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
65 parsed
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
66 }
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 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
69 adducts_to_use,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
70 append_adducts,
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
71 threshold,
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
72 rel_to) {
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
73 data(isotopes)
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
74 data(adducts)
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
75
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
76 monoisotopic <- isotopes |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
77 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
78 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
79 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
80
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
81 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
82 spectra <- data.frame()
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
83
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
84 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
85 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
86 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
87
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
88 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
89 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
90 multiplied_chemforms,
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
91 adduct$Formula_ded
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
92 )
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
93 } else {
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
94 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
95 multiplied_chemforms,
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
96 adduct$Formula_add
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
97 )
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
98 }
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
99
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
100 charge_string <- paste0(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
101 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
102 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
103 )
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
104 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
105 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
106 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
107
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
108 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
109 names <- paste(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
110 compound_table$name,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
111 paste0("(", adduct$Name, ")"),
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
112 sep = " "
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
113 )
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
114 } else {
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
115 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
116 }
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
117
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
118 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
119 name = names,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
120 adduct = adduct_string,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
121 formula = chemforms,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
122 charge = adduct$Charge,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
123 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
124 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
125 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
126 )
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
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 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
129 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
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 patterns <- enviPat::isopattern(
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
133 isotopes = isotopes,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
134 chemforms = merged_chemforms,
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
135 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
136 threshold = threshold,
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
137 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
138 )
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
139
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
140 mzs <- list()
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
141 intensities <- list()
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
142 isos <- list()
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
143
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
144 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
145 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
146 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
147
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
148 # 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
149 # 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
150 # remove isotopes which don't occur
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
151 compositions <- as.data.frame(patterns[[i]][, -c(1, 2)]) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
152 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
153 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
154
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
155 # 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
156 compositions <- compositions |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
157 dplyr::rowwise() |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
158 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
159 purrr::map2_chr(
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
160 names(compositions),
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
161 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
162 ~ 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
163 ),
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
164 collapse = ", "
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
165 )) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
166 dplyr::ungroup() |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
167 dplyr::select(isotopes)
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
168 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
169 }
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
170
3
6b0fef8a77c0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit bc3445f7c41271b0062c7674108f57708d08dd28
recetox
parents: 2
diff changeset
171 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
172 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
173 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
174 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
175 }
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
176 spectra
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
177 }
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
178
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
179 write_to_msp <- function(spectra, file) {
5
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
180 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
181 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
182 }
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
183
4
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
184 write_to_table <- function(spectra, file, append_isotopes) {
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
185 entries <- spectra |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
186 dplyr::rowwise() |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
187 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
188 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
189 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
190 entries,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
191 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
192 ";"
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
193 )
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
194 result <- result |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
195 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
196 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
197
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
198 if (append_isotopes) {
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
199 result <- result |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
200 dplyr::mutate(result,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
201 full_formula = paste0(formula, " (", isotopes, ")")
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
202 ) |>
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
203 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
204 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
205 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
206 }
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
207 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
208 }
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
209
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
210 main <- function() {
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
211 args <- parse_args()
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
212 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
213 args$compound_table,
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
214 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
215 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
216 args$threshold,
964b4559eb1b planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 0765a69d2180d0cfda663cc1b4585a8935142169
recetox
parents: 4
diff changeset
217 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
218 )
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
219
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
220 if (args$out_format == "msp") {
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
221 write_to_msp(spectra, args$outfile)
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
222 } else if (args$out_format == "tabular") {
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
223 write_to_table(spectra, args$outfile, args$append_isotopes)
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
224 }
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
225 }
2b1118bce0b1 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit e21ab1b7f16bc0a58b33b8e46f828e150372c307
recetox
parents: 3
diff changeset
226
0
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
227 # Call the main function
8a1893635ac0 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/isolib commit 019a1087adb6bd570eada9ce1d7d6fcd6d55bff8
recetox
parents:
diff changeset
228 main()