diff mixomics_blocksplsda_script.R @ 1:e93350dc99f1 draft

"planemo upload for repository https://gitlab.com/bilille/galaxy-viscorvar commit 1eda261d4fe137d6e8806b0c6af7eaf12d11ac95"
author ppericard
date Thu, 15 Oct 2020 12:22:25 +0000
parents d0b77b926863
children
line wrap: on
line diff
--- a/mixomics_blocksplsda_script.R	Tue Jun 23 19:57:35 2020 -0400
+++ b/mixomics_blocksplsda_script.R	Thu Oct 15 12:22:25 2020 +0000
@@ -36,7 +36,7 @@
 parser$add_argument('--nearzerovar', dest='nearzerovar', action="store_true",
                     help="Should be set in particular for data with many zero values")
 parser$add_argument('--rdata_out', dest='rdata_out', required=TRUE, help="Output Rdata file")
-parser$add_argument('--sample_metadata_out', dest='sample_metadata_out', required=TRUE, help="Output sample metadata file")
+# parser$add_argument('--sample_metadata_out', dest='sample_metadata_out', required=TRUE, help="Output sample metadata file")
 parser$add_argument('--variable_metadata_outdir', dest='variable_metadata_outdir', required=TRUE, help="Output variable metadata directory")
 
 args <- parser$parse_args()
@@ -68,8 +68,8 @@
 print(args$nearzerovar)
 print("Output Rdata file:")
 print(args$rdata_out)
-print("Output sample metadata file:")
-print(args$sample_metadata_out)
+# print("Output sample metadata file:")
+# print(args$sample_metadata_out)
 print("Output variable metadata directory:")
 print(args$variable_metadata_outdir)
 
@@ -119,6 +119,11 @@
         stop("Sample names must be the same and in the same order in the sample metadata matrix and the block data matrix")
     }
 
+    if(any(is.na(block_data_matrix)))
+    {
+        stop(sprintf("Block %s contains missing values. We recommend not to perform data integration with missing values. If you want to force run, change the advanced parameter 'Check for missing values' to 'No'.", block_name))
+    }
+
     list_X[[block_name]] <- block_data_matrix
 
     # Set the nb of variables to keep
@@ -175,26 +180,41 @@
 ## Save output Rdata file
 save(mixomics_result, file=args$rdata_out)
 
+# 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="/"))
+}
+
+# Load library
+source_local("additional_functions_block_splsda.R")
+
+
+
+list_union_selected_block_variables = unionSelectBlockVariables(mixomics_result)
+
 ## Save output sample metadata file
 # print("Block.splsda variates:")
 # print(mixomics_result$variates)
 
-for(block_name in names(mixomics_result$variates))
-{
-    # print(block_name)
-    # print(mixomics_result$variates[[block_name]])
+# for(block_name in names(mixomics_result$variates))
+# {
+#     # print(block_name)
+#     # print(mixomics_result$variates[[block_name]])
 
-    # Format the column names to add the block name and replace spaces
-    colnames(mixomics_result$variates[[block_name]]) <- paste("block.splsda_variates", block_name, gsub(" ", "_", colnames(mixomics_result$variates[[block_name]])), sep = "_")
-    # print(mixomics_result$variates[[block_name]])
+#     # Format the column names to add the block name and replace spaces
+#     colnames(mixomics_result$variates[[block_name]]) <- paste("block.splsda_variates", block_name, gsub(" ", "_", colnames(mixomics_result$variates[[block_name]])), sep = "_")
+#     # print(mixomics_result$variates[[block_name]])
 
-    # Append the new columns to the sample metadata matrix
-    sample_metadata <- cbind2(sample_metadata, mixomics_result$variates[[block_name]])
-}
+#     # Append the new columns to the sample metadata matrix
+#     sample_metadata <- cbind2(sample_metadata, mixomics_result$variates[[block_name]])
+# }
 
 # print(sample_metadata)
 
-write.table(sample_metadata, file = args$sample_metadata_out, quote = TRUE, sep = "\t", row.names = TRUE, col.names = NA)
+# write.table(sample_metadata, file = args$sample_metadata_out, quote = TRUE, sep = "\t", row.names = TRUE, col.names = NA)
 
 ## Save output variable metadata files in output directory
 # print("Block.splsda loadings:")
@@ -210,11 +230,15 @@
 
     print(sprintf("Saving block %s output metavar", block_name))
 
-    meta_variable <- mixomics_result$loadings[[block_name]]
+
+    meta_variable <- list_union_selected_block_variables[[i]]
+    colnames(meta_variable) <- "block.splsda_var_select"
+
+    # meta_variable <- mixomics_result$loadings[[block_name]]
     # print(head(meta_variable))
 
     # Format the column names to add the block name and replace spaces
-    colnames(meta_variable) <- paste("block.splsda_loadings", gsub(" ", "_", colnames(meta_variable)), sep = "_")
+    # colnames(meta_variable) <- paste("block.splsda_loadings", gsub(" ", "_", colnames(meta_variable)), sep = "_")
 
     # Read input block variable metadata files if provided (optional)
     if(block_meta_var != "None")
@@ -230,4 +254,4 @@
 
     block_meta_var_output_filename <- paste("mixomics_blocksplsda_block_", block_name, "_variable_metadata.tsv", sep="")
     write.table(meta_variable, file = paste(args$variable_metadata_outdir,block_meta_var_output_filename, sep='/'), quote = TRUE, sep = "\t", row.names = TRUE, col.names = NA)
-}
\ No newline at end of file
+}