Skip to content
Snippets Groups Projects
Commit b6b2b73e authored by Cats's avatar Cats
Browse files

change to heredoc

parent 225505cf
No related branches found
No related tags found
1 merge request!6add merge counts
......@@ -3,15 +3,27 @@ task MergeCounts {
String outputFile
String idVar
String measurementVar
File script
command {
Rscript ${script} \
${idVar} \
${measurementVar} \
${sep=" " inputFiles} \
> ${outputFile}
}
# Based on a script by Szymon Kielbasa/Ioannis Moustakas
command <<<
R --no-save --slave <<CODE > ${outputFile}
library(dplyr)
library(reshape2)
listOfFiles <- c("${sep='", "' inputFiles}")
d <- do.call(rbind, lapply(listOfFiles, function(file){
d <- read.table(file, header=TRUE, comment.char="#")
colI <- grep(${measurementVar}, colnames(d))
colnames(d)[colI] <- strsplit(file, "/")[[1]][3]
d <- d %>% melt(id.vars=${idVar}, measure.vars=colI,
variable.name="sample", value.name="count")
}))
d <- d %>% dcast(paste0(${idVar}, " ~ sample"), value.var="count")
write.table(d, sep="\t", quote=FALSE, row.names=FALSE)
CODE
>>>
output {
File mergedCounts = outputFile
......
# Author: Ioannis Moustakas, i.moustakas@lumc.nl (Based on a script by Szymon Kielbasa)
# Modified by: Davy Cats, d.cats@lumc.nl
# Title: Merge count files from featureCouns output
# Use: Rscript merge_counts.R columnIDToMergeOn columnIDBeingMerged listOfFilesToBeMerged... > outputFile
### Load Packages
library(dplyr)
library(reshape2)
### load arguments from the command line
args <- commandArgs(trailingOnly=TRUE)
idVars <- args[1]
measureVars <- args[2]
listOfFiles <- args[3:length(args)]
### Iterate over the list of files that are being merged and
### change the column name to the sample name
d <- do.call(rbind, lapply(listOfFiles, function(file){
d <- read.table(file, header=TRUE, comment.char="#")
colI <- grep(measureVars, colnames(d))
colnames(d)[colI] <- strsplit(file, "/")[[1]][3]
d <- d %>% melt(id.vars=idVars, measure.vars=colI,
variable.name="sample", value.name="count")
}))
### Reformat the data frame and output (in STDOUT) the merged table.
d <- d %>% dcast(paste0(idVars, " ~ sample"), value.var="count")
write.table(d, sep="\t", quote=FALSE, row.names=FALSE)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment