Mercurial > repos > melpetera > generic_filter
view GalFilter/filter_wrap.R @ 3:cfd7c4aa5c26 draft default tip
Uploaded
author | melpetera |
---|---|
date | Fri, 03 Jan 2020 04:09:28 -0500 |
parents | 2c9afaf849ad |
children |
line wrap: on
line source
#!/usr/bin/Rscript --vanilla --slave --no-site-file ################################################################################################ # WRAPPER FOR filter_script.R (GENERIC FILTERS) # # # # Author: Melanie PETERA based on Marion LANDI's filters' wrapper # # User: Galaxy # # Original data: used with filter_script.R # # Starting date: 04-09-2014 # # V-1: Restriction of old filter wrapper to Filter according to factors # # V-1.1: Modification to allow the choice of meta-data table for filtering # # V-2: Addition of numerical filter # # V-2.5: -h option + additional information in stdout # # # # # # Input files: dataMatrix.txt ; sampleMetadata.txt ; variableMetadata.txt # # Output files: dataMatrix.txt ; sampleMetadata.txt ; variableMetadata.txt # # # ################################################################################################ library(batch) #necessary for parseCommandArgs function # Constants argv <- commandArgs(trailingOnly = FALSE) script.path <- sub("--file=","",argv[grep("--file=",argv)]) prog.name <- basename(script.path) # Help if (length(grep('-h', argv)) >0) { cat("Usage:", prog.name, "dataMatrix_in myDataMatrix.tsv", "sampleMetadata_in mySampleMetadata.tsv", "variableMetadata_in myVariableMetadata.tsv", "...", "\n") quit(status = 0) } args = parseCommandArgs(evaluate=FALSE) #interpretation of arguments given in command line as an R list of objects source_local <- function(...){ argv <- commandArgs(trailingOnly = FALSE) base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)) for(i in 1:length(list(...))){source(paste(base_dir, list(...)[[i]], sep="/"))} } #Import the different functions source_local("filter_script.R","RcheckLibrary.R","miniTools.R") if(length(args) < 8){ stop("NOT enough argument !!!") } cat('\nJob starting time:\n',format(Sys.time(), "%a %d %b %Y %X"), '\n\n--------------------------------------------------------------------', '\nParameters used in "Generic Filter":\n\n') print(args) cat('--------------------------------------------------------------------\n\n') list_num <- NULL if(!is.null(args$parm_col)){ for( i in which(names(args)=="num_file") ){ if(args[[i+2]] %in% c("lower","upper")){ list_num <- c(list_num, list(c(args[[i]], args[[i+1]], args[[i+2]],args[[i+3]]))) } if(args[[i+2]] %in% c("between","extremity")){ list_num <- c(list_num, list(c(args[[i]], args[[i+1]], args[[i+2]],args[[i+3]],args[[i+4]]))) } } } list_fact <- NULL if(!is.null(args$factor_col)){ for( i in which(names(args)=="qual_file") ){ list_fact <- c(list_fact, list(c(args[[i+1]], args[[i+2]], args[[i]]))) } } filters(args$dataMatrix_in, args$sampleMetadata_in, args$variableMetadata_in, args$Numeric, list_num, args$Factors, list_fact, args$dataMatrix_out, args$sampleMetadata_out, args$variableMetadata_out) #filters(ion.file.in, meta.samp.file.in, meta.ion.file.in, # NUM, ls.num, FACT, ls.fact, # ion.file.out, meta.samp.file.out, meta.ion.file.out) cat('\n--------------------------------------------------------------------', '\nInformation about R (version, Operating System, attached or loaded packages):\n\n') sessionInfo() cat('--------------------------------------------------------------------\n', '\nJob ending time:\n',format(Sys.time(), "%a %d %b %Y %X")) #delete the parameters to avoid the passage to the next tool in .RData image rm(args)