Mercurial > repos > recetox > isolib
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 |
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() |