diff circleCor_wrapper.R @ 0:d0b77b926863 draft

"planemo upload for repository https://gitlab.com/bilille/galaxy-viscorvar commit 85dac6b13a9adce48b47b2b8cb28d2319ae9c1ca-dirty"
author ppericard
date Tue, 23 Jun 2020 19:57:35 -0400
parents
children e93350dc99f1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/circleCor_wrapper.R	Tue Jun 23 19:57:35 2020 -0400
@@ -0,0 +1,131 @@
+#!/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")
+
+## Get parameters ##
+suppressPackageStartupMessages(require(argparse))
+
+parser <- ArgumentParser(description='Run the circleCor function')
+
+parser$add_argument('--input_rdata', dest='input_rdata', required=TRUE, help="Input RData file")
+parser$add_argument('--blocks_vec', dest='blocks_vec', required=TRUE, help="Blocks vector")
+parser$add_argument('--responses_var', dest='responses_var', required=TRUE, help="Responses variables")
+parser$add_argument('--x_min', dest='x_min', type='double', required=TRUE, help="X min")
+parser$add_argument('--x_max', dest='x_max', type='double', required=TRUE, help="X max")
+parser$add_argument('--y_min', dest='y_min', type='double', required=TRUE, help="Y min")
+parser$add_argument('--y_max', dest='y_max', type='double', required=TRUE, help="Y max")
+parser$add_argument('--output_var', dest='output_var', required=TRUE, help="Output variables file")
+parser$add_argument('--output_pdf', dest='output_pdf', required=TRUE, help="Output PDF file")
+
+args <- parser$parse_args()
+
+## Print parameters
+print("Input RData:")
+print(args$input_rdata)
+print("Blocks vector:")
+print(args$blocks_vec)
+print("Response variables:")
+print(args$responses_var)
+print("X min:")
+print(args$x_min)
+print("X max:")
+print(args$x_max)
+print("Y min:")
+print(args$y_min)
+print("Y max:")
+print(args$y_max)
+print("Output variables file:")
+print(args$output_var)
+print("Output PDF file:")
+print(args$output_pdf)
+
+names_blocks = strsplit(args$blocks_vec, ",")[[1]]
+names_response_variables = strsplit(args$responses_var, ",")[[1]]
+
+print("names_blocks:")
+print(names_blocks)
+print("names_response_variables:")
+print(names_response_variables)
+
+## Loading libraries
+# suppressPackageStartupMessages(require(ellipse))
+# suppressPackageStartupMessages(require(grDevices))
+# suppressPackageStartupMessages(require(RColorBrewer))
+# suppressPackageStartupMessages(require(mixOmics))
+## Loading local functions
+# source_local("mixomics-blocksplsda-integration/integration_block_splsda_func.R")
+install.packages("https://gitlab.com/bilille/mixomics-blocksplsda-integration/-/raw/master/visCorVar_0.3.tar.gz", repos=NULL)
+suppressPackageStartupMessages(require(visCorVar))
+print("visCorVar has been loaded")
+
+# R script call
+source_local <- function(fname)
+{
+    argv <- commandArgs(trailingOnly = FALSE)
+    base_dir <- dirname(substring(argv[grep("--file=", argv)], 8))
+    source(paste(base_dir, fname, sep="/"))
+}
+
+# Loading input Rdata file
+# loads res_matCorAddVar object
+load(args$input_rdata)
+
+mat_cor_comp1 = res_matCorAddVar$mat_cor_comp1
+mat_cor_comp2 = res_matCorAddVar$mat_cor_comp2
+cutoff_comp = res_matCorAddVar$cutoff_comp
+comp = res_matCorAddVar$comp
+list_vec_index_block_select  = res_matCorAddVar$list_vec_index_block_select
+list_vec_names_blocks = res_matCorAddVar$list_vec_names_blocks
+list_cor_comp_selected_var_resp_var = res_matCorAddVar$list_cor_comp_selected_var_resp_var
+res_compute_cor_var_interest = res_matCorAddVar$res_compute_cor_var_interest
+res_block_splsda = res_matCorAddVar$res_block_splsda
+
+#
+print("mat_cor_comp1:")
+print(mat_cor_comp1)
+print("mat_cor_comp2:")
+print(mat_cor_comp2)
+print("cutoff_comp:")
+print(cutoff_comp)
+print("comp:")
+print(comp)
+print("list_vec_index_block_select:")
+print(list_vec_index_block_select)
+print("list_vec_names_blocks:")
+print(list_vec_names_blocks)
+print("list_cor_comp_selected_var_resp_var:")
+print(list_cor_comp_selected_var_resp_var)
+print("res_compute_cor_var_interest:")
+print(res_compute_cor_var_interest)
+
+# Open output pdf file 
+pdf(args$output_pdf, width=8, height=7)
+mar = c(5, 5, 2, 8)
+par(mar = mar)
+
+selected_variables = circleCor(list_dataframe_cor_comp_var_global = list_cor_comp_selected_var_resp_var,
+                               list_vec_index_block_select = list_vec_index_block_select,
+                               mat_cor_comp1 = mat_cor_comp1,
+                               mat_cor_comp2 = mat_cor_comp2,
+                               names_blocks = names_blocks,
+                               names_response_variables = names_response_variables,
+                               comp = comp,
+                               cutoff = 0.85,
+                               min.X = args$x_min,
+                               max.X = args$x_max,
+                               min.Y = args$y_min,
+                               max.Y = args$y_max,
+                               # vec_col = vec_col,
+                               rad.in = 0.5,
+                               cex = 0.7,
+                               cex_legend = 0.8,
+                               pos = c(1.2, 0),
+                               pch = 20)
+
+dev.off()
+
+write(selected_variables, file=args$output_var, ncolumns=1)
\ No newline at end of file