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") |