diff --git a/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/insertSize.ssp b/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/insertSize.ssp index 2d96fda63e8f802b299af2f1831f4f3bdb1cb8db..eb7ab547a2ba05a41f201adaa0e4cf0611334ba9 100644 --- a/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/insertSize.ssp +++ b/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/insertSize.ssp @@ -89,7 +89,7 @@ #if (libs.head != libId) #end #if (!sampleLevel) ${libName} #end #{ - val results: Map[String, Option[Any]] = insertSizeTableResults(sample.id, libId) + val results: Map[String, Option[Any]] = insertSizeTableResults(sample.id, libId) }# #for (field <- fields) ${results(field)} diff --git a/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/rnaHistogram.ssp b/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/rnaHistogram.ssp index 282668d753a2feb01b216046020a6811759586b9..9e7285314d05e891f3a79b01b5bad43d11722804 100644 --- a/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/rnaHistogram.ssp +++ b/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/rnaHistogram.ssp @@ -20,6 +20,8 @@ <%@ var runId: Int %> <%@ var allSamples: Seq[Sample] %> <%@ var allLibraries: Seq[Library] %> +<%@ var rnaHistogramPlotTables: Option[Array[Map[String, Array[Any]]]] %> +<%@ var rnaHistogramTableResults: Map[(Int, Int), Map[String, Option[Any]]] %> #{ val samples = sampleId match { case Some(id) => allSamples.filter(_.id == id).toList @@ -39,7 +41,7 @@ #end #if (showPlot) - #{ BammetricsReport.rnaHistogramPlot(outputDir, "rna", summary, !sampleLevel, sampleId = sampleId, libraryId = libId) }# + #{ BammetricsReport.rnaHistogramPlot(outputDir, "rna", rnaHistogramPlotTables.getOrElse(Array(Map("x" -> Array(""))))) }#
@@ -79,8 +81,7 @@ #if (libs.head != libId) #end #if (!sampleLevel) ${libName} #end #{ - val statsPaths = fields.map(x => x -> List("metrics", x.toUpperCase)).toMap - val results = summary.getStatKeys(runId, "bammetrics", "rna", sample = sample.id, library = libId.map(LibraryId).getOrElse(NoLibrary), keyValues = statsPaths) + val results = rnaHistogramTableResults(sample.id, libId) }# #for (field <- fields) ${results(field)} diff --git a/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/wgsHistogram.ssp b/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/wgsHistogram.ssp index 86071e3ece909ff9c4b0c59a95dd77cfbcb352b3..65a52811bf78dab263d59ed38503eb40d2d6c9c2 100644 --- a/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/wgsHistogram.ssp +++ b/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/wgsHistogram.ssp @@ -19,6 +19,8 @@ <%@ var fields: List[String] = List("mean_coverage", "pct_5x", "pct_10x", "pct_15x", "pct_20x", "pct_25x", "pct_30x", "pct_40x", "pct_50x", "pct_60x", "pct_70x", "pct_80x", "pct_90x", "pct_100x")%> <%@ var allSamples: Seq[Sample] %> <%@ var allLibraries: Seq[Library] %> +<%@ var wgsHistogramPlotTables: Option[Array[Map[String, Array[Any]]]] %> +<%@ var wgsHistogramTableResults: Map[(Int, Int), Map[String, Option[Any]]] %> #{ val samples = sampleId match { case Some(id) => allSamples.filter(_.id == id).toList @@ -38,7 +40,7 @@ #end #if (showPlot) - #{ BammetricsReport.wgsHistogramPlot(outputDir, "wgs", summary, !sampleLevel, sampleId = sampleId, libraryId = libId) }# + #{ BammetricsReport.wgsHistogramPlot(outputDir, "rna", wgsHistogramPlotTables.getOrElse(Array(Map("x" -> Array(""))))) }#
@@ -78,9 +80,8 @@ #if (libs.head != libId) #end #if (!sampleLevel) ${libName} #end #{ - val statsPaths = fields.map(x => x -> List("metrics", x.toUpperCase)).toMap - val results = summary.getStatKeys(runId, "bammetrics", "wgs", sample = sample.id, library = libId.map(LibraryId).getOrElse(NoLibrary), keyValues = statsPaths) - }# + val results = wgsHistogramTableResults(sample.id, libId) + }# #for (field <- fields) ${results(field)} #end diff --git a/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReportPage.scala b/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReportPage.scala index 0582cc7a9e1116b33c94a3d3ef74ce2b1f1ea8b3..8f425f646f1a1d5acf4ed9ae576e3c381a6d1c81 100644 --- a/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReportPage.scala +++ b/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReportPage.scala @@ -144,5 +144,71 @@ object BammetricsReportPage { "libId" -> libId ) } + def rnaHistogramValues(summary: SummaryDb, + runId: Int, + allSamples: Seq[Sample], + allLibraries: Seq[Library], + sampleId: Option[Int], + libId: Option[Int], + fields: List[String] = List("PF_ALIGNED_BASES", "MEDIAN_5PRIME_BIAS", "MEDIAN_3PRIME_BIAS", "MEDIAN_5PRIME_TO_3PRIME_BIAS"), + sampleLevel: Boolean = false, + showPlot: Boolean = false, + showIntro: Boolean = true, + showTable: Boolean = true): Map[String, Any] = { + + val samples = sampleId match { + case Some(id) => allSamples.filter(_.id == id).toList + case _ => allSamples.toList + } + val rnaHistogramPlotTables: Option[Array[Map[String, Array[Any]]]] = + if (showPlot) + Some(BammetricsReport.rnaHistogramPlotTables(summary, !sampleLevel, sampleId, libId)) + else None + + val statsPaths = fields.map(x => x -> List("metrics", x.toUpperCase)).toMap + val rnaHistogramTableResults = summary.getStatsForLibraries(runId, "bammetrics", "rna", sampleId, statsPaths) + Map( + "rnaHistogramPlotTables" -> rnaHistogramPlotTables, + "rnaHistogramTableResults" -> rnaHistogramTableResults, + "showIntro" -> showIntro, + "showTable" -> showTable, + "showPlot" -> showPlot, + "sampleId" -> sampleId, + "libId" -> libId + ) + } + def wgsHistogramValues(summary: SummaryDb, + runId: Int, + allSamples: Seq[Sample], + allLibraries: Seq[Library], + sampleId: Option[Int], + libId: Option[Int], + fields: List[String] = List("mean_coverage", "pct_5x", "pct_10x", "pct_15x", "pct_20x", "pct_25x", "pct_30x", "pct_40x", "pct_50x", "pct_60x", "pct_70x", "pct_80x", "pct_90x", "pct_100x"), + sampleLevel: Boolean = false, + showPlot: Boolean = false, + showIntro: Boolean = true, + showTable: Boolean = true): Map[String, Any] = { + + val samples = sampleId match { + case Some(id) => allSamples.filter(_.id == id).toList + case _ => allSamples.toList + } + val wgsHistogramPlotTables: Option[Array[Map[String, Array[Any]]]] = + if (showPlot) + Some(BammetricsReport.wgsHistogramPlotTables(summary, !sampleLevel, sampleId, libId)) + else None + + val statsPaths = fields.map(x => x -> List("metrics", x.toUpperCase)).toMap + val wgsHistogramTableResults = summary.getStatsForLibraries(runId, "bammetrics", "wgs", sampleId, statsPaths) + Map( + "wgsHistogramPlotTables" -> wgsHistogramPlotTables, + "wgsHistogramTableResults" -> wgsHistogramTableResults, + "showIntro" -> showIntro, + "showTable" -> showTable, + "showPlot" -> showPlot, + "sampleId" -> sampleId, + "libId" -> libId + ) + } }