diff --git a/mergecounts.wdl b/mergecounts.wdl index 8cca5dd494eefdaf208bedeffa051ec0960ed6d9..9d877401a68c5e74119e2d687a0d7a3d437a1a34 100644 --- a/mergecounts.wdl +++ b/mergecounts.wdl @@ -1,26 +1,29 @@ -task MergeCounts { - String? preCommand - - Array[File] inputFiles - String outputFile - Int featureColumn - Int valueColumn - Boolean inputHasHeader +version 1.0 +task MergeCounts { + input { + String? preCommand + + Array[File] inputFiles + String outputFile + Int featureColumn + Int valueColumn + Boolean inputHasHeader + } # Based on a script by Szymon Kielbasa/Ioannis Moustakas command <<< set -e -o pipefail - mkdir -p ${sub(outputFile, basename(outputFile) + "$", "")} - ${preCommand} + mkdir -p ~{sub(outputFile, basename(outputFile) + "$", "")} + ~{preCommand} R --no-save <<CODE library(dplyr) library(reshape2) - listOfFiles <- c("${sep='", "' inputFiles}") + listOfFiles <- c("~{sep='", "' inputFiles}") - valueI <- ${valueColumn} - featureI <- ${featureColumn} - header <- ${true="TRUE" false="FALSE" inputHasHeader} + valueI <- ~{valueColumn} + featureI <- ~{featureColumn} + header <- ~{true="TRUE" false="FALSE" inputHasHeader} d <- do.call(rbind, lapply(listOfFiles, function(file){ d <- read.table(file, sep="\t", header=header, comment.char="#") @@ -34,7 +37,7 @@ task MergeCounts { })) d <- d %>% dcast(feature ~ sample, value.var="count") - write.table(d, file="${outputFile}", sep="\t", quote=FALSE, row.names=FALSE) + write.table(d, file="~{outputFile}", sep="\t", quote=FALSE, row.names=FALSE) CODE >>>