0
|
1 #!/usr/bin/Rscript --vanilla --slave --no-site-file
|
|
2
|
|
3 ################################################################################################
|
|
4 # WRAPPER FOR filter_script.R (GENERIC FILTERS) #
|
|
5 # #
|
|
6 # Author: Melanie PETERA based on Marion LANDI's filters' wrapper #
|
|
7 # User: Galaxy #
|
|
8 # Original data: used with filter_script.R #
|
|
9 # Starting date: 04-09-2014 #
|
|
10 # V-1: Restriction of old filter wrapper to Filter according to factors #
|
|
11 # V-1.1: Modification to allow the choice of meta-data table for filtering #
|
|
12 # V-2: Addition of numerical filter #
|
3
|
13 # V-2.5: -h option + additional information in stdout #
|
0
|
14 # #
|
|
15 # #
|
|
16 # Input files: dataMatrix.txt ; sampleMetadata.txt ; variableMetadata.txt #
|
|
17 # Output files: dataMatrix.txt ; sampleMetadata.txt ; variableMetadata.txt #
|
|
18 # #
|
|
19 ################################################################################################
|
|
20
|
|
21
|
|
22 library(batch) #necessary for parseCommandArgs function
|
3
|
23
|
|
24 # Constants
|
|
25 argv <- commandArgs(trailingOnly = FALSE)
|
|
26 script.path <- sub("--file=","",argv[grep("--file=",argv)])
|
|
27 prog.name <- basename(script.path)
|
|
28
|
|
29 # Help
|
|
30 if (length(grep('-h', argv)) >0) {
|
|
31 cat("Usage:", prog.name,
|
|
32 "dataMatrix_in myDataMatrix.tsv",
|
|
33 "sampleMetadata_in mySampleMetadata.tsv",
|
|
34 "variableMetadata_in myVariableMetadata.tsv",
|
|
35 "...",
|
|
36 "\n")
|
|
37 quit(status = 0)
|
|
38 }
|
|
39
|
0
|
40 args = parseCommandArgs(evaluate=FALSE) #interpretation of arguments given in command line as an R list of objects
|
|
41
|
|
42 source_local <- function(...){
|
|
43 argv <- commandArgs(trailingOnly = FALSE)
|
|
44 base_dir <- dirname(substring(argv[grep("--file=", argv)], 8))
|
|
45 for(i in 1:length(list(...))){source(paste(base_dir, list(...)[[i]], sep="/"))}
|
|
46 }
|
|
47 #Import the different functions
|
|
48 source_local("filter_script.R","RcheckLibrary.R","miniTools.R")
|
|
49
|
|
50
|
|
51 if(length(args) < 8){ stop("NOT enough argument !!!") }
|
|
52
|
3
|
53
|
|
54 cat('\nJob starting time:\n',format(Sys.time(), "%a %d %b %Y %X"),
|
|
55 '\n\n--------------------------------------------------------------------',
|
|
56 '\nParameters used in "Generic Filter":\n\n')
|
|
57 print(args)
|
|
58 cat('--------------------------------------------------------------------\n\n')
|
|
59
|
|
60
|
0
|
61 list_num <- NULL
|
|
62 if(!is.null(args$parm_col)){
|
|
63 for( i in which(names(args)=="num_file") ){
|
|
64 if(args[[i+2]] %in% c("lower","upper")){
|
|
65 list_num <- c(list_num, list(c(args[[i]], args[[i+1]], args[[i+2]],args[[i+3]])))
|
|
66 }
|
|
67 if(args[[i+2]] %in% c("between","extremity")){
|
|
68 list_num <- c(list_num, list(c(args[[i]], args[[i+1]], args[[i+2]],args[[i+3]],args[[i+4]])))
|
|
69 }
|
|
70 }
|
|
71 }
|
|
72
|
|
73 list_fact <- NULL
|
|
74 if(!is.null(args$factor_col)){
|
|
75 for( i in which(names(args)=="qual_file") ){
|
|
76 list_fact <- c(list_fact, list(c(args[[i+1]], args[[i+2]], args[[i]])))
|
|
77 }
|
|
78 }
|
|
79
|
|
80 filters(args$dataMatrix_in, args$sampleMetadata_in, args$variableMetadata_in,
|
|
81 args$Numeric, list_num, args$Factors, list_fact,
|
|
82 args$dataMatrix_out, args$sampleMetadata_out, args$variableMetadata_out)
|
|
83
|
|
84 #filters(ion.file.in, meta.samp.file.in, meta.ion.file.in,
|
|
85 # NUM, ls.num, FACT, ls.fact,
|
|
86 # ion.file.out, meta.samp.file.out, meta.ion.file.out)
|
|
87
|
3
|
88
|
|
89 cat('\n--------------------------------------------------------------------',
|
|
90 '\nInformation about R (version, Operating System, attached or loaded packages):\n\n')
|
|
91 sessionInfo()
|
|
92 cat('--------------------------------------------------------------------\n',
|
|
93 '\nJob ending time:\n',format(Sys.time(), "%a %d %b %Y %X"))
|
|
94
|
|
95
|
0
|
96 #delete the parameters to avoid the passage to the next tool in .RData image
|
|
97 rm(args)
|