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 90395ff940b6ae7383470ba5a9a0ffca59275546..c638c84c65601beb98f312ca73c572cd5c5311cf 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() }