Mercurial > repos > recetox > waveica
comparison waveica_wrapper.R @ 6:cf3f2f964d80 draft
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit d82e7dad96bebe9424ac7bf490e2786d82c3681a
| author | recetox |
|---|---|
| date | Thu, 29 Sep 2022 15:20:18 +0000 |
| parents | 8b55efc7d117 |
| children | 385b1221be44 |
comparison
equal
deleted
inserted
replaced
| 5:fba892edb9d9 | 6:cf3f2f964d80 |
|---|---|
| 1 waveica <- function(data, | 1 read_file <- function(file, metadata, ft_ext, mt_ext) { |
| 2 data <- read_data(file, ft_ext) | |
| 3 | |
| 4 if (!is.na(metadata)) { | |
| 5 mt_data <- read_data(metadata, mt_ext) | |
| 6 data <- merge(mt_data, data, by = "sampleName") | |
| 7 } | |
| 8 | |
| 9 return(data) | |
| 10 } | |
| 11 | |
| 12 read_data <- function(file, ext) { | |
| 13 if (ext == "csv") { | |
| 14 data <- read.csv(file, header = TRUE) | |
| 15 } else if (ext == "tsv") { | |
| 16 data <- read.csv(file, header = TRUE, sep = "\t") | |
| 17 } else { | |
| 18 data <- arrow::read_parquet(file) | |
| 19 } | |
| 20 | |
| 21 return(data) | |
| 22 } | |
| 23 | |
| 24 waveica <- function(file, | |
| 25 metadata = NA, | |
| 26 ext, | |
| 2 wavelet_filter, | 27 wavelet_filter, |
| 3 wavelet_length, | 28 wavelet_length, |
| 4 k, | 29 k, |
| 5 t, | 30 t, |
| 6 t2, | 31 t2, |
| 7 alpha, | 32 alpha, |
| 8 exclude_blanks) { | 33 exclude_blanks) { |
| 9 | 34 |
| 10 # get input from the Galaxy, preprocess data | 35 # get input from the Galaxy, preprocess data |
| 11 data <- read.csv(data, header = TRUE) | 36 ext <- strsplit(x = ext, split = "\\,")[[1]] |
| 37 | |
| 38 ft_ext <- ext[1] | |
| 39 mt_ext <- ext[2] | |
| 40 | |
| 41 data <- read_file(file, metadata, ft_ext, mt_ext) | |
| 12 | 42 |
| 13 required_columns <- c("sampleName", "class", "sampleType", "injectionOrder", "batch") | 43 required_columns <- c("sampleName", "class", "sampleType", "injectionOrder", "batch") |
| 14 verify_input_dataframe(data, required_columns) | 44 verify_input_dataframe(data, required_columns) |
| 15 | 45 |
| 16 data <- sort_by_injection_order(data) | 46 data <- sort_by_injection_order(data) |
| 41 } | 71 } |
| 42 | 72 |
| 43 return(data) | 73 return(data) |
| 44 } | 74 } |
| 45 | 75 |
| 46 | 76 waveica_singlebatch <- function(file, |
| 47 waveica_singlebatch <- function(data, | 77 metadata = NA, |
| 78 ext, | |
| 48 wavelet_filter, | 79 wavelet_filter, |
| 49 wavelet_length, | 80 wavelet_length, |
| 50 k, | 81 k, |
| 51 alpha, | 82 alpha, |
| 52 cutoff, | 83 cutoff, |
| 53 exclude_blanks) { | 84 exclude_blanks) { |
| 54 | 85 |
| 55 # get input from the Galaxy, preprocess data | 86 # get input from the Galaxy, preprocess data |
| 56 data <- read.csv(data, header = TRUE) | 87 ext <- strsplit(x = ext, split = "\\,")[[1]] |
| 88 | |
| 89 ft_ext <- ext[1] | |
| 90 mt_ext <- ext[2] | |
| 91 | |
| 92 data <- read_file(file, metadata, ft_ext, mt_ext) | |
| 57 | 93 |
| 58 required_columns <- c("sampleName", "class", "sampleType", "injectionOrder") | 94 required_columns <- c("sampleName", "class", "sampleType", "injectionOrder") |
| 59 optional_columns <- c("batch") | 95 optional_columns <- c("batch") |
| 60 verify_input_dataframe(data, required_columns) | 96 verify_input_dataframe(data, required_columns) |
| 61 | 97 |
| 145 } else { | 181 } else { |
| 146 return(data) | 182 return(data) |
| 147 } | 183 } |
| 148 } | 184 } |
| 149 | 185 |
| 150 | 186 store_data <- function(data, output, ext) { |
| 151 # Store output of WaveICA in a tsv file | 187 if (ext == "csv") { |
| 152 store_data <- function(data, output) { | 188 write.csv(data, file = output, row.names = FALSE, quote = FALSE) |
| 153 write.table(data, file = output, sep = "\t", row.names = FALSE, quote = FALSE) | 189 } else if (ext == "tsv") { |
| 190 write.table(data, file = output, sep = "\t", row.names = FALSE, quote = FALSE) | |
| 191 } else { | |
| 192 arrow::write_parquet(data, sink = output) | |
| 193 } | |
| 154 cat("Normalization has been completed.\n") | 194 cat("Normalization has been completed.\n") |
| 155 } | 195 } |
