diff ImportDataFromMatrix.R @ 8:7f74250a083d draft

planemo upload
author sblanck
date Wed, 10 May 2017 04:12:26 -0400
parents 93451f832736
children 25b828010ca9
line wrap: on
line diff
--- a/ImportDataFromMatrix.R	Wed Apr 12 03:47:05 2017 -0400
+++ b/ImportDataFromMatrix.R	Wed May 10 04:12:26 2017 -0400
@@ -1,38 +1,78 @@
-library(Biobase)
-library(GEOquery)
-library(GEOmetadb)
-library(limma)
-library(jsonlite)
-library(affy)
-library(dplyr)
-library(affyPLM)
+#!/usr/bin/env Rscript
+# setup R error handling to go to stderr
+options( show.error.messages=F, error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
+
+# we need that to not crash galaxy with an UTF8 error on German LC settings.
+loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")
+
+library("optparse")
+
+##### Read options
+option_list=list(
+		make_option("--input",type="character",default="NULL",help="rdata object containing eset object"),
+		make_option("--conditions",type="character",default=NULL,help="Text file summarizing conditions of the experiment (required)"),
+		make_option("--normalization",type="character",default=NULL,help="log2 transformation"),
+		make_option("--annotations",type="character",default="NULL",help="rdata object containing eset object"),
+		make_option("--rdataoutput",type="character",default="NULL",help="output rdata object containing eset object"),
+		make_option("--htmloutput",type="character",default=NULL,help="Output html report"),
+		make_option("--htmloutputpath",type="character",default="NULL",help="Path of output html report"),
+		make_option("--htmltemplate",type="character",default="NULL",help="html template)")
+
+
+);
+
+
+opt_parser = OptionParser(option_list=option_list);
+opt = parse_args(opt_parser);
 
-cargs<-commandArgs()
-cargs<-cargs[(which(cargs=="--args")+1):length(cargs)]
-nbargs=length(cargs)
+if(is.null(opt$input)){
+	print_help(opt_parser)
+	stop("input required.", call.=FALSE)
+}
+
+if(is.null(opt$conditions)){
+	print_help(opt_parser)
+	stop("conditions input required.", call.=FALSE)
+}
+
+
+#loading libraries
+suppressPackageStartupMessages(require(GEOquery))
 
-dataFile=cargs[[nbargs-9]]
-normalization=cargs[[nbargs-8]]
-conditionsFile=cargs[[nbargs-7]]
-annotation=cargs[[nbargs-6]]
-result_export_eset=cargs[[nbargs-5]]
-result=cargs[[nbargs-4]]
-result.path=cargs[[nbargs-3]]
-result.template=cargs[[nbargs-2]]
+suppressPackageStartupMessages(require(Biobase))
+suppressPackageStartupMessages(require(GEOquery))
+suppressPackageStartupMessages(require(GEOmetadb))
+suppressPackageStartupMessages(require(limma))
+suppressPackageStartupMessages(require(jsonlite))
+suppressPackageStartupMessages(require(affy))
+suppressPackageStartupMessages(require(dplyr))
+suppressPackageStartupMessages(require(affyPLM))
+
+dataFile=opt$input
+normalization=opt$normalization
+conditionsFile=opt$conditions
+annotation=opt$annotations
+result_export_eset=opt$rdataoutput
+result=opt$htmloutput
+result.path=opt$htmloutputpath
+result.template=opt$htmltemplate
 
 dir.create(result.path, showWarnings = TRUE, recursive = FALSE)
 
-data=as.matrix(read.table(file = dataFile))
+data=as.matrix(read.table(file = dataFile,row.names=1,header=TRUE))
 conditions=read.table(file=conditionsFile,sep = "\t",row.names=1)
 htmlfile=readChar(result.template, file.info(result.template)$size)
 
 colnames(conditions)=c("source_name_ch1","description")
 phenodata<-new("AnnotatedDataFrame",data=conditions)
 
+head(data)
+conditions
+
 eset=ExpressionSet(assayData=data,phenoData=phenodata,annotation=annotation)
 
 if (normalization == "quantile") {
-	eset <- normalize.ExpressionSet.quantiles(eset, transfn="log")
+	eset <- normalize.ExpressionSet.quantiles(eset, transfn="log2")
 } else if (normalization == "log2") {
 	exprs(eset) = log2(exprs(eset)) 
 } 
@@ -49,7 +89,7 @@
 nblines=length(colnames(data))%/%3 + as.numeric((length(colnames(data))%%3)!=0) 
 png(plotMAnorm,width=800,height =300*nblines )
 par(mfrow=c(nblines,3))
-#for (i in 1:length(colnames(data))){
+##for (i in 1:length(colnames(data))){
 	MAplot(eset)
 #}