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