Mercurial > repos > sblanck > smagexp
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) #}