# HG changeset patch # User lecorguille # Date 1479810123 18000 # Node ID d61f6ceef5d673c85d267208c2619cbc10ce7274 # Parent 58679e85745f22db7d8b5990095839565e5d3a37 planemo upload for repository https://github.com/workflow4metabolomics/nmr_bucketing commit a0155b12acca444f72ff761fcce740e71be28a6d-dirty diff -r 58679e85745f -r d61f6ceef5d6 NmrBucketing_script.R --- a/NmrBucketing_script.R Fri Aug 12 05:47:27 2016 -0400 +++ b/NmrBucketing_script.R Tue Nov 22 05:22:03 2016 -0500 @@ -5,11 +5,15 @@ # Starting date : 20-10-2014 # # Version 1 : 18-12-2014 # # Version 2 : 07-01-2015 # +# Version 3 : 24-10-2016 # # # -# Input files : files in included in user-defined directory # +# Input files : modification on october 2016 # +# - Raw bruker files included in user-defined fileName # +# - Preprocessed files (alignment, ...) included in p x n dataframe # ################################################################################################ -NmrBucketing <- function(directory,leftBorder = 10.0,rightBorder = 0.5,bucketSize = 0.04,exclusionZones,exclusionZonesBorders=NULL, - graph=c("None","Overlay","One_per_individual"),nomFichier,savLog.txtC = NULL) +NmrBucketing <- function(fileType,fileName,leftBorder = 10.0,rightBorder = 0.5,bucketSize = 0.04,exclusionZones, + exclusionZonesBorders=NULL,graph=c("None","Overlay","One_per_individual"), + nomFichier,savLog.txtC = NULL) { ## Option ##--------------- @@ -131,13 +135,7 @@ return(f.bucket) } - - # File names - FileNames <- list.files(directory) - n <- length(FileNames) - # Exclusion zones -## if (exclusionZones == "yes") if (!is.null(exclusionZonesBorders)) { exclusion.zone.m <- matrix(exclusionZonesBorders[[1]],nrow=1) @@ -145,40 +143,78 @@ for (k in 2:length(exclusionZonesBorders)) exclusion.zone.m <- rbind(exclusion.zone.m,exclusionZonesBorders[[k]]) } - - # Reading and Bucketing - directory <- paste(directory,"/",sep="") - - i <- 1 - while (i <= n) + + ## CHANGES + ## Inputs from zip or library (raw files) + if (fileType == "zip") { - # File reading - SampleDir <- paste(directory,FileNames[i],"/1/",sep="") - setwd(SampleDir) - DataDir <- "pdata/1" - - rawSpectrum <- NmRBrucker_read(DataDir,rawSpectrum) - - orderedSpectrum <- rawSpectrum[order(rawSpectrum[,1],decreasing=T), ] + # File names + FileNames <- list.files(fileName) + n <- length(FileNames) - # Removal of chemical shifts > leftBorder or < rightBorder boundaries - truncatedSpectrum <- orderedSpectrum[orderedSpectrum[,1] < leftBorder & orderedSpectrum[,1] > rightBorder, ] - truncatedSpectrum[,1] <- round(truncatedSpectrum[,1],3) - - # Bucketing - spectrum.bucket <- NmrBrucker_bucket(truncatedSpectrum) + # Reading and Bucketing + fileName <- paste(fileName,"/",sep="") + + i <- 1 + while (i <= n) + { + # File reading + SampleDir <- paste(fileName,FileNames[i],"/1/",sep="") + setwd(SampleDir) + DataDir <- "pdata/1" + + rawSpectrum <- NmRBrucker_read(DataDir,rawSpectrum) + + orderedSpectrum <- rawSpectrum[order(rawSpectrum[,1],decreasing=T), ] + + # Removal of chemical shifts > leftBorder or < rightBorder boundaries + truncatedSpectrum <- orderedSpectrum[orderedSpectrum[,1] < leftBorder & orderedSpectrum[,1] > rightBorder, ] + truncatedSpectrum[,1] <- round(truncatedSpectrum[,1],3) + + # Bucketing + spectrum.bucket <- NmrBrucker_bucket(truncatedSpectrum) + + # spectrum Concatenation + if (i == 1) + bucketedSpectra <- spectrum.bucket + if (i > 1) + bucketedSpectra <- cbind(bucketedSpectra,spectrum.bucket[,2]) + colnames(bucketedSpectra)[i+1] <- FileNames[i] + + # Next sample + rm(spectrum.bucket) + i <- i +1 + } + # Directory + cd(fileName) + } + + ## Inputs from dataset (preprocessed files) + if (fileType=="tsv") + { + FileNames <- colnames(fileName) + n <- length(FileNames) - # spectrum Concatenation - if (i == 1) - bucketedSpectra <- spectrum.bucket - if (i > 1) - bucketedSpectra <- cbind(bucketedSpectra,spectrum.bucket[,2]) - colnames(bucketedSpectra)[i+1] <- FileNames[i] - - # Next sample - rm(spectrum.bucket) - i <- i +1 + for (i in 1:ncol(fileName)) + { + orderedSpectrum <- cbind(as.numeric(rownames(fileName)),fileName[,i]) + orderedSpectrum <- orderedSpectrum[order(orderedSpectrum[,1],decreasing=T), ] + + truncatedSpectrum <- orderedSpectrum[orderedSpectrum[,1] < leftBorder & orderedSpectrum[,1] > rightBorder, ] + truncatedSpectrum[,1] <- round(truncatedSpectrum[,1],3) + + # Bucketing + spectrum.bucket <- NmrBrucker_bucket(truncatedSpectrum) + + # spectrum Concatenation + if (i == 1) + bucketedSpectra <- spectrum.bucket + if (i > 1) + bucketedSpectra <- cbind(bucketedSpectra,spectrum.bucket[,2]) + colnames(bucketedSpectra)[i+1] <- colnames(fileName)[i] + } } + identifiants <- gsub("([- , * { } | \\[ ])","_",colnames(bucketedSpectra)[-1]) colnames(bucketedSpectra) <- c(colnames(bucketedSpectra)[1],identifiants) @@ -195,9 +231,6 @@ rownames(variableMetadata) <- rownames(bucketedSpectra) colnames(variableMetadata) <- "VariableOrder" - # Directory - cd(directory) - # Bucketed spectra graph if (graph != "None") { diff -r 58679e85745f -r d61f6ceef5d6 NmrBucketing_wrapper.R --- a/NmrBucketing_wrapper.R Fri Aug 12 05:47:27 2016 -0400 +++ b/NmrBucketing_wrapper.R Tue Nov 22 05:22:03 2016 -0500 @@ -77,18 +77,23 @@ ## Parameters Loading ##------------------- # Inputs -if (!is.null(argLs[["zipfile"]])){ - zipfile= argLs[["zipfile"]] - directory=unzip(zipfile, list=F) - directory=paste(getwd(),strsplit(directory[1],"/")[[1]][2],sep="/") -} else if (!is.null(argLs[["library"]])){ - directory=argLs[["library"]] - if(!file.exists(directory)){ - error_message=paste("Cannot access the directory :",directory,".Please verify if the directory exists or not.") - print(error_message) - stop(error_message) - } -} +if (!is.null(argLs[["zipfile"]])){ + fileType="zip" + zipfile= argLs[["zipfile"]] + directory=unzip(zipfile, list=F) + directory=paste(getwd(),strsplit(directory[1],"/")[[1]][2],sep="/") +} else if (!is.null(argLs[["library"]])){ + fileType="zip" + directory=argLs[["library"]] + if(!file.exists(directory)){ + error_message=paste("Cannot access the directory :",directory,".Please verify if the directory exists or not.") + print(error_message) + stop(error_message) + } +} else if (!is.null(argLs[["tsvfile"]])){ + fileType="tsv" + directory <- read.table(argLs[["tsvfile"]],check.names=FALSE,header=TRUE,sep="\t") +} leftBorder <- argLs[["left_border"]] rightBorder <- argLs[["right_border"]] @@ -111,7 +116,7 @@ dataMatrixOut <- argLs[["dataMatrixOut"]] sampleMetadataOut <- argLs[["sampleOut"]] variableMetadataOut <- argLs[["variableOut"]] -log <- argLs[["logOut"]] +logFile <- argLs[["logOut"]] ## Checking arguments ##------------------- @@ -123,7 +128,9 @@ ## Computation ##------------ -outputs <- NmrBucketing(directory,leftBorder,rightBorder,bucketSize,exclusionZones,exclusionZonesBorders,graphique,nomGraphe,log) +outputs <- NmrBucketing(fileType=fileType, fileName=directory, leftBorder=leftBorder, rightBorder=rightBorder, bucketSize=bucketSize, + exclusionZones=exclusionZones, exclusionZonesBorders=exclusionZonesBorders, graph=graphique, nomFichier=nomGraphe, + savLog.txtC=logFile) data_bucket <- outputs[[1]] data_sample <- outputs[[2]] data_variable <- outputs[[3]] diff -r 58679e85745f -r d61f6ceef5d6 NmrBucketing_xml.xml --- a/NmrBucketing_xml.xml Fri Aug 12 05:47:27 2016 -0400 +++ b/NmrBucketing_xml.xml Tue Nov 22 05:22:03 2016 -0500 @@ -1,9 +1,8 @@ - + Bucketing and integration of NMR Bruker raw data - R r-batch r-pracma @@ -13,12 +12,14 @@ - Rscript $__tool_directory__/NmrBucketing_wrapper.R + Rscript '$__tool_directory__/NmrBucketing_wrapper.R' #if $inputs.input == "lib": - library $__app__.config.user_library_import_dir/$__user_email__/$inputs.library + library '$__app__.config.user_library_import_dir/$__user_email__/$inputs.library' + #elif $inputs.input == "tsv_file": + tsvfile '$inputs.tsv_file' #elif $inputs.input == "zip_file": - zipfile $inputs.zip_file + zipfile '$inputs.zip_file' #end if @@ -44,21 +45,25 @@ ## Outputs logOut log.log - dataMatrixOut $dataMatrixOut - sampleOut $sampleOut - variableOut $variableOut - graphOut $graphOut; cat log.log + dataMatrixOut '$dataMatrixOut' + sampleOut '$sampleOut' + variableOut '$variableOut' + graphOut '$graphOut'; cat log.log + + + + @@ -103,7 +108,6 @@ graphType != "None" - @@ -147,12 +151,11 @@ **Upstream tools** -========================= ================= ======= ========= -Name output file format parameter -========================= ================= ======= ========= -NA NA zip NA -========================= ================= ======= ========= - +========================= ============================ ======= +Name output file format +========================= ============================ ======= +NMRAlignment NMR_Alignment_alignedSpectra tsv +========================= ============================ ======= **Downstream tools** @@ -178,13 +181,16 @@ +===========================+============+ | 1 : Choose your inputs | zip | +---------------------------+------------+ +| 1 : Choose your inputs | tsv | ++---------------------------+------------+ **Choose your inputs** -You have two methods for your inputs: +You have three methods for your inputs: -| Zip file (recommended): You can put a zip file containing your inputs: myinputs.zip (containing all your conditions as sub-directories). +| Zip file (recommended): You can put a zip file containing your inputs as raw Bruker files: myinputs.zip (containing all your conditions as sub-directories). | library folder: You must specify the name of your "library" (folder) created within your space project (for example: /projet/externe/institut/login/galaxylibrary/yourlibrary). Your library must contain all your conditions as sub-directories. +| Tsv file: You can put a tsv file containing your inputs as preprocessed spectra: myinputs.tsv (containing all your conditions in columns and chemical shifts in rows). .. image:: ./static/images/Mth_Architecture_Repertoire_Bruker.png :width: 800 @@ -275,6 +281,10 @@ Changelog/News -------------- +**Version 1.0.3 - 24/10/2016** + +- ENHANCEMENT: add possibility of bucketing processed files (upstream tools) + **Version 1.0.2 - 12/08/2016** - ENHANCEMENT: x-axis customization: add chemical shift labels diff -r 58679e85745f -r d61f6ceef5d6 README.rst --- a/README.rst Fri Aug 12 05:47:27 2016 -0400 +++ b/README.rst Tue Nov 22 05:22:03 2016 -0500 @@ -2,6 +2,10 @@ Changelog/News -------------- +**Version 1.0.3 - 24/10/2016** + +- ENHANCEMENT: add possibility of bucketing processed files (upstream tools) + **Version 1.0.2 - 12/08/2016** - ENHANCEMENT: x-axis customization: add chemical shift labels