annotate NmrPreprocessing_script.R @ 7:122df1bf0a8c draft default tip

planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
author workflow4metabolomics
date Fri, 11 Jul 2025 08:33:38 +0000
parents 5b06800f3449
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1 ## ==========================
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
2 # Internal functions
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
3 ## ==========================
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
4
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
5 # beginTreatment
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
6 beginTreatment <- function(name, Signal_data = NULL, Signal_info = NULL,
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
7 force.real = FALSE) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
8 cat("Begin", name, "\n")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
9
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
10
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
11 # Formatting the Signal_data and Signal_info -----------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
12
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
13 vec <- is.vector(Signal_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
14 if (vec) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
15 Signal_data <- vec2mat(Signal_data)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
16 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
17 if (is.vector(Signal_info)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
18 Signal_info <- vec2mat(Signal_info)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
19 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
20 if (!is.null(Signal_data)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
21 if (!is.matrix(Signal_data)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
22 stop("Signal_data is not a matrix.")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
23 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
24 if (!is.complex(Signal_data) && !is.numeric(Signal_data)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
25 stop("Signal_data contains non-numerical values.")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
26 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
27 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
28 if (!is.null(Signal_info) && !is.matrix(Signal_info)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
29 stop("Signal_info is not a matrix.")
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
30 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
31
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
32
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
33 Original_data <- Signal_data
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
34
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
35 # Extract the real part of the spectrum ---------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
36
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
37 if (force.real) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
38 if (is.complex(Signal_data)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
39 Signal_data <- Re(Signal_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
40 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
41 # The signal is numeric Im(Signal_data) is zero anyway so let's avoid
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
42 # using complex(real=...,imaginary=0) which would give a complex signal
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
43 # in endTreatment()
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
44 force.real <- FALSE
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
45 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
46 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
47
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
48
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
49 # Return the formatted data and metadata entries --------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
50
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
51 return(list(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
52 start = proc.time(), vec = vec, force.real = force.real,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
53 Original_data = Original_data, Signal_data = Signal_data, Signal_info = Signal_info
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
54 ))
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
55 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
56
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
57 # endTreatment
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
58 endTreatment <- function(name, begin_info, Signal_data) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
59 # begin_info: object outputted from beginTreatment
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
60
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
61
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
62 # Formatting the entries and printing process time -----------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
63 end_time <- proc.time() # record it as soon as possible
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
64 start_time <- begin_info[["start"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
65 delta_time <- end_time - start_time
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
66 delta <- delta_time[]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
67 cat("End", name, "\n")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
68 cat(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
69 "It lasted", round(delta["user.self"], 3), "s user time,", round(delta["sys.self"], 3),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
70 "s system time and", round(delta["elapsed"], 3), "s elapsed time.\n"
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
71 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
72
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
73
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
74 if (begin_info[["force.real"]]) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
75 # The imaginary part is left untouched
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
76 i <- complex(real = 0, imaginary = 1)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
77 Signal_data <- Signal_data + i * Im(begin_info[["Original_data"]])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
78 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
79
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
80 if (begin_info[["vec"]]) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
81 Signal_data <- Signal_data[1, ]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
82 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
83
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
84 # Return the formatted data and metadata entries --------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
85 return(Signal_data)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
86 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
87
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
88 # checkArg
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
89 checkArg <- function(arg, checks, can.be.null = FALSE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
90 check.list <- list(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
91 bool = c(is.logical, "a boolean"),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
92 int = c(function(x) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
93 x %% 1 == 0
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
94 }, "an integer"),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
95 num = c(is.numeric, "a numeric"),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
96 str = c(is.character, "a string"),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
97 pos = c(function(x) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
98 x > 0
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
99 }, "positive"),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
100 pos0 = c(function(x) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
101 x >= 0
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
102 }, "positive or zero"),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
103 l1 = c(function(x) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
104 length(x) == 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
105 }, "of length 1")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
106 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
107 if (is.null(arg)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
108 if (!can.be.null) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
109 stop(deparse(substitute(arg)), " is null.")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
110 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
111 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
112 if (is.matrix(arg)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
113 stop(deparse(substitute(arg)), " is not scalar.")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
114 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
115 for (c in checks) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
116 if (!check.list[[c]][[1]](arg)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
117 stop(deparse(substitute(arg)), " is not ", check.list[[c]][[2]], ".")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
118 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
119 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
120 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
121 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
122
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
123 # getArg
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
124 getArg <- function(arg, info, argname, can.be.absent = FALSE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
125 if (is.null(arg)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
126 start <- paste("impossible to get argument", argname, "it was not given directly and")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
127 if (!is.matrix(info)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
128 stop(paste(start, "the info matrix was not given"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
129 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
130 if (!(argname %in% colnames(info))) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
131 if (can.be.absent) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
132 return(NULL)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
133 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
134 stop(paste(start, "is not in the info matrix"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
135 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
136 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
137 if (nrow(info) < 1) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
138 stop(paste(start, "the info matrix has no row"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
139 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
140 arg <- info[1, argname]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
141 if (is.na(arg)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
142 stop(paste(start, "it is NA in the info matrix"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
143 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
144 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
145 return(arg)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
146 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
147
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
148 # binarySearch
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
149 binarySearch <- function(a, target, lower = TRUE) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
150 # search the index i in a such that a[i] == target
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
151 # if it doesn't exists and lower, it searches the closer a[i] such that a[i] < target
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
152 # if !lower, it seraches the closer a[i] such that a[i] > target
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
153 # a should be monotone but can be increasing or decreasing
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
154
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
155 # if a is increasing INVARIANT: a[amin] < target < a[amax]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
156 N <- length(a)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
157 if ((a[N] - target) * (a[N] - a[1]) <= 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
158 return(N)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
159 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
160 if ((a[1] - target) * (a[N] - a[1]) >= 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
161 return(1)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
162 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
163 amin <- 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
164 amax <- N
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
165 while (amin + 1 < amax) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
166 amid <- floor((amin + amax) / 2)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
167 if ((a[amid] - target) * (a[amax] - a[amid]) < 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
168 amin <- amid
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
169 } else if ((a[amid] - target) * (a[amax] - a[amid]) > 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
170 amax <- amid
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
171 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
172 # a[amid] == a[amax] or a[amid] == target In both cases, a[amid] ==
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
173 # target
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
174 return(amid)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
175 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
176 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
177 if (xor(lower, a[amin] > a[amax])) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
178 # (lower && a[amin] < a[amax]) || (!lower && a[min] > a[max])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
179 # If increasing and we want the lower, we take amin
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
180 # If decreasing and we want the bigger, we take amin too
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
181 return(amin)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
182 } else {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
183 return(amax)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
184 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
185 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
186
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
187 # Interpol
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
188 Interpol <- function(t, y) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
189 # y: sample
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
190 # t : warping function
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
191
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
192 m <- length(y)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
193 # t <= m-1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
194 # because if t > m-1, y[ti+1] will be NA when we compute g
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
195 valid <- 1 <= t & t <= m - 1 # FIXME it was '<' in Bubble v2
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
196 s <- (1:m)[valid]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
197 ti <- floor(t[s])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
198 tr <- t[s] - ti
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
199 g <- y[ti + 1] - y[ti]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
200 f <- y[ti] + tr * g
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
201 list(f = f, s = s, g = g)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
202 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
203
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
204 # vec2mat
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
205 vec2mat <- function(vec) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
206 return(matrix(vec, nrow = 1, dimnames = list(c(1), names(vec))))
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
207 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
208
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
209 # binarySearch
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
210 binarySearch <- function(a, target, lower = TRUE) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
211 # search the index i in a such that a[i] == target
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
212 # if it doesn't exists and lower, it searches the closer a[i] such that a[i] < target
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
213 # if !lower, it seraches the closer a[i] such that a[i] > target
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
214 # a should be monotone but can be increasing or decreasing
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
215
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
216 # if a is increasing INVARIANT: a[amin] < target < a[amax]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
217 N <- length(a)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
218 if ((a[N] - target) * (a[N] - a[1]) <= 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
219 return(N)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
220 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
221 if ((a[1] - target) * (a[N] - a[1]) >= 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
222 return(1)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
223 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
224 amin <- 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
225 amax <- N
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
226 while (amin + 1 < amax) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
227 amid <- floor((amin + amax) / 2)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
228 if ((a[amid] - target) * (a[amax] - a[amid]) < 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
229 amin <- amid
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
230 } else if ((a[amid] - target) * (a[amax] - a[amid]) > 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
231 amax <- amid
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
232 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
233 # a[amid] == a[amax] or a[amid] == target In both cases, a[amid] ==
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
234 # target
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
235 return(amid)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
236 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
237 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
238 if (xor(lower, a[amin] > a[amax])) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
239 # (lower && a[amin] < a[amax]) || (!lower && a[min] > a[max])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
240 # If increasing and we want the lower, we take amin
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
241 # If decreasing and we want the bigger, we take amin too
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
242 return(amin)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
243 } else {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
244 return(amax)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
245 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
246 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
247
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
248
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
249 # indexInterval
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
250 indexInterval <- function(a, from, to, inclusive = TRUE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
251 # If inclusive and from <= to, we need to take the lower
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
252 # If not inclusive and from > to, we need to take the lower too
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
253 lowerFrom <- xor(inclusive, from > to)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
254 fromIndex <- binarySearch(a, from, lowerFrom)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
255 toIndex <- binarySearch(a, to, !lowerFrom)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
256 return(fromIndex:toIndex)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
257 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
258
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
259
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
260
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
261 ## ==========================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
262 # GroupDelayCorrection
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
263 ## ==========================
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
264 GroupDelayCorrection <- function(Fid_data, Fid_info = NULL, group_delay = NULL) {
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
265 # Data initialisation and checks ----------------------------------------------
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
266
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
267 begin_info <- beginTreatment("GroupDelayCorrection", Fid_data, Fid_info)
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
268 Fid_data <- begin_info[["Signal_data"]]
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
269 dimension_names <- dimnames(Fid_data)
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
270 Fid_info <- begin_info[["Signal_info"]]
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
271 checkArg(group_delay, c("num", "pos0"), can.be.null = TRUE)
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
272 # if Fid_info and group_delay are NULL, getArg will generate an error
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
273
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
274 group_delay <- getArg(group_delay, Fid_info, "GRPDLY", can.be.absent = TRUE)
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
275
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
276 if (is.null(group_delay)) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
277 # See DetermineBrukerDigitalFilter.m in matNMR MATLAB library
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
278 group_delay_matrix <- matrix(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
279 c(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
280 44.75, 46, 46.311, 33.5, 36.5, 36.53, 66.625,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
281 48, 47.87, 59.0833, 50.1667, 50.229, 68.5625, 53.25, 53.289, 60.375,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
282 69.5, 69.551, 69.5313, 72.25, 71.6, 61.0208, 70.1667, 70.184, 70.0156,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
283 72.75, 72.138, 61.3438, 70.5, 70.528, 70.2578, 73, 72.348, 61.5052, 70.6667,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
284 70.7, 70.3789, 72.5, 72.524, 61.5859, 71.3333, NA, 70.4395, 72.25, NA,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
285 61.6263, 71.6667, NA, 70.4697, 72.125, NA, 61.6465, 71.8333, NA, 70.4849,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
286 72.0625, NA, 61.6566, 71.9167, NA, 70.4924, 72.0313, NA
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
287 ),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
288 nrow = 21,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
289 ncol = 3, byrow = TRUE, dimnames = list(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
290 c(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
291 2, 3, 4, 6, 8, 12, 16, 24,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
292 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
293 ),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
294 c(10, 11, 12)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
295 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
296 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
297 decim <- Fid_info[1, "DECIM"]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
298 dspfvs <- Fid_info[1, "DSPFVS"]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
299 if (!(toString(decim) %in% rownames(group_delay_matrix))) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
300 stop(paste("Invalid DECIM", decim, "it should be one of", rownames(group_delay_matrix)))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
301 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
302 if (!(toString(dspfvs) %in% colnames(group_delay_matrix))) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
303 stop(paste("Invalid DSPFVS", dspfvs, "it should be one of", colnames(group_delay_matrix)))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
304 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
305 group_delay <- group_delay_matrix[toString(decim), toString(dspfvs)]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
306 if (is.na(group_delay)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
307 stop(paste("Invalid DECIM", decim, "for DSPFVS", dspfvs))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
308 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
309 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
310 m <- ncol(Fid_data)
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
311 n <- nrow(Fid_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
312
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
313 # GroupDelayCorrection ----------------------------------------------
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
314
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
315 # We do the shifting in the Fourier domain because the shift can be non-integer.
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
316 # That way we automatically have the circular behaviour of the shift and the
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
317 # interpolation if it is non-integer.
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
318
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
319 Spectrum <- t(stats::mvfft(t(Fid_data)))
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
320
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
321 # Spectrum <- FourierTransform(Fid_data, Fid_info)
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
322 p <- ceiling(m / 2)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
323 new_index <- c((p + 1):m, 1:p)
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
324 Spectrum <- Spectrum[, new_index]
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
325 Spectrum <- matrix(data = Spectrum, ncol = m, nrow = n)
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
326
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
327 Omega <- (0:(m - 1)) / m
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
328 i <- complex(real = 0, imaginary = 1)
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
329
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
330 if (n > 1) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
331 Spectrum <- sweep(Spectrum, MARGIN = 2, exp(i * group_delay * 2 * pi * Omega), `*`)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
332 Spectrum <- Spectrum[, new_index]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
333 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
334 Spectrum <- Spectrum * exp(i * group_delay * 2 * pi * Omega)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
335 Spectrum <- Spectrum[new_index]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
336 Spectrum <- matrix(data = Spectrum, ncol = m, nrow = n)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
337 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
338
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
339
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
340 Fid_data <- t(stats::mvfft(t(Spectrum), inverse = TRUE)) / m
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
341 colnames(Fid_data) <- dimension_names[[2]]
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
342 rownames(Fid_data) <- dimension_names[[1]]
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
343
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
344 # Data finalisation ----------------------------------------------
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
345
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
346 return(endTreatment("GroupDelayCorrection", begin_info, Fid_data))
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
347 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
348
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
349 ## ==========================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
350 # SolventSuppression
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
351 ## ==========================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
352 SolventSuppression <- function(Fid_data, lambda.ss = 1e+06, ptw.ss = TRUE,
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
353 plotSolvent = F, returnSolvent = F) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
354 # Data initialisation and checks ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
355
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
356 begin_info <- beginTreatment("SolventSuppression", Fid_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
357 Fid_data <- begin_info[["Signal_data"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
358 checkArg(ptw.ss, c("bool"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
359 checkArg(lambda.ss, c("num", "pos0"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
360
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
361
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
362 # difsm function definition for the smoother -----------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
363
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
364 if (ptw.ss) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
365 # Use of the function in ptw that smoothes signals with a finite difference
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
366 # penalty of order 2
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
367 difsm <- ptw::difsm
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
368 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
369 # Or manual implementation based on sparse matrices for large data series (cf.
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
370 # Eilers, 2003. 'A perfect smoother')
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
371 difsm <- function(y, d = 2, lambda) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
372 m <- length(y)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
373 # Sparse identity matrix m x m
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
374 E <- Matrix::Diagonal(m)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
375 D <- Matrix::diff(E, differences = d)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
376 A <- E + lambda.ss * Matrix::t(D) %*% D
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
377 # base::chol does not take into account that A is sparse and is extremely slow
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
378 C <- Matrix::chol(A)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
379 x <- Matrix::solve(C, Matrix::solve(Matrix::t(C), y))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
380 return(as.numeric(x))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
381 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
382 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
383
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
384 # Solvent Suppression ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
385
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
386 n <- dim(Fid_data)[1]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
387 if (returnSolvent) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
388 SolventRe <- Fid_data
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
389 SolventIm <- Fid_data
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
390 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
391 for (i in 1:n) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
392 FidRe <- Re(Fid_data[i, ])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
393 FidIm <- Im(Fid_data[i, ])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
394 solventRe <- difsm(y = FidRe, lambda = lambda.ss)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
395 solventIm <- difsm(y = FidIm, lambda = lambda.ss)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
396
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
397 if (plotSolvent) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
398 m <- length(FidRe)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
399 graphics::plot(1:m, FidRe, type = "l", col = "red")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
400 graphics::lines(1:m, solventRe, type = "l", col = "blue")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
401 graphics::plot(1:m, FidIm, type = "l", col = "red")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
402 graphics::lines(1:m, solventIm, type = "l", col = "blue")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
403 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
404 FidRe <- FidRe - solventRe
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
405 FidIm <- FidIm - solventIm
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
406 Fid_data[i, ] <- complex(real = FidRe, imaginary = FidIm)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
407 if (returnSolvent) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
408 SolventRe[i, ] <- solventRe
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
409 SolventIm[i, ] <- solventIm
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
410 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
411 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
412
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
413
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
414 # Data finalisation ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
415
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
416 Fid_data <- endTreatment("SolventSuppression", begin_info, Fid_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
417 if (returnSolvent) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
418 return(list(Fid_data = Fid_data, SolventRe = SolventRe, SolventIm = SolventIm))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
419 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
420 return(Fid_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
421 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
422 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
423
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
424
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
425 ## ==========================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
426 # Apodization
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
427 # =============================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
428 Apodization <- function(Fid_data, Fid_info = NULL, DT = NULL,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
429 type.apod = c(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
430 "exp", "cos2", "blockexp", "blockcos2",
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
431 "gauss", "hanning", "hamming"
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
432 ), phase = 0, rectRatio = 1 / 2,
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
433 gaussLB = 1, expLB = 1, plotWindow = F, returnFactor = F) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
434 # Data initialisation and checks ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
435 begin_info <- beginTreatment("Apodization", Fid_data, Fid_info)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
436 Fid_data <- begin_info[["Signal_data"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
437 Fid_info <- begin_info[["Signal_info"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
438 # Data check
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
439 type.apod <- match.arg(type.apod)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
440 checkArg(DT, c("num", "pos"), can.be.null = TRUE)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
441 checkArg(phase, c("num"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
442
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
443 # Apodization ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
444 DT <- getArg(DT, Fid_info, "DT") # Dwell Time
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
445 m <- ncol(Fid_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
446 t <- (1:m) * DT # Time
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
447 rectSize <- ceiling(rectRatio * m)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
448 gaussLB <- (gaussLB / (sqrt(8 * log(2))))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
449 # Define the types of apodization:
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
450 switch(type.apod,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
451 exp = {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
452 # exponential
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
453 Factor <- exp(-expLB * t)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
454 },
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
455 cos2 = {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
456 # cos^2
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
457 c <- cos((1:m) * pi / (2 * m) - phase * pi / 2)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
458 Factor <- c * c
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
459 },
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
460 blockexp = {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
461 # block and exponential
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
462 Factor <- c(rep.int(1, rectSize), rep.int(0, m - rectSize))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
463 # | rectSize | 1 ___________ | \ 0 \____
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
464 Factor[(rectSize + 1):m] <- exp(-expLB * t[1:(m - rectSize)])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
465 },
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
466 blockcos2 = {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
467 # block and cos^2
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
468 Factor <- c(rep.int(1, rectSize), rep.int(0, m - rectSize))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
469 c <- cos((1:(m - rectSize)) * pi / (2 * (m - rectSize)))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
470 Factor[(rectSize + 1):m] <- c * c
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
471 },
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
472 gauss = {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
473 # gaussian
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
474 Factor <- exp(-(gaussLB * t)^2 / 2)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
475 Factor <- Factor / max(Factor)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
476 },
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
477 hanning = {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
478 # Hanning
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
479 Factor <- 0.5 + 0.5 * cos((1:m) * pi / m - phase * pi)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
480 },
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
481 hamming = {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
482 # Hamming
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
483 Factor <- 0.54 + 0.46 * cos((1:m) * pi / m - phase * pi)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
484 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
485 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
486 if (plotWindow) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
487 graphics::plot(1:m, Factor, "l")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
488 # dev.off() # device independent, it is the responsability of the
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
489 # caller to do it
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
490 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
491 # Apply the apodization factor on the spectra
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
492 Fid_data <- sweep(Fid_data, MARGIN = 2, Factor, `*`)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
493
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
494 # Data finalisation ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
495 Fid_data <- endTreatment("Apodization", begin_info, Fid_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
496 if (returnFactor) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
497 return(list(Fid_data = Fid_data, Factor = Factor))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
498 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
499 return(Fid_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
500 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
501 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
502
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
503
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
504 ## ====================================================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
505 # FourierTransform
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
506 ## ====================================================
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
507
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
508
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
509 # fftshift1D2D
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
510 fftshift1D2D <- function(x) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
511 vec <- F
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
512 if (is.vector(x)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
513 x <- vec2mat(x)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
514 vec <- T
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
515 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
516 m <- dim(x)[2]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
517 p <- ceiling(m / 2)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
518 new_index <- c((p + 1):m, 1:p)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
519 y <- x[, new_index, drop = vec]
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
520 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
521
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
522 # FourierTransform
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
523 FourierTransform <- function(Fid_data, Fid_info = NULL, SW_h = NULL, SW = NULL, O1 = NULL, reverse.axis = TRUE) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
524 # Data initialisation and checks ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
525 begin_info <- beginTreatment("FourierTransform", Fid_data, Fid_info)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
526 Fid_data <- begin_info[["Signal_data"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
527 Fid_info <- begin_info[["Signal_info"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
528
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
529 m <- ncol(Fid_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
530 n <- nrow(Fid_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
531
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
532 if (is.null(SW_h)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
533 SW_h <- getArg(SW_h, Fid_info, "SW_h")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
534 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
535
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
536 if (is.null(SW)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
537 SW <- getArg(SW, Fid_info, "SW") # Sweep Width in ppm (semi frequency scale in ppm)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
538 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
539
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
540
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
541 if (is.null(O1)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
542 O1 <- getArg(O1, Fid_info, "O1")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
543 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
544
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
545
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
546 checkArg(reverse.axis, c("bool"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
547
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
548 # Fourier Transformation ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
549 # mvfft does the unnormalized fourier transform (see ?mvfft), so we need divide
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
550 # by m. It does not matter a lot in our case since the spectrum will be
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
551 # normalized.
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
552
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
553 # FT
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
554 RawSpect_data <- fftshift1D2D(t(stats::mvfft(t(Fid_data))))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
555 # recover the frequencies values
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
556 f <- ((0:(m - 1)) - floor(m / 2)) * Fid_info[1, "SW_h"] / (m - 1)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
557
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
558 if (reverse.axis == TRUE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
559 revind <- rev(1:m)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
560 RawSpect_data <- RawSpect_data[, revind] # reverse the spectrum
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
561 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
562
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
563 RawSpect_data <- matrix(RawSpect_data, nrow = n, ncol = m)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
564 colnames(RawSpect_data) <- f
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
565 rownames(RawSpect_data) <- rownames(Fid_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
566
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
567 # PPM conversion ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
568
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
569 # The Sweep Width has to be the same since the column names are the same
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
570
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
571 ppmInterval <- SW / (m - 1)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
572
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
573 O1index <- round((m + 1) / 2 + O1 * (m - 1) / SW_h)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
574
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
575 end <- O1index - m
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
576 start <- O1index - 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
577 ppmScale <- (start:end) * ppmInterval
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
578 RawSpect_data <- matrix(RawSpect_data,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
579 nrow = n, ncol = -(end - start) + 1, dimnames =
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
580 list(rownames(RawSpect_data), ppmScale)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
581 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
582
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
583
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
584 # Data finalisation ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
585 return(endTreatment("FourierTransform", begin_info, RawSpect_data))
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
586 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
587
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
588 ## ====================================================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
589 # InternalReferencing
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
590 ## ====================================================
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
591
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
592 InternalReferencing <- function(Spectrum_data, Fid_info, method = c("max", "thres"),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
593 range = c("nearvalue", "all", "window"), ppm.value = 0,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
594 direction = "left", shiftHandling = c(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
595 "zerofilling", "cut",
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
596 "NAfilling", "circular"
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
597 ), c = 2, pc = 0.02, fromto.RC = NULL,
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
598 ppm.ir = TRUE, rowindex_graph = NULL) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
599 # Data initialisation and checks ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
600
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
601 begin_info <- beginTreatment("InternalReferencing", Spectrum_data, Fid_info)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
602 Spectrum_data <- begin_info[["Signal_data"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
603 Fid_info <- begin_info[["Signal_info"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
604
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
605
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
606 ######## Check input arguments
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
607
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
608 range <- match.arg(range)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
609 shiftHandling <- match.arg(shiftHandling)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
610 method <- match.arg(method)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
611 plots <- NULL
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
612
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
613 checkArg(ppm.ir, c("bool"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
614 checkArg(unlist(fromto.RC), c("num"), can.be.null = TRUE)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
615 checkArg(pc, c("num"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
616 checkArg(ppm.value, c("num"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
617 checkArg(rowindex_graph, "num", can.be.null = TRUE)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
618
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
619 # fromto.RC : if range == "window",
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
620 # fromto.RC defines the spectral window where to search for the peak
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
621 if (!is.null(fromto.RC)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
622 diff <- diff(unlist(fromto.RC))[1:length(diff(unlist(fromto.RC))) %% 2 != 0]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
623 for (i in 1:length(diff)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
624 if (diff[i] >= 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
625 fromto <- c(fromto.RC[[i]][2], fromto.RC[[i]][1])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
626 fromto.RC[[i]] <- fromto
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
627 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
628 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
629 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
630
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
631
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
632 # findTMSPpeak function ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
633 # If method == "tresh", findTMSPpeak will find the position of the first
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
634 # peak (from left or right) which is higher than a predefined threshold
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
635 # and is computed as: c*(cumulated_mean/cumulated_sd)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
636 findTMSPpeak <- function(ft, c = 2, direction = "left") {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
637 ft <- Re(ft) # extraction de la partie réelle
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
638 N <- length(ft)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
639 if (direction == "left") {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
640 newindex <- rev(1:N)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
641 ft <- rev(ft)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
642 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
643 thres <- 99999
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
644 i <- 1000 # Start at point 1000 to find the peak
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
645 vect <- ft[1:i]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
646
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
647 while (vect[i] <= (c * thres)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
648 cumsd <- stats::sd(vect)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
649 cummean <- mean(vect)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
650 thres <- cummean + 3 * cumsd
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
651 i <- i + 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
652 vect <- ft[1:i]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
653 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
654 if (direction == "left") {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
655 v <- newindex[i]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
656 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
657 v <- i
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
658 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
659
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
660 if (is.na(v)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
661 warning("No peak found, need to lower the threshold.")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
662 return(NA)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
663 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
664 # recherche dans les 1% de points suivants du max trouve pour etre au sommet du
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
665 # pic
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
666 d <- which.max(ft[v:(v + N * 0.01)])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
667 new.peak <- v + d - 1 # nouveau pic du TMSP si d > 0
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
668
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
669 if (names(which.max(ft[v:(v + N * 0.01)])) != names(which.max(ft[v:(v + N * 0.03)]))) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
670 # recherche dans les 3% de points suivants du max trouve pour eviter un faux
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
671 # positif
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
672 warning("the TMSP peak might be located further away, increase the threshold to check.")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
673 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
674 return(new.peak)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
675 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
676 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
677
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
678
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
679 # Define the search zone ----------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
680
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
681 n <- nrow(Spectrum_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
682 m <- ncol(Spectrum_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
683
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
684 # The Sweep Width (SW) has to be the same since the column names are the same
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
685 SW <- Fid_info[1, "SW"] # Sweep Width in ppm
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
686 ppmInterval <- SW / (m - 1) # size of a ppm interval
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
687
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
688 # range: How the search zone is defined ("all", "nearvalue" or "window")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
689 if (range == "all") {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
690 Data <- Spectrum_data
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
691 } else { # range = "nearvalue" or "window"
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
692 # Need to define colindex (column indexes) to apply indexInterval on it
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
693
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
694 if (range == "nearvalue") {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
695 fromto.RC <- list(c(-(SW * pc) / 2 + ppm.value, (SW * pc) / 2 + ppm.value)) # automatic fromto values in ppm
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
696 colindex <- as.numeric(colnames(Spectrum_data))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
697 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
698 # range == "window"
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
699 # fromto.RC is already user-defined
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
700 if (ppm.ir == TRUE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
701 colindex <- as.numeric(colnames(Spectrum_data))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
702 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
703 colindex <- 1:m
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
704 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
705 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
706
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
707 # index intervals taking into account the different elements in the list fromto.RC
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
708 Int <- vector("list", length(fromto.RC))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
709 for (i in 1:length(fromto.RC)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
710 Int[[i]] <- indexInterval(colindex,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
711 from = fromto.RC[[i]][1],
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
712 to = fromto.RC[[i]][2], inclusive = TRUE
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
713 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
714 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
715
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
716 # define Data as the cropped spectrum including the index intervals
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
717 # outside the research zone, the intensities are set to the minimal
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
718 # intensity of the research zone
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
719
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
720 if (n > 1) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
721 Data <- apply(Re(Spectrum_data[, unlist(Int)]), 1, function(x) rep(min(x), m))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
722 Data <- t(Data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
723 Data[, unlist(Int)] <- Re(Spectrum_data[, unlist(Int)])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
724 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
725 Data <- rep(min(Re(Spectrum_data)), m)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
726 Data[unlist(Int)] <- Re(Spectrum_data[unlist(Int)])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
727 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
728 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
729
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
730
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
731 # Apply the peak location search method ('thres' or 'max') on spectra
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
732 # -----------------------------------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
733
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
734 if (method == "thres") {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
735 TMSPpeaks <- apply(Data, 1, findTMSPpeak, c = c, direction = direction)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
736 } else { # method == "max
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
737 TMSPpeaks <- apply(Re(Data), 1, which.max)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
738 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
739
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
740
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
741 # Shift spectra according to the TMSPpeaks found --------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
742 # Depends on the shiftHandling
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
743
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
744 # TMSPpeaks is a column index
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
745 maxpeak <- max(TMSPpeaks) # max accross spectra
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
746 minpeak <- min(TMSPpeaks) # min accross spectra
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
747
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
748
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
749 if (shiftHandling %in% c("zerofilling", "NAfilling", "cut")) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
750 fill <- NA
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
751 if (shiftHandling == "zerofilling") {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
752 fill <- 0
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
753 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
754
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
755 start <- maxpeak - 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
756 end <- minpeak - m
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
757
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
758 # ppm values of each interval for the whole spectral range of the spectral matrix
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
759 ppmScale <- (start:end) * ppmInterval
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
760
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
761 # check if ppm.value is in the ppmScale interval
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
762 if (ppm.value < min(ppmScale) | ppm.value > max(ppmScale)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
763 warning(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
764 "ppm.value = ", ppm.value, " is not in the ppm interval [",
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
765 round(min(ppmScale), 2), ",", round(max(ppmScale), 2), "], and is set to its default ppm.value 0"
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
766 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
767 ppm.value <- 0
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
768 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
769
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
770 # if ppm.value != 0, ppmScale is adapted
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
771 ppmScale <- ppmScale + ppm.value
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
772
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
773 # create the spectral matrix with realigned spectra
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
774 Spectrum_data_calib <- matrix(fill,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
775 nrow = n, ncol = -(end - start) + 1,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
776 dimnames = list(rownames(Spectrum_data), ppmScale)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
777 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
778
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
779 # fills in Spectrum_data_calib with shifted spectra
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
780 for (i in 1:n) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
781 shift <- (1 - TMSPpeaks[i]) + start
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
782 Spectrum_data_calib[i, (1 + shift):(m + shift)] <- Spectrum_data[i, ]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
783 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
784
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
785 if (shiftHandling == "cut") {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
786 Spectrum_data_calib <- as.matrix(stats::na.omit(t(Spectrum_data_calib)))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
787 Spectrum_data_calib <- t(Spectrum_data_calib)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
788 base::attr(Spectrum_data_calib, "na.action") <- NULL
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
789 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
790 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
791 # circular
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
792 start <- 1 - maxpeak
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
793 end <- m - maxpeak
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
794
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
795 ppmScale <- (start:end) * ppmInterval
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
796
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
797 # check if ppm.value in is the ppmScale interval
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
798 if (ppm.value < min(ppmScale) | ppm.value > max(ppmScale)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
799 warning(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
800 "ppm.value = ", ppm.value, " is not in the ppm interval [",
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
801 round(min(ppmScale), 2), ",", round(max(ppmScale), 2), "], and is set to its default ppm.value 0"
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
802 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
803 ppm.value <- 0
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
804 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
805
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
806 # if ppm.value != 0, ppmScale is adapted
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
807 ppmScale <- ppmScale + ppm.value
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
808
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
809 # create the spectral matrix with realigned spectra
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
810 Spectrum_data_calib <- matrix(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
811 nrow = n, ncol = end - start + 1,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
812 dimnames = list(rownames(Spectrum_data), ppmScale)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
813 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
814
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
815 # fills in Spectrum_data_calib with shifted spectra
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
816 for (i in 1:n) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
817 shift <- (maxpeak - TMSPpeaks[i])
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
818 Spectrum_data_calib[i, (1 + shift):m] <- Spectrum_data[i, 1:(m - shift)]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
819 if (shift > 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
820 Spectrum_data_calib[i, 1:shift] <- Spectrum_data[i, (m - shift + 1):m]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
821 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
822 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
823 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
824
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
825
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
826
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
827
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
828 # Plot of the spectra (depending on rowindex_graph) ---------------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
829
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
830 ppm <- xstart <- value <- xend <- Legend <- NULL # only for R CMD check
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
831
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
832
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
833 # with the search zone for TMSP and the location of the peaks just found
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
834 if (!is.null(rowindex_graph)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
835 if (range == "window") {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
836 if (ppm.ir == TRUE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
837 fromto <- fromto.RC
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
838 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
839 fromto <- list()
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
840 idcol <- as.numeric(colnames(Spectrum_data))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
841 for (i in 1:length(fromto.RC)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
842 fromto[[i]] <- as.numeric(colnames(Spectrum_data))[fromto.RC[[i]]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
843 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
844 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
845 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
846 fromto <- fromto.RC
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
847 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
848
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
849 # TMSPloc in ppm
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
850 TMSPloc <- as.numeric(colnames(Spectrum_data))[TMSPpeaks[rowindex_graph]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
851
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
852 # num plot per window
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
853 num.stacked <- 6
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
854
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
855 # rectanglar bands of color for the search zone
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
856 rects <- data.frame(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
857 xstart = sapply(fromto, function(x) x[[1]]),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
858 xend = sapply(fromto, function(x) x[[2]]),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
859 Legend = "Peak search zone and location"
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
860 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
861
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
862 # vlines for TMSP peak
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
863 addlines <- data.frame(rowname = rownames(Spectrum_data)[rowindex_graph], TMSPloc)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
864
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
865 nn <- length(rowindex_graph)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
866 i <- 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
867 j <- 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
868 plots <- vector(mode = "list", length = ceiling(nn / num.stacked))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
869
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
870 while (i <= nn) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
871 last <- min(i + num.stacked - 1, nn)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
872
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
873 melted <- reshape2::melt(Re(Spectrum_data[i:last, ]),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
874 varnames = c("rowname", "ppm")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
875 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
876
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
877 plots[[j]] <- ggplot2::ggplot() +
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
878 ggplot2::theme_bw() +
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
879 ggplot2::geom_line(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
880 data = melted,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
881 ggplot2::aes(x = ppm, y = value)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
882 ) +
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
883 ggplot2::geom_rect(data = rects, ggplot2::aes(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
884 xmin = xstart, xmax = xend,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
885 ymin = -Inf, ymax = Inf, fill = Legend
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
886 ), alpha = 0.4) +
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
887 ggplot2::facet_grid(rowname ~ ., scales = "free_y") +
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
888 ggplot2::theme(legend.position = "none") +
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
889 ggplot2::geom_vline(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
890 data = addlines, ggplot2::aes(xintercept = TMSPloc),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
891 color = "red", show.legend = TRUE
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
892 ) +
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
893 ggplot2::ggtitle("Peak search zone and location") +
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
894 ggplot2::theme(legend.position = "top", legend.text = ggplot2::element_text())
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
895
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
896
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
897
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
898 if ((melted[1, "ppm"] - melted[(dim(melted)[1]), "ppm"]) > 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
899 plots[[j]] <- plots[[j]] + ggplot2::scale_x_reverse()
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
900 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
901
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
902 i <- last + 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
903 j <- j + 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
904 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
905
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
906 plots
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
907 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
908
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
909
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
910 # Return the results ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
911 Spectrum_data <- endTreatment("InternalReferencing", begin_info, Spectrum_data_calib)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
912
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
913 if (is.null(plots)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
914 return(Spectrum_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
915 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
916 return(list(Spectrum_data = Spectrum_data, plots = plots))
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
917 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
918 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
919
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
920 ## ====================================================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
921 # ZeroOrderPhaseCorrection
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
922 ## ====================================================
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
923
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
924 ZeroOrderPhaseCorrection <- function(Spectrum_data, type.zopc = c("rms", "manual", "max"),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
925 plot_rms = NULL, returnAngle = FALSE, createWindow = TRUE,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
926 angle = NULL, plot_spectra = FALSE,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
927 ppm.zopc = TRUE, exclude.zopc = list(c(5.1, 4.5))) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
928 # Data initialisation and checks ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
929
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
930 # Entry arguments definition:
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
931 # plot_rms : graph of rms criterion returnAngle : if TRUE, returns avector of
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
932 # optimal angles createWindow : for plot_rms plots angle : If angle is not NULL,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
933 # spectra are rotated according to the angle vector values
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
934 # plot_spectra : if TRUE, plot rotated spectra
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
935
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
936
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
937
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
938 begin_info <- beginTreatment("ZeroOrderPhaseCorrection", Spectrum_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
939 Spectrum_data <- begin_info[["Signal_data"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
940 n <- nrow(Spectrum_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
941 m <- ncol(Spectrum_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
942
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
943 rnames <- rownames(Spectrum_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
944
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
945 # Check input arguments
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
946 type.zopc <- match.arg(type.zopc)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
947 checkArg(ppm.zopc, c("bool"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
948 checkArg(unlist(exclude.zopc), c("num"), can.be.null = TRUE)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
949
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
950
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
951 # type.zopc in c("max", "rms") -----------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
952 if (type.zopc %in% c("max", "rms")) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
953 # angle is found by optimization
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
954
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
955 # rms function to be optimised
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
956 rms <- function(ang, y, meth = c("max", "rms")) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
957 # if (debug_plot) { graphics::abline(v=ang, col='gray60') }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
958 roty <- y * exp(complex(real = 0, imaginary = ang)) # spectrum rotation
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
959 Rey <- Re(roty)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
960
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
961 if (meth == "rms") {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
962 ReyPos <- Rey[Rey >= 0] # select positive intensities
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
963 POSss <- sum((ReyPos)^2, na.rm = TRUE) # SS for positive intensities
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
964 ss <- sum((Rey)^2, na.rm = TRUE) # SS for all intensities
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
965 return(POSss / ss) # criterion : SS for positive values / SS for all intensities
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
966 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
967 maxi <- max(Rey, na.rm = TRUE)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
968 return(maxi)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
969 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
970 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
971
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
972
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
973 # Define the interval where to search for (by defining Data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
974 if (is.null(exclude.zopc)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
975 Data <- Spectrum_data
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
976 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
977 # if ppm.zopc == TRUE, then exclude.zopc is in the colnames values, else, in the column
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
978 # index
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
979 if (ppm.zopc == TRUE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
980 colindex <- as.numeric(colnames(Spectrum_data))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
981 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
982 colindex <- 1:m
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
983 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
984
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
985 # Second check for the argument exclude.zopc
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
986 diff <- diff(unlist(exclude.zopc))[1:length(diff(unlist(exclude.zopc))) %% 2 != 0]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
987 for (i in 1:length(diff)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
988 if (ppm.zopc == TRUE & diff[i] >= 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
989 stop(paste("Invalid region removal because from <= to in ppm.zopc"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
990 } else if (ppm.zopc == FALSE & diff[i] <= 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
991 stop(paste("Invalid region removal because from >= to in column index"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
992 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
993 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
994
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
995
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
996 Int <- vector("list", length(exclude.zopc))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
997 for (i in 1:length(exclude.zopc)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
998 Int[[i]] <- indexInterval(colindex,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
999 from = exclude.zopc[[i]][1],
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1000 to = exclude.zopc[[i]][2], inclusive = TRUE
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1001 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1002 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1003
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1004 vector <- rep(1, m)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1005 vector[unlist(Int)] <- 0
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1006 if (n > 1) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1007 Data <- sweep(Spectrum_data, MARGIN = 2, FUN = "*", vector) # Cropped_Spectrum
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1008 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1009 Data <- Spectrum_data * vector
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1010 } # Cropped_Spectrum
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1011 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1012
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1013
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1014 # angles computation
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1015 Angle <- c()
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1016 for (k in 1:n)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1017 {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1018 # The function is rms is periodic (period 2pi) and it seems that there is a phase
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1019 # x such that rms is unimodal (i.e. decreasing then increasing) on the interval
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1020 # [x; x+2pi]. However, if we do the optimization for example on [x-pi; x+pi],
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1021 # instead of being decreasing then increasing, it might be increasing then
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1022 # decreasing in which case optimize, thinking it is a valley will have to choose
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1023 # between the left or the right of this hill and if it chooses wrong, it will end
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1024 # up at like x-pi while the minimum is close to x+pi.
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1025
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1026 # Supposing that rms is unimodal, the classical 1D unimodal optimization will
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1027 # work in either [-pi;pi] or [0;2pi] (this is not easy to be convinced by that I
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1028 # agree) and we can check which one it is simply by the following trick
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1029
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1030 f0 <- rms(0, Data[k, ], meth = type.zopc)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1031 fpi <- rms(pi, Data[k, ], meth = type.zopc)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1032 if (f0 < fpi) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1033 interval <- c(-pi, pi)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1034 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1035 interval <- c(0, 2 * pi)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1036 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1037
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1038 # graphs of rms criteria
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1039 debug_plot <- F # rms should not plot anything now, only when called by optimize
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1040 if (!is.null(plot_rms) && rnames[k] %in% plot_rms) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1041 x <- seq(min(interval), max(interval), length.out = 100)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1042 y <- rep(1, 100)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1043 for (K in (1:100)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1044 y[K] <- rms(x[K], Data[k, ], meth = type.zopc)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1045 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1046 if (createWindow == TRUE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1047 grDevices::dev.new(noRStudioGD = FALSE)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1048 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1049 graphics::plot(x, y,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1050 main = paste(
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1051 "Criterion maximization \n",
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1052 rownames(Data)[k]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1053 ), ylim = c(0, 1.1),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1054 ylab = "positiveness criterion", xlab = "angle "
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1055 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1056 debug_plot <- T
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1057 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1058
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1059 # Best angle
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1060 best <- stats::optimize(rms,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1061 interval = interval, maximum = TRUE,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1062 y = Data[k, ], meth = type.zopc
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1063 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1064 ang <- best[["maximum"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1065
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1066
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1067 if (debug_plot) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1068 graphics::abline(v = ang, col = "black")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1069 graphics::text(x = (ang + 0.1 * ang), y = (y[ang] - 0.1 * y[ang]), labels = round(ang, 3))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1070 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1071
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1072 # Spectrum rotation
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1073 Spectrum_data[k, ] <- Spectrum_data[k, ] * exp(complex(real = 0, imaginary = ang))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1074 Angle <- c(Angle, ang)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1075 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1076 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1077 # type.zopc is "manual" -------------------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1078 # if Angle is already specified and no optimisation is needed
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1079 Angle <- angle
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1080
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1081 if (!is.vector(angle)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1082 stop("angle is not a vector")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1083 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1084
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1085 if (!is.numeric(angle)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1086 stop("angle is not a numeric")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1087 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1088
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1089 if (length(angle) != n) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1090 stop(paste("angle has length", length(angle), "and there are", n, "spectra to rotate."))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1091 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1092 for (k in 1:n) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1093 Spectrum_data[k, ] <- Spectrum_data[k, ] * exp(complex(real = 0, imaginary = -angle[k]))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1094 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1095 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1096
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1097
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1098 # Draw spectra
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1099 if (plot_spectra == TRUE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1100 nn <- ceiling(n / 4)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1101 i <- 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1102 for (k in 1:nn) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1103 if (createWindow == TRUE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1104 grDevices::dev.new(noRStudioGD = FALSE)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1105 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1106 graphics::par(mfrow = c(4, 2))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1107 while (i <= n) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1108 last <- min(i + 4 - 1, n)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1109 graphics::plot(Re(Spectrum_data[i, ]),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1110 type = "l", ylab = "intensity",
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1111 xlab = "Index", main = paste0(rownames(Spectrum_data)[i], " - Real part")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1112 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1113 graphics::plot(Im(Spectrum_data[i, ]),
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1114 type = "l", ylab = "intensity",
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1115 xlab = "Index", main = paste0(rownames(Spectrum_data)[i], " - Imaginary part")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1116 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1117 i <- i + 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1118 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1119 i <- last + 1
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1120 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1121 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1122
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1123
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1124 # Data finalisation ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1125
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1126 Spectrum_data <- endTreatment("ZeroOrderPhaseCorrection", begin_info, Spectrum_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1127 if (returnAngle) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1128 return(list(Spectrum_data = Spectrum_data, Angle = Angle))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1129 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1130 return(Spectrum_data)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1131 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1132 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1133
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1134
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1135 ## ====================================================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1136 # Baseline Correction
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1137 ## ====================================================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1138 BaselineCorrection <- function(Spectrum_data, ptw.bc = TRUE, maxIter = 42,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1139 lambda.bc = 1e+07, p.bc = 0.05, eps = 1e-08,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1140 ppm.bc = TRUE, exclude.bc = list(c(5.1, 4.5)),
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1141 returnBaseline = F) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1142 # Data initialisation ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1143 begin_info <- beginTreatment("BaselineCorrection", Spectrum_data, force.real = T)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1144 Spectrum_data <- begin_info[["Signal_data"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1145 p <- p.bc
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1146 lambda <- lambda.bc
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1147 n <- dim(Spectrum_data)[1]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1148 m <- dim(Spectrum_data)[2]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1149
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1150
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1151 # Data check
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1152 checkArg(ptw.bc, c("bool"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1153 checkArg(maxIter, c("int", "pos"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1154 checkArg(lambda, c("num", "pos0"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1155 checkArg(p.bc, c("num", "pos0"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1156 checkArg(eps, c("num", "pos0"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1157 checkArg(returnBaseline, c("bool"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1158 checkArg(ppm.bc, c("bool"))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1159 checkArg(unlist(exclude.bc), c("num"), can.be.null = TRUE)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1160
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1161 # Define the interval where to search for (by defining Data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1162 if (is.null(exclude.bc)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1163 exclude_index <- NULL
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1164 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1165 # if ppm.bc == TRUE, then exclude.bc is in the colnames values, else, in the column
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1166 # index
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1167 if (ppm.bc == TRUE) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1168 colindex <- as.numeric(colnames(Spectrum_data))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1169 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1170 colindex <- 1:m
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1171 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1172
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1173 Int <- vector("list", length(exclude.bc))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1174 for (i in 1:length(exclude.bc)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1175 Int[[i]] <- indexInterval(colindex,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1176 from = exclude.bc[[i]][1],
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1177 to = exclude.bc[[i]][2], inclusive = TRUE
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1178 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1179 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1180 exclude_index <- unlist(Int)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1181 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1182
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1183 # Baseline Correction implementation definition ----------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1184
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1185 # 2 Ways: either use the function asysm from the ptw package or by
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1186 # built-in functions
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1187 if (ptw.bc) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1188 asysm <- ptw::asysm
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1189 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1190 difsmw <- function(y, lambda, w, d) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1191 # Weighted smoothing with a finite difference penalty cf Eilers, 2003.
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1192 # (A perfect smoother)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1193 # y: signal to be smoothed
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1194 # lambda: smoothing parameter
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1195 # w: weights (use0 zeros for missing values)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1196 # d: order of differences in penalty (generally 2)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1197 m <- length(y)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1198 W <- Matrix::Diagonal(x = w)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1199 E <- Matrix::Diagonal(m)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1200 D <- Matrix::diff(E, differences = d)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1201 C <- Matrix::chol(W + lambda * t(D) %*% D)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1202 x <- Matrix::solve(C, Matrix::solve(t(C), w * y))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1203 return(as.numeric(x))
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1204 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1205 asysm <- function(y, lambda, p, eps, exclude_index) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1206 # Baseline estimation with asymmetric least squares
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1207 # y: signal
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1208 # lambda: smoothing parameter (generally 1e5 to 1e8)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1209 # p: asymmetry parameter (generally 0.001)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1210 # d: order of differences in penalty (generally 2)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1211 # eps: 1e-8 in ptw package
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1212 m <- length(y)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1213 w <- rep(1, m)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1214 i <- 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1215 repeat {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1216 z <- difsmw(y, lambda, w, d = 2)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1217 w0 <- w
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1218 p_vect <- rep((1 - p), m) # if y <= z + eps
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1219 p_vect[y > z + eps | y < 0] <- p # if y > z + eps | y < 0
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1220 if (!is.null(exclude_index)) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1221 p_vect[exclude_index] <- 0 # if exclude area
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1222 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1223
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1224 w <- p_vect
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1225 # w <- p * (y > z + eps | y < 0) + (1 - p) * (y <= z + eps)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1226
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1227 if (sum(abs(w - w0)) == 0) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1228 break
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1229 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1230 i <- i + 1
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1231 if (i > maxIter) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1232 warning("cannot find Baseline estimation in asysm")
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1233 break
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1234 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1235 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1236 return(z)
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1237 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1238 }
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1239
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1240 # Baseline estimation ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1241 Baseline <- matrix(NA, nrow = nrow(Spectrum_data), ncol = ncol(Spectrum_data))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1242
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1243 # for (k in 1:n) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1244 # Baseline[k, ] <- asysm(y = Spectrum_data[k, ], lambda = lambda, p = p, eps = eps)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1245
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1246 if (ptw.bc) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1247 Baseline <- apply(Spectrum_data, 1, asysm,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1248 lambda = lambda, p = p,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1249 eps = eps
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1250 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1251 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1252 Baseline <- apply(Spectrum_data, 1, asysm,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1253 lambda = lambda, p = p,
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1254 eps = eps, exclude_index = exclude_index
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1255 )
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1256 }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1257
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1258
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1259 Spectrum_data <- Spectrum_data - t(Baseline)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1260 # }
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1261
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1262 # Data finalisation ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1263 Spectrum_data <- endTreatment("BaselineCorrection", begin_info, Spectrum_data) # FIXME create removeImaginary filter ??
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1264
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1265 if (returnBaseline) {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1266 return(list(Spectrum_data = Spectrum_data, Baseline = Baseline))
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1267 } else {
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1268 return(Spectrum_data)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1269 }
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1270 }
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1271
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1272
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1273
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1274 ## ====================================================
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1275 # NegativeValuesZeroing
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1276 ## ====================================================
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1277
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1278 NegativeValuesZeroing <- function(Spectrum_data) {
7
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1279 # Data initialisation and checks ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1280 begin_info <- beginTreatment("NegativeValuesZeroing", Spectrum_data, force.real = T)
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1281 Spectrum_data <- begin_info[["Signal_data"]]
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1282
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1283 # NegativeValuesZeroing ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1284 Spectrum_data[Spectrum_data < 0] <- 0
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1285
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1286 # Data finalisation ----------------------------------------------
122df1bf0a8c planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 3d328007dd7716848ec2eeb6c2a472f27eeb2995
workflow4metabolomics
parents: 5
diff changeset
1287 return(endTreatment("NegativeValuesZeroing", begin_info, Spectrum_data))
5
5b06800f3449 planemo upload for repository https://github.com/workflow4metabolomics/nmr_preprocessing commit 46606bb57d9c0dee051a4dcc01e6e2a3bdce435e
lecorguille
parents:
diff changeset
1288 }