Mercurial > repos > ethevenot > batchcorrection
diff runit/batchcorrection_runtests.R @ 3:2e3a23dd6c24 draft default tip
Uploaded
author | melpetera |
---|---|
date | Thu, 28 Feb 2019 05:12:34 -0500 |
parents | 57edfd3943ab |
children |
line wrap: on
line diff
--- a/runit/batchcorrection_runtests.R Mon May 01 08:06:08 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -#!/usr/bin/env Rscript - -## Package -##-------- - -library(RUnit) - -## Constants -##---------- - -testOutDirC <- "output" -argVc <- commandArgs(trailingOnly = FALSE) -scriptPathC <- sub("--file=", "", argVc[grep("--file=", argVc)]) - - -## Functions -##----------- - -## Reading tables (matrix or data frame) -readTableF <- function(fileC, typeC = c("matrix", "dataframe")[1]) { - - file.exists(fileC) || stop(paste0("No output file \"", fileC ,"\".")) - - switch(typeC, - matrix = return(t(as.matrix(read.table(file = fileC, - header = TRUE, - row.names = 1, - sep = "\t", - stringsAsFactors = FALSE)))), - dataframe = return(read.table(file = fileC, - header = TRUE, - row.names = 1, - sep = "\t", - stringsAsFactors = FALSE))) - -} - -## Call wrapper -wrapperCallF <- function(paramLs, allLoessL) { - - ## Set program path - wrapperPathC <- file.path(dirname(scriptPathC), "..", - ifelse(allLoessL, - "batch_correction_all_loess_wrapper.R", - "batch_correction_wrapper.R")) - - ## Set arguments - argLs <- NULL - for (parC in names(paramLs)) - argLs <- c(argLs, parC, paramLs[[parC]]) - - ## Call - wrapperCallC <- paste(c(wrapperPathC, argLs), collapse = " ") - - if(.Platform$OS.type == "windows") - wrapperCallC <- paste("Rscript", wrapperCallC) - - - print(wrapperCallC) - - - wrapperCodeN <- system(wrapperCallC) - - if (wrapperCodeN != 0) - stop(paste0("Error when running 'batch_correction_", - ifelse(allLoessL, "all_loess_", ""), - "wrapper.R'")) - - ## Get output - outLs <- list() - if ("dataMatrix_out" %in% names(paramLs)) - outLs[["datMN"]] <- readTableF(paramLs[["dataMatrix_out"]], "matrix") - if ("sampleMetadata_out" %in% names(paramLs)) - outLs[["samDF"]] <- readTableF(paramLs[["sampleMetadata_out"]], "dataframe") - if ("variableMetadata_out" %in% names(paramLs)) - outLs[["varDF"]] <- readTableF(paramLs[["variableMetadata_out"]], "dataframe") - if("information" %in% names(paramLs)) - outLs[["infVc"]] <- readLines(paramLs[["information"]]) - - if("out_preNormSummary" %in% names(paramLs)) - outLs[["sumDF"]] <- readTableF(paramLs[["out_preNormSummary"]], "dataframe") - - return(outLs) - -} - -## Setting default parameters -defaultArgF <- function(testInDirC, determineL) { - - defaultArgLs <- list() - - if(file.exists(file.path(dirname(scriptPathC), testInDirC, "dataMatrix.tsv"))) - defaultArgLs[["dataMatrix"]] <- file.path(dirname(scriptPathC), testInDirC, "dataMatrix.tsv") - if(file.exists(file.path(dirname(scriptPathC), testInDirC, "sampleMetadata.tsv"))) - defaultArgLs[["sampleMetadata"]] <- file.path(dirname(scriptPathC), testInDirC, "sampleMetadata.tsv") - - if(!determineL) - if(file.exists(file.path(dirname(scriptPathC), testInDirC, "variableMetadata.tsv"))) - defaultArgLs[["variableMetadata"]] <- file.path(dirname(scriptPathC), testInDirC, "variableMetadata.tsv") - - if(determineL) { ## determinebc - - defaultArgLs[["out_graph_pdf"]] <- file.path(dirname(scriptPathC), testOutDirC, "out_graph.pdf") - defaultArgLs[["out_preNormSummary"]] <- file.path(dirname(scriptPathC), testOutDirC, "preNormSummary.txt") - - } else { ## batchcorrection - - defaultArgLs[["dataMatrix_out"]] <- file.path(dirname(scriptPathC), testOutDirC, "dataMatrix.tsv") - defaultArgLs[["variableMetadata_out"]] <- file.path(dirname(scriptPathC), testOutDirC, "variableMetadata.tsv") - defaultArgLs[["graph_output"]] <- file.path(dirname(scriptPathC), testOutDirC, "graph_output.pdf") - defaultArgLs[["rdata_output"]] <- file.path(dirname(scriptPathC), testOutDirC, "rdata_output.rdata") - - } - - defaultArgLs - -} - -## Main -##----- - -## Create output folder -file.exists(testOutDirC) || dir.create(testOutDirC) - -## Run tests -test.suite <- defineTestSuite('tests', dirname(scriptPathC), testFileRegexp = paste0('^.*_tests\\.R$'), testFuncRegexp = '^.*$') -isValidTestSuite(test.suite) -test.results <- runTestSuite(test.suite) -print(test.results) -