changeset 1:2bcfd5b450bb draft

"planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit c52cdb1ab3c4e65ce3b55e29739f16abb8bfd6eb"
author recetox
date Wed, 28 Jul 2021 11:58:20 +0000
parents 2461d20911c9
children d08deef1eb44
files test-data/features-test.csv waveica.xml waveica_wrapper.R
diffstat 3 files changed, 14 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/test-data/features-test.csv	Thu Mar 18 15:53:38 2021 +0000
+++ b/test-data/features-test.csv	Wed Jul 28 11:58:20 2021 +0000
@@ -1,4 +1,4 @@
-sample_name,class,sampleType,injectionOrder,batch,M85T34,M86T41,M86T518,M86T539
+sampleName,class,sampleType,injectionOrder,batch,M85T34,M86T41,M86T518,M86T539
 VT_160120_002,sample,sample,1,1,228520.06430737,35646729.21543971,2386896.97966461,1026645.83653468
 VT_160120_004,sample,sample,2,1,90217.384387202,35735702.457215995,2456290.69621518,1089246.46040563
 VT_160120_006,sample,sample,3,1,235656.75288383896,37021134.452711605,8873450.40260241,837856.449608585
--- a/waveica.xml	Thu Mar 18 15:53:38 2021 +0000
+++ b/waveica.xml	Wed Jul 28 11:58:20 2021 +0000
@@ -1,4 +1,4 @@
-<tool id="waveica" name="WaveICA" version="0.1.0+galaxy0" python_template_version="3.5">
+<tool id="waveica" name="WaveICA" version="0.1.0+galaxy1" python_template_version="3.5">
 
     <description>removal of batch effects for untargeted metabolomics data</description>
     
--- a/waveica_wrapper.R	Thu Mar 18 15:53:38 2021 +0000
+++ b/waveica_wrapper.R	Wed Jul 28 11:58:20 2021 +0000
@@ -10,8 +10,12 @@
 ) {
 
     # get input from the Galaxy, preprocess data
-    data <- read.csv(data, header = TRUE, row.names = "sample_name")
-    data <- preprocess_data(data)
+    data <- read.csv(data, header = TRUE, row.names = "sampleName")
+
+    # sort data by injection order
+    data <- data[order(data$injectionOrder, decreasing = FALSE), ]
+
+    data <- enumerate_groups(data)
 
     # remove blanks from dataset
     if (exclude_blanks) {
@@ -39,14 +43,12 @@
 }
 
 
-# Sort data, set numerical values for groups
-preprocess_data <- function(data) {
-    # sort data by injection order
-    data <- data[order(data$injectionOrder, decreasing = FALSE), ]
+# Match group labels with [blank/sample/qc] and enumerate them
+enumerate_groups <- function(data) {
 
-    data$class[data$class == "blank"] <- 0
-    data$class[data$class == "sample"] <- 1
-    data$class[data$class == "QC"] <- 2
+    data$sampleType[grepl("blank", tolower(data$sampleType))] <- 0
+    data$sampleType[grepl("sample", tolower(data$sampleType))] <- 1
+    data$sampleType[grepl("qc", tolower(data$sampleType))] <- 2
 
     return(data)
 }
@@ -68,7 +70,7 @@
 # Exclude blanks from a dataframe
 exclude_group <- function(data) {
     row_idx_to_exclude <- which(data$class %in% 0)
-    if (length(row_idx_to_exclude) > 1) {
+    if (length(row_idx_to_exclude) > 0) {
         data_without_blanks <- data[-c(row_idx_to_exclude), ]
         msg <- paste("Blank samples have been excluded from the dataframe.\n")
         cat(msg)