From 1c1a9554a1787d90988d837f06a8ef9a9873a649 Mon Sep 17 00:00:00 2001
From: DavyCats <davycats.dc@gmail.com>
Date: Fri, 16 Mar 2018 11:21:14 +0100
Subject: [PATCH] Add quantification tools

---
 biopet.wdl    | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++
 htseq.wdl     | 25 ++++++++++++++++++++++
 stringtie.wdl | 23 +++++++++++++++++++++
 3 files changed, 105 insertions(+)
 create mode 100644 htseq.wdl
 create mode 100644 stringtie.wdl

diff --git a/biopet.wdl b/biopet.wdl
index fadc12c..129d597 100644
--- a/biopet.wdl
+++ b/biopet.wdl
@@ -78,3 +78,60 @@ task SampleConfig {
         Object values = if (defined(tsvOutput) && size(tsvOutput) > 0) then read_map(tsvOutput) else { "": "" }
     }
 }
+
+task BaseCounter {
+    String? preCommand
+    String tool_jar #Should this be of type File?
+    File bam
+    File refFlat
+    String outputDir
+    String? prefix
+
+    command {
+        set -e -o pipefail
+        ${preCommand}
+        mkdir -p ${outputDir}
+        java -jar ${tool_jar} \
+        -b ${bam} \
+        -r ${refFlat} \
+        -o ${outputDir} \
+        ${"-p" + prefix}
+    }
+
+    output {
+        File exonAntisense = outputDir + "/" + prefix + ".base.exon.antisense.counts"
+        File exon = outputDir + "/" + prefix + ".base.exon.counts"
+        File exonMergeAntisense = outputDir + "/" + prefix + ".base.exon.merge.antisense.counts"
+        File exonMerge = outputDir + "/" + prefix + ".base.exon.merge.counts"
+        File exonMergeSense = outputDir + "/" + prefix + ".base.exon.merge.sense.counts"
+        File exonSense = outputDir + "/" + prefix + ".base.exon.sense.counts"
+        File geneAntisense = outputDir + "/" + prefix + ".base.gene.antisense.counts"
+        File gene = outputDir + "/" + prefix + ".base.gene.counts"
+        File geneExonicAntisense = outputDir + "/" + prefix + ".base.gene.exonic.antisense.counts"
+        File geneExonic = outputDir + "/" + prefix + ".base.gene.exonic.counts"
+        File geneExonicSense = outputDir + "/" + prefix + ".base.gene.exonic.sense.counts"
+        File geneIntronicAntisense = outputDir + "/" + prefix + ".base.gene.intronic.antisense.counts"
+        File geneIntronic = outputDir + "/" + prefix + ".base.gene.intronic.counts"
+        File geneIntronicSense = outputDir + "/" + prefix + ".base.gene.intronic.sense.counts"
+        File geneSense = outputDir + "/" + prefix + ".base.gene.sense.counts"
+        File intronAntisense = outputDir + "/" + prefix + ".base.intron.antisense.counts"
+        File intron = outputDir + "/" + prefix + ".base.intron.counts"
+        File intronMergeAntisense = outputDir + "/" + prefix + ".base.intron.merge.antisense.counts"
+        File intronMerge = outputDir + "/" + prefix + ".base.intron.merge.counts"
+        File intronMergeSense = outputDir + "/" + prefix + ".base.intron.merge.sense.counts"
+        File intronSense = outputDir + "/" + prefix + ".base.intron.sense.counts"
+        File metaExonsNonStranded = outputDir + "/" + prefix + ".base.metaexons.non_stranded.counts"
+        File metaExonsStrandedAntisense = outputDir + "/" + prefix + ".base.metaexons.stranded.antisense.counts"
+        File metaExonsStranded = outputDir + "/" + prefix + ".base.metaexons.stranded.counts"
+        File metaExonsStrandedSense = outputDir + "/" + prefix + ".base.metaexons.stranded.sense.counts"
+        File transcriptAntisense = outputDir + "/" + prefix + ".base.transcript.antisense.counts"
+        File transcript = outputDir + "/" + prefix + ".base.transcript.counts"
+        File transcriptExonicAntisense = outputDir + "/" + prefix + ".base.transcript.exonic.antisense.counts"
+        File transcriptExonic = outputDir + "/" + prefix + ".base.transcript.exonic.counts"
+        File transcriptExonicSense = outputDir + "/" + prefix + ".base.transcript.exonic.sense.counts"
+        File transcriptIntronicAntisense = outputDir + "/" + prefix + ".base.transcript.intronic.antisense.counts"
+        File transcriptIntronic = outputDir + "/" + prefix + ".base.transcript.intronic.counts"
+        File transcriptIntronicSense = outputDir + "/" + prefix + ".base.transcript.intronic.sense.counts"
+        File transcriptSense = outputDir + "/" + prefix + ".base.transcript.sense.counts"
+    }
+}
diff --git a/htseq.wdl b/htseq.wdl
new file mode 100644
index 0000000..bce09a8
--- /dev/null
+++ b/htseq.wdl
@@ -0,0 +1,25 @@
+task HTSeqCount {
+    Array[File] alignmentFiles
+    File gffFile
+
+    String? format
+    String? order
+    String? stranded
+
+    String? preCommand
+
+    command {
+        set -e -o pipefail
+        ${preCommand}
+        htseq-count \
+        -f ${default="bam" format} \
+        -r ${default="pos" order} \
+        -s ${default="no" stranded} \
+        ${sep=" " alignmentFiles} \
+        ${gffFile}
+    }
+
+    output {
+        File counts = stdout()
+    }
+}
\ No newline at end of file
diff --git a/stringtie.wdl b/stringtie.wdl
new file mode 100644
index 0000000..a057e19
--- /dev/null
+++ b/stringtie.wdl
@@ -0,0 +1,23 @@
+task Stringtie {
+    String? preCommand
+    File alignedReads
+    File? referenceGFF
+    Int? threads
+
+    command {
+        set -e -o pipefail
+        ${preCommand}
+        stringtie \
+        ${"-p " + threads} \
+        ${"-G " + referenceGFF} \
+        ${alignedReads}
+    }
+
+    output {
+        File assembledTranscripts = stdout()
+    }
+
+    runtime {
+        threads: threads
+    }
+}
\ No newline at end of file
-- 
GitLab