Mercurial > repos > sblanck > mpagenomics
view preprocess.R @ 4:3fcbb8030fcc draft
"planemo upload for repository https://github.com/sblanck/MPAgenomics4Galaxy/tree/master/mpagenomics_wrappers commit 40eda5ea3551e8b3bae32d0a8f405fe90ef22646-dirty"
author | sblanck |
---|---|
date | Mon, 12 Apr 2021 14:47:09 +0000 |
parents | 4d539083cf7f |
children |
line wrap: on
line source
#!/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("--summary",type="character",default=NULL, dest="summary"), make_option("--dataSetName",type="character",default=NULL, dest="dataSetName"), make_option("--new_file_path",type="character",default=NULL, dest="new_file_path"), make_option("--inputcdffull_name",type="character",default=NULL, dest="inputcdffull_name"), make_option("--inputufl_name",type="character",default=NULL, dest="inputufl_name"), make_option("--inputugp_name",type="character",default=NULL, dest="inputugp_name"), make_option("--inputacs_name",type="character",default=NULL, dest="inputacs_name"), make_option("--inputcdffull",type="character",default=NULL, dest="inputcdffull"), make_option("--inputufl",type="character",default=NULL, dest="inputufl"), make_option("--inputugp",type="character",default=NULL, dest="inputugp"), make_option("--inputacs",type="character",default=NULL, dest="inputacs"), make_option("--tumorcsv",type="character",default=NULL, dest="tumorcsv"), make_option("--settingsType",type="character",default=NULL, dest="settingsType"), make_option("--outputgraph",type="character",default=NULL, dest="outputgraph"), make_option("--zipfigures",type="character",default=NULL, dest="zipfigures"), make_option("--zipresults",type="character",default=NULL, dest="zipresults"), make_option("--outputlog",type="character",default=NULL, dest="outputlog"), make_option("--log",type="character",default=NULL, dest="log"), make_option("--user_id",type="character",default=NULL, dest="user_id"), make_option("--input",type="character",default=NULL, dest="input") ); opt_parser = OptionParser(option_list=option_list); opt = parse_args(opt_parser); if(is.null(opt$input)){ print_help(opt_parser) stop("input required.", call.=FALSE) } #loading libraries summary=opt$summary dataSetName=opt$dataSetName newFilePath=opt$new_file_path inputCDFName=opt$inputcdffull_name inputUFLName=opt$inputufl_name inputUGPName=opt$inputugp_name inputACSName=opt$inputacs_name inputCDF=opt$inputcdffull inputUFL=opt$inputufl inputUGP=opt$inputugp inputACS=opt$inputacs tumorcsv=opt$tumorcsv settingsType=opt$settingsType outputGraph=opt$outputgraph zipfigures=opt$zipfigures zipresults=opt$zipresults outputlog=opt$outputlog log=opt$log userId=opt$user_id destinationPath=file.path(newFilePath, userId, dataSetName) mpagenomicsDir = file.path(newFilePath,"mpagenomics",userId) dataDir = file.path(newFilePath, userId) chipDir = file.path(newFilePath,"mpagenomics",userId,"annotationData","chipTypes") createArchitecture=TRUE if (dir.exists(chipDir)) system(paste0("rm -r ", chipDir)) if (!dir.exists(mpagenomicsDir)) dir.create(mpagenomicsDir, showWarnings = TRUE, recursive = TRUE) if (!dir.exists(dataDir)) dir.create(dataDir, showWarnings = TRUE, recursive = TRUE) listInput <- trimws( unlist( strsplit(trimws(opt$input), ",") ) ) if(length(listInput)<2){ stop("To few .CEL files selected : At least 2 .CEL files are required", call.=FALSE) } celList=vector() celFileNameList=vector() for (i in 1:length(listInput)) { inputFileInfo <- unlist( strsplit( listInput[i], ';' ) ) celList=c(celList,inputFileInfo[1]) celFileNameList=c(celFileNameList,inputFileInfo[2]) } for (i in 1:length(celFileNameList)) { source = celList[i] destination=file.path(dataDir,celFileNameList[i]) file.copy(source, destination) } split=unlist(strsplit(inputCDFName,",",fixed=TRUE)) tag=NULL if (length(split) != 0) { chipType=split[1] tagExt=split[2] tag=unlist(strsplit(tagExt,".",fixed=TRUE))[1] } else { chipType=split[1] } if(!file.exists(file.path(dataDir,inputCDFName))) file.symlink(inputCDF,file.path(dataDir,inputCDFName)) if(!file.exists(file.path(dataDir,inputACSName))) file.symlink(inputACS,file.path(dataDir,inputACSName)) if(!file.exists(file.path(dataDir,inputUFLName))) file.symlink(inputUFL,file.path(dataDir,inputUFLName)) if(!file.exists(file.path(dataDir,inputUGPName))) file.symlink(inputUGP,file.path(dataDir,inputUGPName)) fig_dir = file.path("mpagenomics", userId, "figures", dataSetName, "signal") abs_fig_dir = file.path(newFilePath, fig_dir) chip=chipType dataset=dataSetName workdir=mpagenomicsDir celPath=dataDir chipPath=dataDir tumor=tumorcsv outputgraph=type.convert(outputGraph) library(MPAgenomics) library(R.utils) library(aroma.affymetrix) setwd(workdir) if (outputlog){ sinklog <- file(log, open = "wt") sink(sinklog ,type = "output") sink(sinklog, type = "message") } if (settingsType=="standard") { signalPreProcess(dataSetName=dataset, chipType=chip, dataSetPath=celPath,chipFilesPath=chipPath, path=workdir,createArchitecture=createArchitecture, savePlot=outputgraph, tags=tag) } else { signalPreProcess(dataSetName=dataset, chipType=chip, dataSetPath=celPath,chipFilesPath=chipPath, normalTumorArray=tumor, path=workdir,createArchitecture=createArchitecture, savePlot=outputgraph, tags=tag) } setwd(mpagenomicsDir) library(zip) zipr(zipresults,files=".") setwd(abs_fig_dir) #abs_fig_dir files2zip <- dir(abs_fig_dir) zipr(zipfigures, files = files2zip) summarydf=data.frame(celFileNameList,rep(dataSetName,length(celFileNameList)),rep(chipType,length(celFileNameList))) write.table(summarydf,file=summary,quote=FALSE,row.names=FALSE,col.names=FALSE,sep="\t") if (dir.exists(mpagenomicsDir)) { system(paste0("rm -r ", mpagenomicsDir)) dir.create(mpagenomicsDir, showWarnings = TRUE, recursive = TRUE) } if (dir.exists(dataDir)) { system(paste0("rm -r ", dataDir)) dir.create(dataDir, showWarnings = TRUE, recursive = TRUE) } if (outputlog){ sink(type="output") sink(type="message") close(sinklog) }