Mercurial > repos > marie-tremblay-metatoul > nmr_bucketing
diff NmrBucketing_wrapper.R @ 0:a99a6026c972 draft
planemo upload for repository https://github.com/workflow4metabolomics/nmr_bucketing commit 44fd4fc42930d2e9ad7b77cf575f2231547de15c
author | marie-tremblay-metatoul |
---|---|
date | Fri, 08 Apr 2016 10:56:14 -0400 |
parents | |
children | d61f6ceef5d6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/NmrBucketing_wrapper.R Fri Apr 08 10:56:14 2016 -0400 @@ -0,0 +1,156 @@ +#!/usr/local/public/bin/Rscript --vanilla --slave --no-site-file + +## 070115_NmrBucketing2galaxy_v1.R +## Marie Tremblay-Franco +## MetaboHUB: The French Infrastructure for Metabolomics and Fluxomics +## www.metabohub.fr/en +## marie.tremblay-franco@toulouse.inra.fr + +runExampleL <- FALSE + +if(runExampleL) { +##------------------------------ +## Example of arguments +##------------------------------ +argLs <- list(StudyDir = "Tlse_BPASourisCerveau", + upper = "10.0", + lower = "0.50", + bucket.width = "0.01", + exclusion = "TRUE", + exclusion.zone = list(c(6.5,4.5)), + graph="Overlay") + +argLs <- c(argLs, + list(dataMatrixOut = paste(directory,"_NmrBucketing_dataMatrix.tsv",sep=""), + sampleMetadataOut = paste(directory,"_NmrBucketing_sampleMetadata.tsv",sep=""), + variableMetadataOut = paste(directory,"_NmrBucketing_variableMetadata.tsv",sep=""), + graphOut = paste(directory,"_NmrBucketing_graph.pdf",sep=""), + logOut = paste(directory,"_NmrBucketing_log.txt",sep=""))) +} + +##------------------------------ +## Options +##------------------------------ +strAsFacL <- options()$stringsAsFactors +options(stringsAsFactors = FALSE) + + +##------------------------------ +## Libraries laoding +##------------------------------ +# For parseCommandArgs function +library(batch) +# For cumtrapz function +library(pracma) + +# R script call +source_local <- function(fname) +{ + argv <- commandArgs(trailingOnly = FALSE) + base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)) + source(paste(base_dir, fname, sep="/")) +} +#Import the different functions +source_local("NmrBucketing_script.R") + +##------------------------------ +## Errors ????????????????????? +##------------------------------ + + +##------------------------------ +## Constants +##------------------------------ +topEnvC <- environment() +flagC <- "\n" + + +##------------------------------ +## Script +##------------------------------ +if(!runExampleL) + argLs <- parseCommandArgs(evaluate=FALSE) + +## sink(argLs[["logOut"]]) + + +## 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) + } +} + +leftBorder <- argLs[["left_border"]] +rightBorder <- argLs[["right_border"]] +bucketSize <- argLs[["bucket_width"]] +exclusionZones <- argLs[["zone_exclusion_choices.choice"]] + +exclusionZonesBorders <- NULL +if (!is.null(argLs$zone_exclusion_left)) +{ + for(i in which(names(argLs)=="zone_exclusion_left")) + { + exclusionZonesBorders <- c(exclusionZonesBorders,list(c(argLs[[i]],argLs[[i+1]]))) + } +} + +graphique <- argLs[["graphType"]] + + # Outputs +nomGraphe <- argLs[["graphOut"]] +dataMatrixOut <- argLs[["dataMatrixOut"]] +sampleMetadataOut <- argLs[["sampleOut"]] +variableMetadataOut <- argLs[["variableOut"]] +log <- argLs[["logOut"]] + +## Checking arguments +##------------------- +error.stock <- "\n" + +if(length(error.stock) > 1) + stop(error.stock) + + +## Computation +##------------ +outputs <- NmrBucketing(directory,leftBorder,rightBorder,bucketSize,exclusionZones,exclusionZonesBorders,graphique,nomGraphe,log) +data_bucket <- outputs[[1]] +data_sample <- outputs[[2]] +data_variable <- outputs[[3]] + +## Saving +##------- + # Data +data_bucket <- cbind(rownames(data_bucket),data_bucket) +colnames(data_bucket) <- c("Bucket",colnames(data_bucket)[-1]) +write.table(data_bucket,file=argLs$dataMatrixOut,quote=FALSE,row.names=FALSE,sep="\t") + # Sample +data_sample <- cbind(rownames(data_sample),data_sample) +colnames(data_sample) <- c("Sample",colnames(data_sample)[-1]) +write.table(data_sample,file=argLs$sampleOut,quote=FALSE,row.names=FALSE,sep="\t") + # Variable +data_variable <- cbind(rownames(data_variable),data_variable) +colnames(data_variable) <- c("Bucket",colnames(data_variable)[-1]) +write.table(data_variable,file=argLs$variableOut,quote=FALSE,row.names=FALSE,sep="\t") + + +## Ending +##--------------------- + +cat("\nEnd of 'NMR bucketing' Galaxy module call: ", as.character(Sys.time()), sep = "") + +## sink(NULL) + +options(stringsAsFactors = strAsFacL) + +rm(list = ls())