annotate waveica_wrapper.R @ 7:385b1221be44 draft default tip

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
author recetox
date Fri, 23 Jun 2023 07:27:12 +0000
parents cf3f2f964d80
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
1 read_file <- function(file, metadata, ft_ext, mt_ext, transpose) {
6
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
2 data <- read_data(file, ft_ext)
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
3
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
4 if (transpose) {
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
5 col_names <- c("sampleName", data[[1]])
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
6 t_data <- data[-1]
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
7 t_data <- t(t_data)
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
8 data <- data.frame(rownames(t_data), t_data)
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
9 colnames(data) <- col_names
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
10 }
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
11
6
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
12 if (!is.na(metadata)) {
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
13 mt_data <- read_data(metadata, mt_ext)
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
14 data <- merge(mt_data, data, by = "sampleName")
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
15 }
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
16
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
17 return(data)
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
18 }
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
19
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
20 read_data <- function(file, ext) {
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
21 if (ext == "csv") {
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
22 data <- read.csv(file, header = TRUE)
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
23 } else if (ext == "tsv") {
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
24 data <- read.csv(file, header = TRUE, sep = "\t")
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
25 } else {
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
26 data <- arrow::read_parquet(file)
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
27 }
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
28
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
29 return(data)
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
30 }
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
31
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
32 waveica <- function(file,
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
33 metadata = NA,
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
34 ext,
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
35 transpose = FALSE,
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
36 wavelet_filter,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
37 wavelet_length,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
38 k,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
39 t,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
40 t2,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
41 alpha,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
42 exclude_blanks) {
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
43 # get input from the Galaxy, preprocess data
6
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
44 ext <- strsplit(x = ext, split = "\\,")[[1]]
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
45
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
46 ft_ext <- ext[1]
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
47 mt_ext <- ext[2]
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
48
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
49 data <- read_file(file, metadata, ft_ext, mt_ext, transpose)
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
50
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
51 required_columns <- c(
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
52 "sampleName", "class", "sampleType",
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
53 "injectionOrder", "batch"
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
54 )
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
55 data <- verify_input_dataframe(data, required_columns)
1
2bcfd5b450bb "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit c52cdb1ab3c4e65ce3b55e29739f16abb8bfd6eb"
recetox
parents: 0
diff changeset
56
4
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
57 data <- sort_by_injection_order(data)
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
58
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
59 # separate data into features, batch and group
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
60 feature_columns <- colnames(data)[!colnames(data) %in% required_columns]
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
61 features <- data[, feature_columns]
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
62 group <- enumerate_groups(as.character(data$sampleType))
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
63 batch <- data$batch
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
64
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
65 # run WaveICA
4
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
66 features <- recetox.waveica::waveica(
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
67 data = features,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
68 wf = get_wf(wavelet_filter, wavelet_length),
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
69 batch = batch,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
70 group = group,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
71 K = k,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
72 t = t,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
73 t2 = t2,
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
74 alpha = alpha
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
75 )
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
76
4
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
77 data[, feature_columns] <- features
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
78
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
79 # remove blanks from dataset
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
80 if (exclude_blanks) {
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
81 data <- exclude_group(data, group)
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
82 }
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
83
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
84 return(data)
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
85 }
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
86
6
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
87 waveica_singlebatch <- function(file,
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
88 metadata = NA,
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
89 ext,
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
90 transpose = FALSE,
4
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
91 wavelet_filter,
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
92 wavelet_length,
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
93 k,
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
94 alpha,
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
95 cutoff,
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
96 exclude_blanks) {
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
97 # get input from the Galaxy, preprocess data
6
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
98 ext <- strsplit(x = ext, split = "\\,")[[1]]
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
99
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
100 ft_ext <- ext[1]
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
101 mt_ext <- ext[2]
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
102
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
103 data <- read_file(file, metadata, ft_ext, mt_ext, transpose)
4
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
104
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
105 required_columns <- c("sampleName", "class", "sampleType", "injectionOrder")
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
106 optional_columns <- c("batch")
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
107
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
108 data <- verify_input_dataframe(data, required_columns)
4
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
109
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
110 data <- sort_by_injection_order(data)
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
111
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
112 feature_columns <- colnames(data)[!colnames(data) %in%
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
113 c(required_columns, optional_columns)]
4
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
114 features <- data[, feature_columns]
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
115 injection_order <- data$injectionOrder
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
116
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
117 # run WaveICA
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
118 features <- recetox.waveica::waveica_nonbatchwise(
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
119 data = features,
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
120 wf = get_wf(wavelet_filter, wavelet_length),
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
121 injection_order = injection_order,
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
122 K = k,
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
123 alpha = alpha,
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
124 cutoff = cutoff
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
125 )
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
126
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
127 data[, feature_columns] <- features
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
128 group <- enumerate_groups(as.character(data$sampleType))
4
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
129 # remove blanks from dataset
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
130 if (exclude_blanks) {
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
131 data <- exclude_group(data, group)
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
132 }
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
133
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
134 return(data)
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
135 }
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
136
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
137
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
138 sort_by_injection_order <- function(data) {
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
139 if ("batch" %in% colnames(data)) {
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
140 data <- data[order(data[, "batch"],
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
141 data[, "injectionOrder"],
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
142 decreasing = FALSE
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
143 ), ]
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
144 } else {
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
145 data <- data[order(data[, "injectionOrder"],
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
146 decreasing = FALSE
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
147 ), ]
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
148 }
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
149 return(data)
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
150 }
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
151
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
152
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
153 verify_input_dataframe <- function(data, required_columns) {
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
154 if (anyNA(data)) {
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
155 stop("Error: dataframe cannot contain NULL values!
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
156 Make sure that your dataframe does not contain empty cells")
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
157 } else if (!all(required_columns %in% colnames(data))) {
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
158 stop(
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
159 "Error: missing metadata!
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
160 Make sure that the following columns are present in your dataframe: ",
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
161 paste(required_columns, collapse = ", ")
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
162 )
4
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
163 }
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
164
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
165 data <- verify_column_types(data, required_columns)
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
166
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
167 return(data)
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
168 }
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
169
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
170 verify_column_types <- function(data, required_columns) {
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
171 # Specify the column names and their expected types
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
172 column_types <- list(
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
173 "sampleName" = c("character", "factor"),
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
174 "class" = c("character", "factor"),
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
175 "sampleType" = c("character", "factor"),
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
176 "injectionOrder" = "integer",
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
177 "batch" = "integer"
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
178 )
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
179
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
180 column_types <- column_types[required_columns]
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
181
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
182 for (col_name in names(data)) {
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
183 actual_type <- class(data[[col_name]])
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
184 if (col_name %in% names(column_types)) {
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
185 expected_types <- column_types[[col_name]]
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
186
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
187 if (!actual_type %in% expected_types) {
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
188 stop(
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
189 "Column ", col_name, " is of type ", actual_type,
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
190 " but expected type is ",
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
191 paste(expected_types, collapse = " or "), "\n"
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
192 )
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
193 }
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
194 } else {
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
195 if (actual_type != "numeric") {
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
196 data[[col_name]] <- as.numeric(as.character(data[[col_name]]))
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
197 }
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
198 }
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
199 }
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
200 return(data)
4
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
201 }
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
202
8b55efc7d117 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit aa8206a01efc1813f2586584782f28a73a17fe86"
recetox
parents: 2
diff changeset
203
1
2bcfd5b450bb "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit c52cdb1ab3c4e65ce3b55e29739f16abb8bfd6eb"
recetox
parents: 0
diff changeset
204 # Match group labels with [blank/sample/qc] and enumerate them
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
205 enumerate_groups <- function(group) {
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
206 group[grepl("blank", tolower(group))] <- 0
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
207 group[grepl("sample", tolower(group))] <- 1
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
208 group[grepl("qc", tolower(group))] <- 2
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
209
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
210 return(group)
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
211 }
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
212
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
213
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
214 # Create appropriate input for R wavelets function
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
215 get_wf <- function(wavelet_filter, wavelet_length) {
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
216 wf <- paste(wavelet_filter, wavelet_length, sep = "")
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
217
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
218 # exception to the wavelet function
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
219 if (wf == "d2") {
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
220 wf <- "haar"
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
221 }
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
222
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
223 return(wf)
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
224 }
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
225
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
226
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
227 # Exclude blanks from a dataframe
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
228 exclude_group <- function(data, group) {
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
229 row_idx_to_exclude <- which(group %in% 0)
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
230 if (length(row_idx_to_exclude) > 0) {
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
231 data_without_blanks <- data[-c(row_idx_to_exclude), ]
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
232 cat("Blank samples have been excluded from the dataframe.\n")
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
233 return(data_without_blanks)
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
234 } else {
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
235 return(data)
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
236 }
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
237 }
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
238
6
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
239 store_data <- function(data, output, ext) {
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
240 if (ext == "csv") {
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
241 write.csv(data, file = output, row.names = FALSE, quote = FALSE)
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
242 } else if (ext == "tsv") {
7
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
243 write.table(data,
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
244 file = output, sep = "\t",
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
245 row.names = FALSE, quote = FALSE
385b1221be44 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 77bea6c84c5a932fa203723d4d5fea6147f06505
recetox
parents: 6
diff changeset
246 )
6
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
247 } else {
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
248 arrow::write_parquet(data, sink = output)
cf3f2f964d80 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
recetox
parents: 4
diff changeset
249 }
2
d08deef1eb44 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
recetox
parents: 1
diff changeset
250 cat("Normalization has been completed.\n")
0
2461d20911c9 "planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit 91376ea7a6736351b0cc086ca1bc6c553fdcda97"
recetox
parents:
diff changeset
251 }