From 6075c2488c1372152ff0f881f06f927bedfdc725 Mon Sep 17 00:00:00 2001
From: Peter van 't Hof <p.j.van_t_hof@lumc.nl>
Date: Mon, 16 Feb 2015 19:39:01 +0100
Subject: [PATCH] Added qscripts to final output file

---
 .../biopet/core/summary/WriteSummary.scala    | 23 +++++++++++--------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala
index 90395ff94..c638c84c6 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala
@@ -1,6 +1,6 @@
 package nl.lumc.sasc.biopet.core.summary
 
-import java.io.{FileInputStream, PrintWriter, File}
+import java.io.{ FileInputStream, PrintWriter, File }
 import java.security.MessageDigest
 
 import nl.lumc.sasc.biopet.core.config.Configurable
@@ -40,24 +40,27 @@ class WriteSummary(val root: Configurable) extends InProcessFunction with Config
   }
 
   def run(): Unit = {
-    val writer = new PrintWriter(out)
-
-    val bla = for (((name, sampleId, libraryId), summarizables) <- summaryQScript.summarizables;
-         summarizable <- summarizables) yield {
+    val map = (for (
+      ((name, sampleId, libraryId), summarizables) <- summaryQScript.summarizables;
+      summarizable <- summarizables
+    ) yield {
       val map = Map(name -> parseSummarizable(summarizable))
 
       (sampleId match {
         case Some(sampleId) => Map("samples" -> Map(sampleId -> (libraryId match {
           case Some(libraryId) => Map("libraries" -> Map(libraryId -> map))
-          case _ => map
+          case _               => map
         })))
         case _ => map
-      }, (v1:Any, v2:Any, key:String) => summarizable.resolveSummaryConflict(v1, v2, key))
-    }
-    bla.foldRight(Map[String, Any]())((a, b) => ConfigUtils.mergeMaps(a._1, b, a._2))
+      }, (v1: Any, v2: Any, key: String) => summarizable.resolveSummaryConflict(v1, v2, key))
+    }).foldRight(Map[String, Any]())((a, b) => ConfigUtils.mergeMaps(a._1, b, a._2))
 
-    //TODO: QScript merging
+    val combinedMap = (for (qscript <- summaryQScript.summaryQScripts) yield {
+      ConfigUtils.fileToConfigMap(qscript.summaryFile)
+    }).foldRight(map)((a, b) => ConfigUtils.mergeMaps(a, b))
 
+    val writer = new PrintWriter(out)
+    writer.println(ConfigUtils.mapToJson(combinedMap).spaces2)
     writer.close()
   }
 
-- 
GitLab