From 9184d04716f5d964a7ebda36f60777d29d130940 Mon Sep 17 00:00:00 2001
From: Peter van 't Hof <p.j.van_t_hof@lumc.nl>
Date: Mon, 25 Jan 2016 13:51:56 +0100
Subject: [PATCH] Added tables and heatmaps to basecounter

---
 .../gentrap/measures/BaseCounts.scala         | 42 +++++++++++++++++--
 1 file changed, 39 insertions(+), 3 deletions(-)

diff --git a/public/gentrap/src/main/scala/nl/lumc/sasc/biopet/pipelines/gentrap/measures/BaseCounts.scala b/public/gentrap/src/main/scala/nl/lumc/sasc/biopet/pipelines/gentrap/measures/BaseCounts.scala
index 1f2bdaed6..0bc361e44 100644
--- a/public/gentrap/src/main/scala/nl/lumc/sasc/biopet/pipelines/gentrap/measures/BaseCounts.scala
+++ b/public/gentrap/src/main/scala/nl/lumc/sasc/biopet/pipelines/gentrap/measures/BaseCounts.scala
@@ -2,6 +2,7 @@ package nl.lumc.sasc.biopet.pipelines.gentrap.measures
 
 import nl.lumc.sasc.biopet.core.annotations.AnnotationRefFlat
 import nl.lumc.sasc.biopet.extensions.tools.BaseCounter
+import nl.lumc.sasc.biopet.pipelines.gentrap.Gentrap
 import nl.lumc.sasc.biopet.utils.config.Configurable
 import org.broadinstitute.gatk.queue.QScript
 
@@ -10,7 +11,7 @@ import org.broadinstitute.gatk.queue.QScript
  */
 class BaseCounts(val root: Configurable) extends QScript with Measurement with AnnotationRefFlat {
 
-  def mergeArgs = MergeArgs(List(1), 2, numHeaderLines = 1, fallback = "0")
+  def mergeArgs = MergeArgs(List(1), 2, numHeaderLines = 0, fallback = "0")
 
   /** Pipeline itself */
   def biopetScript(): Unit = {
@@ -24,7 +25,42 @@ class BaseCounts(val root: Configurable) extends QScript with Measurement with A
       id -> baseCounter
     }
 
-    //TODO: merges
-    //TODO: heatmaps
+    def addTableAndHeatmap(countFiles: List[File], outputName: String): Unit = {
+      val mergedTable = new File(outputDir, s"$name.$outputName.tsv")
+      val heatmapFile = new File(outputDir, s"$name.$outputName.png")
+      addMergeTableJob(countFiles, mergedTable, outputName)
+      addHeatmapJob(mergedTable, heatmapFile, outputName)
+    }
+
+    addTableAndHeatmap(jobs.values.map(_.transcriptTotalCounts).toList, "transcriptTotalCounts")
+    addTableAndHeatmap(jobs.values.map(_.transcriptTotalSenseCounts).toList, "transcriptTotalSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.transcriptTotalAntiSenseCounts).toList, "transcriptTotalAntiSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.transcriptExonicCounts).toList, "transcriptExonicCounts")
+    addTableAndHeatmap(jobs.values.map(_.transcriptExonicSenseCounts).toList, "transcriptExonicSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.transcriptExonicAntiSenseCounts).toList, "transcriptExonicAntiSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.transcriptIntronicCounts).toList, "transcriptIntronicCounts")
+    addTableAndHeatmap(jobs.values.map(_.transcriptIntronicSenseCounts).toList, "transcriptIntronicSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.transcriptIntronicAntiSenseCounts).toList, "transcriptIntronicAntiSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.exonCounts).toList, "exonCounts")
+    addTableAndHeatmap(jobs.values.map(_.exonSenseCounts).toList, "exonSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.exonAntiSenseCounts).toList, "exonAntiSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.intronCounts).toList, "intronCounts")
+    addTableAndHeatmap(jobs.values.map(_.intronSenseCounts).toList, "intronSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.intronAntiSenseCounts).toList, "intronAntiSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.geneTotalCounts).toList, "geneTotalCounts")
+    addTableAndHeatmap(jobs.values.map(_.geneTotalSenseCounts).toList, "geneTotalSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.geneTotalAntiSenseCounts).toList, "geneTotalAntiSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.geneExonicCounts).toList, "geneExonicCounts")
+    addTableAndHeatmap(jobs.values.map(_.geneExonicSenseCounts).toList, "geneExonicSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.geneExonicAntiSenseCounts).toList, "geneExonicAntiSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.geneIntronicCounts).toList, "geneIntronicCounts")
+    addTableAndHeatmap(jobs.values.map(_.geneIntronicSenseCounts).toList, "geneIntronicSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.geneIntronicAntiSenseCounts).toList, "geneIntronicAntiSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.mergeExonCounts).toList, "mergeExonCounts")
+    addTableAndHeatmap(jobs.values.map(_.mergeExonSenseCounts).toList, "mergeExonSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.mergeExonAntiSenseCounts).toList, "mergeExonAntiSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.mergeIntronCounts).toList, "mergeIntronCounts")
+    addTableAndHeatmap(jobs.values.map(_.mergeIntronSenseCounts).toList, "mergeIntronSenseCounts")
+    addTableAndHeatmap(jobs.values.map(_.mergeIntronAntiSenseCounts).toList, "mergeIntronAntiSenseCounts")
   }
 }
-- 
GitLab