Repository 'mixomics_blocksplsda'
hg clone https://toolshed.g2.bx.psu.edu/repos/ppericard/mixomics_blocksplsda

Changeset 3:0a3c83f2197a (2019-10-25)
Previous changeset 2:655d1fbcd3e6 (2019-06-12) Next changeset 4:b0ab97ffc2a1 (2020-03-09)
Commit message:
planemo upload for repository https://github.com/bilille/galaxy-mixomics-blocksplsda commit 24b8259494ac7ab10cbd1f9ee991f455a7507590-dirty
modified:
mixomics_blocksplsda_script.R
mixomics_plotindiv_script.R
added:
Integration_block_splsda_fonc.R
circleCor.xml
circleCor_wrapper.R
computeMatSimilarity.xml
computeMatSimilarity_wrapper.R
matCor_addVar.xml
matCor_addVar_wrapper.R
networkVar.xml
networkVar_wrapper.R
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a Integration_block_splsda_fonc.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Integration_block_splsda_fonc.R Fri Oct 25 07:10:59 2019 -0400
[
b'@@ -0,0 +1,3640 @@\n+# La fonction meanSpotRepl remplace les valeurs des spots r\xc3\xa9pliqu\xc3\xa9s par la\n+# moyenne de leurs intensit\xc3\xa9s.\n+\n+meanSpotRepl <-function(mat)\n+{\n+  ProbeName = colnames(mat)\n+  isDup = duplicated(ProbeName)\n+  dupNames = ProbeName[isDup]\n+  \n+  for (dups in unique(dupNames))\n+  {\n+    mat[dups,] = apply(mat[which(colnames(mat) == dups), ], 2, mean)\n+    \n+  }\n+  \n+  res = mat[, -which(isDup)] # On retire de la matrice mat toutes les spots qui sont r\xc3\xa9pliqu\xc3\xa9s.\n+  \n+  return(res)\n+  \n+}\n+\n+# La fonction supprimerVaConst supprime de la matrice mat les variables constantes.\n+\n+supprimerVaConst <-function(mat)\n+{\n+  name_mat = deparse(substitute(mat))\n+  \n+  cat(paste0("Pour ", name_mat, ", avant suppression des variables constantes, il y a ", dim(mat)[2], " variables."), "\\n")\n+  \n+  indiceVaConst = sapply(1:dim(mat)[2], FUN = function(i){\n+    col_mat_i = mat[, i]\n+    res = all(col_mat_i == col_mat_i[1])\n+    \n+    return(res)  \n+  })\n+  \n+  if(length(which(indiceVaConst == FALSE)) != 0)\n+  {\n+    res = mat[, which(indiceVaConst == FALSE)]\n+    \n+  }else{\n+    res = mat\n+    \n+  }\n+  \n+  cat(paste0("Pour ", name_mat, ", apr\xc3\xa8s suppression des variables constantes, il reste ", dim(res)[2], " variables."), "\\n")\n+  \n+  return(res)\n+}\n+\n+# La fonction supprimerVaNaInd supprime les variables contenant des NA \n+# (si on garde les NA dans ces variables, les composantes du bloc ne\n+# sont plus orthogonales).\n+\n+supprimerVaNaInd <-function(mat)\n+{\n+  indiceVaNaInd = sapply(1:dim(mat)[2], FUN = function(i){\n+    col_mat_i = mat[, i]\n+    \n+    indNA = length(which(is.na(col_mat_i) == TRUE))\n+    \n+    if(indNA >= 1)\n+    {\n+      res = FALSE\n+      \n+    }else{\n+      res = TRUE\n+      \n+    }\n+    \n+    return(res)  \n+  })\n+  \n+  mat2 = mat[, which(indiceVaNaInd == TRUE)]\n+  name_mat = deparse(substitute(mat))\n+  \n+  cat(paste0("Pour ", name_mat, ", apr\xc3\xa8s suppression des variables contenant des NA, il reste ", dim(mat2)[2], " variables."), "\\n")\n+  \n+  return(mat2)\n+  \n+}\n+\n+\n+# La fonction varAnnotation permet de fournir des informations sur les variables\n+# s\xc3\xa9lectionn\xc3\xa9es pour un design.\n+\n+varAnnotation <-function(variablesSelect,\n+                         data_transcripto_col,\n+                         annot_metageno_caecum)\n+{\n+  res_variablesSelect = variablesSelect\n+  \n+  noms_blocks = sapply(1:length(variablesSelect), FUN = function(i){\n+    ch = strsplit(names(variablesSelect)[i], split = "_")[[1]]\n+    \n+    if(ch[1] == "resBio")\n+    {\n+      res = "resBio"\n+      \n+    }else{\n+      res = paste(ch[1:2], collapse = "_")\n+      \n+    }\n+    \n+    return(res)\n+  })\n+  \n+  ind_transcripto_col = which(noms_blocks == "transcripto_col")\n+  \n+  if(length(variablesSelect[[ind_transcripto_col]]) != 0)\n+  {\n+    \n+    \n+    varSelect_transcripto_colTemp = variablesSelect[[ind_transcripto_col]] \n+    varSelect_transcripto_col = sapply(1:length(varSelect_transcripto_colTemp), FUN = function(i){\n+      ch = strsplit(varSelect_transcripto_colTemp[i], split = "_")[[1]]\n+      \n+      res = paste(ch[2:length(ch)], collapse = "_")\n+      \n+      return(res)\n+    })\n+    \n+    dataframe_varSelect_transcripto_col  = data.frame(ProbeName = varSelect_transcripto_col)\n+    \n+    dataframe_annot_transcripto_col = data.frame(ProbeName = data_transcripto_col$genes$ProbeName,\n+                                                 GeneName = data_transcripto_col$genes$GeneName,\n+                                                 Description = data_transcripto_col$genes$Description,\n+                                                 SystematicName = data_transcripto_col$genes$SystematicName)\n+    \n+    tab_transcripto_col = join(x = dataframe_varSelect_transcripto_col, y = dataframe_annot_transcripto_col,\n+                               type = "inner",\n+                               by = "ProbeName")\n+    \n+    res_variablesSelect[[ind_transcripto_col]] = tab_transcripto_col\n+    \n+    \n+  }\n+  \n+  ind_metageno_caecum = which(noms_block'..b's)\n+      })\n+      names(liste_matSimilaritySelectTemp) = names(liste_matSimilarity)\n+      \n+      indice_NA_liste_matSimilaritySelectTemp = sapply(1:length(liste_matSimilaritySelectTemp), FUN = function(i){\n+        liste_matSimilaritySelectTemp_i = liste_matSimilaritySelectTemp[[i]]\n+        \n+        if(is.matrix(liste_matSimilaritySelectTemp_i))\n+        {\n+          res = FALSE\n+          \n+        }else{\n+          if(is.na(liste_matSimilaritySelectTemp_i))\n+          {\n+            res = TRUE\n+            \n+          }else{\n+            res = FALSE\n+            \n+          }\n+          \n+        }\n+        \n+        return(res)\n+      })\n+      \n+      \n+      liste_matSimilaritySelect = liste_matSimilaritySelectTemp[!indice_NA_liste_matSimilaritySelectTemp]\n+      \n+      w = c()\n+      node.X1 = c()\n+      node.X2 = c()\n+      vec_group = c()\n+      vec_nomsVar = c()\n+      \n+      for(i in 1:length(liste_matSimilaritySelect))\n+      {\n+        \n+        noms_block1_block2 = names(liste_matSimilaritySelect)[i]\n+        matSimilaritySelect_i = liste_matSimilaritySelect[[i]]\n+        \n+        X1 = rownames(matSimilaritySelect_i)\n+        X2 = colnames(matSimilaritySelect_i)\n+        \n+        rep.X1 = rep(X1, each = length(X2))\n+        rep.X2 = rep(X2, length(X1))\n+        \n+        node.X1 = c(node.X1, rep.X1)\n+        node.X2 = c(node.X2, rep.X2)\n+        \n+        ch = strsplit(noms_block1_block2, split = "-")[[1]]\n+        nom_block1 = ch[1]\n+        nom_block2 = ch[2]\n+        vec_group = c(vec_group, c(rep(nom_block1, length(X1)), rep(nom_block2, length(X2))))\n+        vec_nomsVar = c(vec_nomsVar, c(X1, X2))\n+        \n+        w = c(w, as.vector(t(matSimilaritySelect_i)))\n+        \n+      } # Fin for(i in 1:length(liste_matSimilaritySelect)).\n+      \n+      dup = duplicated(vec_nomsVar)\n+      vec_nomsVar = vec_nomsVar[!dup]\n+      vec_group = vec_group[!dup]\n+      \n+      nodes = data.frame(name = vec_nomsVar,\n+                         group = vec_group)\n+      \n+      # gR\n+      relations = data.frame(from = node.X1,\n+                             to = node.X2,\n+                             weight = w)\n+      \n+      # idx\n+      if(!is.null(vec_varBlock) & !is.null(vec_varBlockInteret2) & !is.null(vec_varRep))\n+      {\n+        \n+        idx = sapply(1:dim(relations)[1], FUN = function(i){\n+          node.X1_i = relations$from[i]\n+          node.X2_i = relations$to[i]\n+          \n+          if(node.X1_i%in%vec_varBlockInteret2 | node.X2_i%in%vec_varBlockInteret2)\n+          {\n+            res = TRUE\n+            \n+          }else if(node.X1_i%in%vec_varRep | node.X2_i%in%vec_varRep){\n+            res = TRUE\n+            \n+          }else{\n+            res = abs(w)[i] >= cutoff\n+            \n+          }\n+          \n+          return(res)\n+        }) \n+        \n+      }else if(!is.null(vec_varBlock) & is.null(vec_varBlockInteret2) & !is.null(vec_varRep))\n+      {\n+        idx = sapply(1:dim(relations)[1], FUN = function(i){\n+          node.X1_i = relations$from[i]\n+          node.X2_i = relations$to[i]\n+          \n+          if(node.X1_i%in%vec_varRep | node.X2_i%in%vec_varRep){\n+            res = TRUE\n+            \n+          }else{\n+            res = abs(w)[i] >= cutoff\n+            \n+          }\n+          \n+          return(res)\n+        }) \n+        \n+      }else if(is.null(vec_varBlockEtReponse) & !is.null(vec_varBlockInteret2) & !is.null(vec_varRep))\n+      {\n+        idx = rep(TRUE, dim(relations)[1])\n+        \n+      }\n+      \n+      relations = relations[idx, , drop = FALSE]\n+      \n+      gR = graph.data.frame(relations,\n+                            directed = FALSE,\n+                            vertices = nodes)\n+      \n+      # On supprime les noeuds qui n\'ont pas d\'ar\xc3\xaates.\n+      gR = delete.vertices(gR, which(degree(gR) == 0))\n+      \n+      res = list(gR = gR)\n+      res$cutoff = cutoff\n+      \n+      return(res)\n+      \n+      \n+    }\n+    \n+    \n+  }\n+  \n+  \n+  \n+  \n+}\n+\n+\n+\n+\n+\n+\n+\n+\n+\n'
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a circleCor.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/circleCor.xml Fri Oct 25 07:10:59 2019 -0400
[
@@ -0,0 +1,70 @@
+<tool id="circleCor" name="circleCor" version="0.2.0" profile="16.04" workflow_compatible="true">
+
+    <description></description>
+    
+    <requirements>
+        <requirement type="package">r-base</requirement>
+        <requirement type="package" version="0.4">r-ellipse</requirement>
+        <requirement type="package" version="2.0">r-argparse</requirement>
+        <requirement type="package" version="1.1">r-rcolorbrewer</requirement>
+
+        <!-- <requirement type="package" version="6.8">bioconductor-mixomics</requirement> -->
+    </requirements>
+    
+    <stdio>
+        <!-- <exit_code range="1:" level="fatal" /> -->
+    </stdio>
+
+    <command detect_errors="aggressive">
+        <![CDATA[
+        Rscript
+        ${__tool_directory__}/circleCor_wrapper.R
+        --input_rdata ${input_rdata}
+        --blocks_vec ${select_blocks.value}
+        --responses_var ${select_responses_var}
+        --x_min ${x_min}
+        --x_max ${x_max}
+        --y_min ${y_min}
+        --y_max ${y_max}
+        --output_var ${output_var}
+        --output_pdf ${output_pdf}
+        ]]>
+    </command>
+
+    <inputs>
+        <param name="input_rdata" type="data" format="rdata" label="Input RData file from block.SPLSDA"/>
+        <param name="blocks_vec_list" type="data" format="tabular" label="List of blocks vector"/>
+        <param name="select_blocks" type="select" label="Blocks">
+            <options from_dataset="blocks_vec_list">
+                <column name="value" index="0"/>
+                <filter type="unique_value" column="0"/>
+                <filter type="sort_by" name="sorted_value" column="0"/>
+            </options>
+        </param>
+        <param name="responses_var_list" type="data" format="tabular" label="List of response variables"/>
+        <param name="select_responses_var" type="select" display="checkboxes" multiple="true" label="Response variables">
+        <!-- <param name="select_responses_var" type="select" multiple="true" label="Response variables"> -->
+            <options from_dataset="responses_var_list">
+                <column name="value" index="0"/>
+                <filter type="unique_value" column="0"/>
+                <filter type="sort_by" name="sorted_value" column="0"/>
+            </options>
+        </param>
+        <param name="x_min" type="float" value="-1" min="-1" max="1" label="X min" help="" />
+        <param name="x_max" type="float" value="1" min="-1" max="1" label="X max" help="" />
+        <param name="y_min" type="float" value="-1" min="-1" max="1" label="Y min" help="" />
+        <param name="y_max" type="float" value="1" min="-1" max="1" label="Y max" help="" />
+    </inputs>
+
+    <outputs>
+        <data name="output_var" format="tabular" label="${tool.name}_var.tsv" />
+        <data name="output_pdf" format="pdf" label="${tool.name}.pdf" />
+    </outputs>
+
+    <tests>
+    </tests>
+
+    <help>
+    </help>
+
+</tool>
\ No newline at end of file
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a circleCor_wrapper.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/circleCor_wrapper.R Fri Oct 25 07:10:59 2019 -0400
[
@@ -0,0 +1,102 @@
+#!/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)
+
+## Loading libraries
+suppressPackageStartupMessages(require(ellipse))
+suppressPackageStartupMessages(require(grDevices))
+suppressPackageStartupMessages(require(RColorBrewer))
+# suppressPackageStartupMessages(require(mixOmics))
+
+
+# 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 local functions
+source_local("Integration_block_splsda_fonc.R")
+
+load(args$input_rdata)
+
+blocks_vector = strsplit(args$blocks_vec, ",")[[1]]
+response_variables = strsplit(args$responses_var, ",")[[1]]
+
+
+print("liste_vec_indice_blockSelect:")
+print(liste_vec_indice_blockSelect)
+print("liste_vec_blocks:")
+print(liste_vec_blocks)
+print("Mat cor comp1:")
+print(mat_cor_comp1)
+print("blocks_vector:")
+print(blocks_vector)
+
+
+
+pdf(args$output_pdf, width=12, height=9)
+
+varSelect = circleCor(liste_dataframe_cor_comp_var_global = liste_dataframe_cor_comp_var_global,
+                      liste_vec_indice_blockSelect = liste_vec_indice_blockSelect,
+                      mat_cor_comp1 = mat_cor_comp1,
+                      mat_cor_comp2 = mat_cor_comp2,
+                      vec_blocks = blocks_vector,
+                      nomsVarReponses = response_variables,
+                      min.X = args$x_min,
+                      max.X = args$x_max,
+                      min.Y = args$y_min,
+                      max.Y = args$y_max,
+                      cutoff = 0.85,
+                      rad.in = 0.5,
+                      cex = 0.7,
+                      cex_legend = 0.8,
+                      pos = c(1.2, 0),
+                      pch = 20,
+                      inset = c(-0.25, 0))
+
+dev.off()
+
+write(varSelect, file=args$output_var, ncolumns=1)
\ No newline at end of file
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a computeMatSimilarity.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/computeMatSimilarity.xml Fri Oct 25 07:10:59 2019 -0400
[
@@ -0,0 +1,37 @@
+<tool id="computeMatSimilarity" name="computeMatSimilarity" version="0.2.0" profile="16.04" workflow_compatible="true">
+
+    <description></description>
+    
+    <requirements>
+        <!-- <requirement type="package" version="6.8">bioconductor-mixomics</requirement> -->
+        <requirement type="package" version="2.0">r-argparse</requirement>
+    </requirements>
+    
+    <stdio>
+        <!-- <exit_code range="1:" level="fatal" /> -->
+    </stdio>
+
+    <command detect_errors="aggressive">
+        <![CDATA[
+        Rscript
+        ${__tool_directory__}/computeMatSimilarity_wrapper.R
+        --input_rdata ${input_rdata}
+        --output_rdata ${output_rdata}
+        ]]>
+    </command>
+
+    <inputs>
+        <param name="input_rdata" type="data" format="rdata" label="Input RData file from addVariablesResponses"/>
+    </inputs>
+
+    <outputs>
+        <data name="output_rdata" format="rdata" label="${tool.name}_output.rdata" />
+    </outputs>
+
+    <tests>
+    </tests>
+
+    <help>
+    </help>
+
+</tool>
\ No newline at end of file
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a computeMatSimilarity_wrapper.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/computeMatSimilarity_wrapper.R Fri Oct 25 07:10:59 2019 -0400
[
@@ -0,0 +1,47 @@
+#!/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 computeMatSimilarity function')
+
+parser$add_argument('--input_rdata', dest='input_rdata', required=TRUE, help="Input RData file")
+parser$add_argument('--output_rdata', dest='output_rdata', required=TRUE, help="Output RData file")
+
+args <- parser$parse_args()
+
+## Print parameters
+print("Input RData:")
+print(args$input_rdata)
+print("Output RData:")
+print(args$output_rdata)
+
+## Loading libraries
+# suppressPackageStartupMessages(require(mixOmics))
+
+# 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 local functions
+source_local("Integration_block_splsda_fonc.R")
+
+load(args$input_rdata)
+
+liste_res_matSimilarity_group = compute_matSimilarity(liste_dataframe_cor_comp_var_global)
+
+liste_matSimilarity_group = liste_res_matSimilarity_group$liste_matSimilarity_group
+comp = liste_res_matSimilarity_group$comp
+
+save(liste_matSimilarity_group,
+     comp,
+     file = args$output_rdata)
\ No newline at end of file
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a matCor_addVar.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/matCor_addVar.xml Fri Oct 25 07:10:59 2019 -0400
[
@@ -0,0 +1,43 @@
+<tool id="matCor_addVar" name="matCor_addVar" version="0.2.0" profile="16.04" workflow_compatible="true">
+
+    <description></description>
+    
+    <requirements>
+        <requirement type="package" version="6.8">bioconductor-mixomics</requirement>
+        <requirement type="package" version="2.0">r-argparse</requirement>
+    </requirements>
+    
+    <stdio>
+        <!-- <exit_code range="1:" level="fatal" /> -->
+    </stdio>
+
+    <command detect_errors="aggressive">
+        <![CDATA[
+        Rscript
+        ${__tool_directory__}/matCor_addVar_wrapper.R
+        --input_rdata ${input_rdata}
+        --cutoff_comp ${cutoff_comp}
+        --mat_block_Y_file ${mat_block_Y}
+        --output_rdata ${output_rdata}
+        --output_blocks_comb ${output_blocks_comb}
+        ]]>
+    </command>
+
+    <inputs>
+        <param name="input_rdata" type="data" format="rdata" label="Input RData file from block.SPLSDA"/>
+        <param name="cutoff_comp" type="float" value="0.8" min="0" max="1" label="" help="" />
+        <param name="mat_block_Y" type="data" format="tabular" label="Matrix Block Y" />
+    </inputs>
+
+    <outputs>
+        <data name="output_rdata" format="rdata" label="${tool.name}_output.rdata" />
+        <data name="output_blocks_comb" format="tabular" label="${tool.name}_blocks_comb.tsv" />
+    </outputs>
+
+    <tests>
+    </tests>
+
+    <help>
+    </help>
+
+</tool>
\ No newline at end of file
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a matCor_addVar_wrapper.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/matCor_addVar_wrapper.R Fri Oct 25 07:10:59 2019 -0400
[
@@ -0,0 +1,93 @@
+#!/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='Compute the matCorEtBlockSelect and addVariablesReponses functions')
+
+parser$add_argument('--input_rdata', dest='input_rdata', required=TRUE, help="Input RData file")
+parser$add_argument('--cutoff_comp', dest='cutoff_comp', type='double', required=TRUE, help="")
+parser$add_argument('--mat_block_Y_file', dest='mat_block_Y_file', required=TRUE, help="Matrix block Y filepath")
+parser$add_argument('--output_rdata', dest='output_rdata', required=TRUE, help="Output RData file")
+parser$add_argument('--output_blocks_comb', dest='output_blocks_comb', required=TRUE, help="Output blocks combinations file")
+
+args <- parser$parse_args()
+
+## Print parameters
+print("Input RData:")
+print(args$input_rdata)
+print("Cutoff comp:")
+print(args$cutoff_comp)
+print("Mat Block Y file:")
+print(args$mat_block_Y_file)
+print("Output RData:")
+print(args$output_rdata)
+print("Output Blocks combinations:")
+print(args$output_blocks_comb)
+
+## Loading libraries
+suppressPackageStartupMessages(require(mixOmics))
+
+# 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 local functions
+source_local("Integration_block_splsda_fonc.R")
+
+load(args$input_rdata)
+
+liste_matCorEtBlockSelect = matCorEtBlockSelect(res_block_splsda = mixomics_result,
+                                                cutoff_comp = args$cutoff_comp,
+                                                comp = 1:2)
+
+mat_cor_comp1 = liste_matCorEtBlockSelect$mat_cor_comp1
+mat_cor_comp2 = liste_matCorEtBlockSelect$mat_cor_comp2
+dataframe_cor_comp_var_global = liste_matCorEtBlockSelect$dataframe_cor_comp_var_global
+liste_vec_indice_blockSelect = liste_matCorEtBlockSelect$liste_vec_indice_blockSelect
+liste_vec_blocks = liste_matCorEtBlockSelect$liste_vec_blocks
+
+print("Mat cor comp1:")
+print(mat_cor_comp1)
+print("Mat cor comp2:")
+print(mat_cor_comp2)
+print("dataframe_cor_comp_var_global:")
+print(dataframe_cor_comp_var_global)
+print("liste_vec_indice_blockSelect:")
+print(liste_vec_indice_blockSelect)
+print("liste_vec_blocks:")
+print(liste_vec_blocks)
+
+
+lapply(liste_vec_blocks, write, file=args$output_blocks_comb,  append=TRUE, ncolumns=100, sep=",")
+
+
+print("Reading Mat Block Y")
+mat_block_Y = read.table(args$mat_block_Y_file, header=TRUE, row.names=1)
+print(mat_block_Y)
+
+
+liste_dataframe_cor_comp_var_global = addVariablesReponses(res_block_splsda = mixomics_result,
+                                                           dataframe_cor_comp_var_global = dataframe_cor_comp_var_global,
+                                                           liste_vec_indice_blockSelect = liste_vec_indice_blockSelect,
+                                                           mat_block_Y = mat_block_Y)
+
+
+save(mixomics_result,
+     liste_matCorEtBlockSelect,
+     mat_cor_comp1,
+     mat_cor_comp2,
+     dataframe_cor_comp_var_global,
+     liste_vec_indice_blockSelect,
+     liste_vec_blocks,
+     liste_dataframe_cor_comp_var_global,
+     file = args$output_rdata)
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a mixomics_blocksplsda_script.R
--- a/mixomics_blocksplsda_script.R Wed Jun 12 11:24:23 2019 -0400
+++ b/mixomics_blocksplsda_script.R Fri Oct 25 07:10:59 2019 -0400
[
@@ -193,6 +193,8 @@
     # block_data_matrix_filename <- args$blocks_list[i,3]
     block_meta_var <- args$blocks_list[i,4]
 
+    print(sprintf("Saving block %s output metavar", block_name))
+
     meta_variable <- mixomics_result$loadings[[block_name]]
     # print(head(meta_variable))
 
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a mixomics_plotindiv_script.R
--- a/mixomics_plotindiv_script.R Wed Jun 12 11:24:23 2019 -0400
+++ b/mixomics_plotindiv_script.R Fri Oct 25 07:10:59 2019 -0400
[
@@ -6,8 +6,7 @@
 # we need that to not crash galaxy with an UTF8 error on German LC settings.
 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")
 
-## Main Function ##
-
+## Get parameters ##
 suppressPackageStartupMessages(require(argparse))
 
 parser <- ArgumentParser(description='Run the mixOmics plotIndiv function')
@@ -19,7 +18,7 @@
 
 args <- parser$parse_args()
 
-##
+## Print parameters
 print("Input RData:")
 print(args$input_rdata)
 print("Plot legend:")
@@ -36,9 +35,9 @@
 
 pdf(args$output_pdf)
 
-plotIndiv(mixomics_result,
-          legend = args$legend,
-          ellipse = args$ellipse)
+# plotIndiv(mixomics_result,
+#           legend = args$legend,
+#           ellipse = args$ellipse)
 
 for(k in 1:(length(mixomics_result$names[[3]])-1))
 {
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a networkVar.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/networkVar.xml Fri Oct 25 07:10:59 2019 -0400
[
@@ -0,0 +1,62 @@
+<tool id="networkVar" name="networkVar" version="0.2.0" profile="16.04" workflow_compatible="true">
+
+    <description></description>
+    
+    <requirements>
+        <requirement type="package" version="6.8">bioconductor-mixomics</requirement>
+        <requirement type="package" version="1.2">r-igraph</requirement>
+        <requirement type="package" version="2.0">r-argparse</requirement>
+    </requirements>
+    
+    <stdio>
+        <!-- <exit_code range="1:" level="fatal" /> -->
+    </stdio>
+
+    <command detect_errors="aggressive">
+        <![CDATA[
+        Rscript
+        ${__tool_directory__}/networkVar_wrapper.R
+        --mat_similarity_rdata ${mat_similarity_rdata}
+        --block_splsda_rdata ${block_splsda_rdata}
+        --var_list_file ${var_list_file}
+
+        #if str($var_of_interest_file) !='':
+            --interest_var_file ${var_of_interest_file}
+        #end if
+        
+        --responses_var ${select_responses_var}
+
+        --output_graph ${output_graph}
+        ]]>
+    </command>
+
+    <inputs>
+        <param name="mat_similarity_rdata" type="data" format="rdata" label="Input RData file from computeMatSimilarity"/>
+        <param name="block_splsda_rdata" type="data" format="rdata" label="Input RData file from block.SPLSDA"/>
+        <param name="var_list_file" type="data" format="tabular" label="Variables list file" />
+        
+        <!-- Fichier avec noms de gènes/variables, donné par l'utilisateur -->
+        <param name="var_of_interest_file" type="data" format="tabular" optional="true" label="Variables of interest (Optional)" />
+
+        <param name="responses_var_list" type="data" format="tabular" label="List of response variables"/>
+        <param name="select_responses_var" type="select" display="checkboxes" multiple="true" label="Response variables">
+        <!-- <param name="select_responses_var" type="select" multiple="true" label="Response variables"> -->
+            <options from_dataset="responses_var_list">
+                <column name="value" index="0"/>
+                <filter type="unique_value" column="0"/>
+                <filter type="sort_by" name="sorted_value" column="0"/>
+            </options>
+        </param>
+    </inputs>
+
+    <outputs>
+        <data name="output_graph" format="xml" label="${tool.name}_graph.graphml" />
+    </outputs>
+
+    <tests>
+    </tests>
+
+    <help>
+    </help>
+
+</tool>
\ No newline at end of file
b
diff -r 655d1fbcd3e6 -r 0a3c83f2197a networkVar_wrapper.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/networkVar_wrapper.R Fri Oct 25 07:10:59 2019 -0400
[
@@ -0,0 +1,79 @@
+#!/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 networkVar function')
+
+parser$add_argument('--mat_similarity_rdata', dest='mat_similarity_rdata', required=TRUE, help="matSimilarity RData file")
+parser$add_argument('--block_splsda_rdata', dest='block_splsda_rdata', required=TRUE, help="block.splsda RData file")
+parser$add_argument('--var_list_file', dest='var_list_file', required=TRUE, help="Variables list file")
+parser$add_argument('--interest_var_file', dest='interest_var_file', required=FALSE, help="Variables of interest file")
+parser$add_argument('--responses_var', dest='responses_var', required=TRUE, help="Responses variables")
+parser$add_argument('--output_graph', dest='output_graph', required=TRUE, help="Output graphml")
+
+args <- parser$parse_args()
+
+## Print parameters
+print("matSimilarity RData file:")
+print(args$mat_similarity_rdata)
+print("block.splsda RData file:")
+print(args$block_splsda_rdata)
+print("Variables list file:")
+print(args$var_list_file)
+print("Variables of interest:")
+print(args$interest_var_file)
+print("Response variables:")
+print(args$responses_var)
+print("Output graphml:")
+print(args$output_graph)
+
+## Loading libraries
+suppressPackageStartupMessages(require(mixOmics))
+suppressPackageStartupMessages(require(igraph))
+
+# 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 local functions
+source_local("Integration_block_splsda_fonc.R")
+
+load(args$mat_similarity_rdata)
+load(args$block_splsda_rdata)
+
+variables_vector = as.character(read.table(args$var_list_file, header=FALSE)[[1]])
+interest_var_vec = NULL
+
+if (args$interest_var_file != 'None') {
+    interest_var_vec = as.character(read.table(args$interest_var_file, header=FALSE)[[1]])
+}
+
+response_variables = strsplit(args$responses_var, ",")[[1]]
+
+print("Variables vector:")
+print(variables_vector)
+print("interest_var_vec:")
+print(interest_var_vec)
+print("response_variables:")
+print(response_variables)
+
+network = networkVar(liste_matSimilarity_group = liste_matSimilarity_group,
+                     comp = comp,
+                     res_block_splsda = mixomics_result,
+                     cutoff_comp = 0.8,
+                     vec_varBlock = variables_vector,
+                     vec_varRep = response_variables,
+                     vec_varBlockInteret = interest_var_vec,
+                     cutoff = 0)
+
+write.graph(network$gR, file = args$output_graph, format = "graphml")