diff --git a/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/covstatsPlot.ssp b/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/covstatsPlot.ssp
index 0440793afc561ea593d619c78a2eb91f84e97fbd..10ca7cc6b098f7f7b23b6eee54cf67301d781128 100644
--- a/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/covstatsPlot.ssp
+++ b/bammetrics/src/main/resources/nl/lumc/sasc/biopet/pipelines/bammetrics/covstatsPlot.ssp
@@ -7,6 +7,7 @@
#import(scala.concurrent.Await)
#import(scala.concurrent.duration.Duration)
#import(nl.lumc.sasc.biopet.pipelines.bammetrics.BammetricsReport)
+#import(nl.lumc.sasc.biopet.utils.summary.db.Schema)
#import(java.io.File)
<%@ var summary: SummaryDb %>
<%@ var sampleId: Option[Int] %>
@@ -16,17 +17,15 @@
<%@ var target: Option[String] %>
<%@ var runId: Int %>
<%@ var fields: List[String] = List("mean", "median", "max", "horizontal", "frac_min_10x", "frac_min_20x", "frac_min_30x", "frac_min_40x", "frac_min_50x") %>
+<%@ var plotFile: Option[Schema.File] %>
+<%@ var values: Map[String, Option[Any]] %>
#{
val moduleName = target.get + "_cov_stats"
- val statsPaths = fields.map(x => x -> List("coverage", "_all", x)).toMap
- val plotFile = Await.result(summary.getFile(runId, PipelineName(metricsTag), ModuleName(moduleName), sampleId.map(SampleId).get, libId.map(LibraryId).getOrElse(NoLibrary), "plot"), Duration.Inf)
val originalPlot = new File(plotFile.get.path)
val plot = new File(outputDir, target.get + "_cov_stats.png")
- val values = summary.getStatKeys(runId, PipelineName(metricsTag), ModuleName(moduleName), sampleId.map(SampleId).get, libId.map(LibraryId).getOrElse(NoLibrary), statsPaths)
-
- if (originalPlot.exists()) IoUtils.copyFile(originalPlot, plot)
+ if (originalPlot.exists()) IoUtils.copyFile(originalPlot, plot)
}#
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 65a52811bf78dab263d59ed38503eb40d2d6c9c2..f2afc6ab527b9f6c0a35340ff4c35739993737ed 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
@@ -85,6 +85,7 @@
#for (field <- fields)
${results(field)} |
#end
+ #end
#end
#end
diff --git a/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReport.scala b/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReport.scala
index c9bcf9ed45c1885beaa94f6af684ca981220016f..3df7dfce75d2e68a886d641dc8ba816b192f7e10 100644
--- a/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReport.scala
+++ b/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReport.scala
@@ -23,13 +23,11 @@ import nl.lumc.sasc.biopet.core.report.{
ReportPage,
ReportSection
}
-import nl.lumc.sasc.biopet.pipelines.bammetrics.BammetricsReport.mappingQualityPlotTables
import nl.lumc.sasc.biopet.utils.ConfigUtils
import nl.lumc.sasc.biopet.utils.rscript.{LinePlot, StackedBarPlot}
import nl.lumc.sasc.biopet.utils.summary.db.SummaryDb
import nl.lumc.sasc.biopet.utils.summary.db.SummaryDb.Implicts._
import nl.lumc.sasc.biopet.utils.summary.db.SummaryDb._
-import nl.lumc.sasc.biopet.utils.summary.db.Schema._
import scala.collection.mutable.ArrayBuffer
import scala.concurrent.{Await, Future}
@@ -71,11 +69,20 @@ object BammetricsReport extends ReportBuilder {
)
}
+ /** Generates values for bamMetricsPage */
+ def bamMetricsPageValues(summary: SummaryDb,
+ sampleId: Option[Int],
+ libId: Option[Int],
+ metricsTag: String = "bammetrics"): Map[String, Any] = {
+ Map("" -> "")
+ }
+
/** Generates a page with alignment stats */
def bamMetricsPage(summary: SummaryDb,
sampleId: Option[Int],
libId: Option[Int],
- metricsTag: String = "bammetrics"): Future[ReportPage] = Future {
+ metricsTag: String = "bammetrics"): Future[ReportPage] = {
+
val wgsExecuted = summary.getStatsSize(runId,
metricsTag,
"wgs",
@@ -115,45 +122,55 @@ object BammetricsReport extends ReportBuilder {
case _ => Nil
}
- ReportPage(
- if (targets.isEmpty) List()
- else
+ val covstatsPlotValuesArray = ArrayBuffer[(String, Map[String,Any])]()
+ for (t <- targets) {
+ covstatsPlotValuesArray += Tuple2(t,BammetricsReportPage.covstatsPlotValues(summary, runId, sampleId, libId, Some(t)))
+ }
+
+ val covstatsPlotValuesList = covstatsPlotValuesArray.toList
+
+
+ Future {
+ ReportPage(
+ if (targets.isEmpty) List()
+ else
+ List(
+ "Targets" -> Future.successful(
+ ReportPage(
+ List(),
+ covstatsPlotValuesList.map(covstats =>
+ covstats._1 -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/covstatsPlot.ssp",
+ covstats._2)),
+ Map()))),
List(
- "Targets" -> Future.successful(
- ReportPage(
- List(),
- targets.map(t =>
- t -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/covstatsPlot.ssp",
- Map("target" -> Some(t)))),
- Map()))),
- List(
- "Summary" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp"),
- "Mapping Quality" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/bammetrics/mappingQuality.ssp",
- Map("showPlot" -> true)),
- "Clipping" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/clipping.ssp",
- Map("showPlot" -> true))
- ) ++
- (if (insertsizeMetrics)
- List(
- "Insert Size" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/bammetrics/insertSize.ssp",
- Map("showPlot" -> true)))
- else Nil) ++ (if (wgsExecuted)
- List(
- "Whole genome coverage" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/bammetrics/wgsHistogram.ssp",
- Map("showPlot" -> true)))
- else Nil) ++
- (if (rnaExecuted)
- List(
- "Rna coverage" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/bammetrics/rnaHistogram.ssp",
- Map("showPlot" -> true)))
- else Nil),
- Map("metricsTag" -> metricsTag)
- )
+ "Summary" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp"),
+ "Mapping Quality" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/bammetrics/mappingQuality.ssp",
+ Map("showPlot" -> true)),
+ "Clipping" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/clipping.ssp",
+ Map("showPlot" -> true))
+ ) ++
+ (if (insertsizeMetrics)
+ List(
+ "Insert Size" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/bammetrics/insertSize.ssp",
+ Map("showPlot" -> true)))
+ else Nil) ++ (if (wgsExecuted)
+ List(
+ "Whole genome coverage" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/bammetrics/wgsHistogram.ssp",
+ Map("showPlot" -> true)))
+ else Nil) ++
+ (if (rnaExecuted)
+ List(
+ "Rna coverage" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/bammetrics/rnaHistogram.ssp",
+ Map("showPlot" -> true)))
+ else Nil),
+ Map("metricsTag" -> metricsTag)
+ )
+ }
}
/**
@@ -541,4 +558,4 @@ object BammetricsReport extends ReportBuilder {
}
writer.close()
}
-}
\ No newline at end of file
+}
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 8f425f646f1a1d5acf4ed9ae576e3c381a6d1c81..1e2559314cf88e2b45d1678329d3fd1c5ff14a95 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
@@ -2,10 +2,14 @@ package nl.lumc.sasc.biopet.pipelines.bammetrics
import nl.lumc.sasc.biopet.pipelines.bammetrics.BammetricsReport.mappingQualityPlotTables
import nl.lumc.sasc.biopet.utils.summary.db.Schema.{Library, Sample}
-import nl.lumc.sasc.biopet.utils.summary.db.SummaryDb
+import nl.lumc.sasc.biopet.utils.summary.db.{Schema, SummaryDb}
import nl.lumc.sasc.biopet.utils.summary.db.SummaryDb.Implicts._
import nl.lumc.sasc.biopet.utils.summary.db.SummaryDb._
+import scala.concurrent.Await
+import scala.concurrent.duration.Duration
+import java.io.File
+
object BammetricsReportPage {
def alignmentSummaryValues(summary: SummaryDb,
runId: Int,
@@ -99,7 +103,8 @@ object BammetricsReportPage {
else None
val statsPaths = fields.map(x => x -> List("clipping", "general", x)).toMap
- val clippingTableResults = summary.getStatsForLibraries(runId, "bammetrics", "bamstats", sampleId, statsPaths)
+ val clippingTableResults =
+ summary.getStatsForLibraries(runId, "bammetrics", "bamstats", sampleId, statsPaths)
Map(
"clippingPlotTables" -> clippingPlotTables,
"clippingTableResults" -> clippingTableResults,
@@ -117,7 +122,8 @@ object BammetricsReportPage {
allLibraries: Seq[Library],
sampleId: Option[Int],
libId: Option[Int],
- fields: List[String] = List("mean_insert_size", "standard_deviation", "median_insert_size"),
+ fields: List[String] =
+ List("mean_insert_size", "standard_deviation", "median_insert_size"),
sampleLevel: Boolean = false,
showPlot: Boolean = false,
showIntro: Boolean = true,
@@ -133,7 +139,11 @@ object BammetricsReportPage {
else None
val statsPaths = fields.map(x => x -> List("metrics", x.toUpperCase)).toMap
- val insertSizeTableResults = summary.getStatsForLibraries(runId, "bammetrics", "CollectInsertSizeMetrics", sampleId, statsPaths)
+ val insertSizeTableResults = summary.getStatsForLibraries(runId,
+ "bammetrics",
+ "CollectInsertSizeMetrics",
+ sampleId,
+ statsPaths)
Map(
"insertSizePlotTables" -> insertSizePlotTables,
"insertSizeTableResults" -> insertSizeTableResults,
@@ -145,16 +155,19 @@ object BammetricsReportPage {
)
}
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] = {
+ 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
@@ -166,7 +179,8 @@ object BammetricsReportPage {
else None
val statsPaths = fields.map(x => x -> List("metrics", x.toUpperCase)).toMap
- val rnaHistogramTableResults = summary.getStatsForLibraries(runId, "bammetrics", "rna", sampleId, statsPaths)
+ val rnaHistogramTableResults =
+ summary.getStatsForLibraries(runId, "bammetrics", "rna", sampleId, statsPaths)
Map(
"rnaHistogramPlotTables" -> rnaHistogramPlotTables,
"rnaHistogramTableResults" -> rnaHistogramTableResults,
@@ -183,7 +197,20 @@ object BammetricsReportPage {
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"),
+ 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,
@@ -199,7 +226,8 @@ object BammetricsReportPage {
else None
val statsPaths = fields.map(x => x -> List("metrics", x.toUpperCase)).toMap
- val wgsHistogramTableResults = summary.getStatsForLibraries(runId, "bammetrics", "wgs", sampleId, statsPaths)
+ val wgsHistogramTableResults =
+ summary.getStatsForLibraries(runId, "bammetrics", "wgs", sampleId, statsPaths)
Map(
"wgsHistogramPlotTables" -> wgsHistogramPlotTables,
"wgsHistogramTableResults" -> wgsHistogramTableResults,
@@ -210,5 +238,41 @@ object BammetricsReportPage {
"libId" -> libId
)
}
+ def covstatsPlotValues(summary: SummaryDb,
+ runId: Int,
+ sampleId: Option[Int],
+ libId: Option[Int],
+ target: Option[String],
+ metricsTag: String = "bammetrics",
+ fields: List[String] = List("mean",
+ "median",
+ "max",
+ "horizontal",
+ "frac_min_10x",
+ "frac_min_20x",
+ "frac_min_30x",
+ "frac_min_40x",
+ "frac_min_50x")): Map[String, Any] = {
+ val moduleName = target.get + "_cov_stats"
+ val plotFile: Option[Schema.File] = Await.result(
+ summary.getFile(runId,
+ PipelineName(metricsTag),
+ ModuleName(moduleName),
+ sampleId.map(SampleId).get,
+ libId.map(LibraryId).getOrElse(NoLibrary),
+ "plot"),
+ Duration.Inf
+ )
+ val statsPaths = fields.map(x => x -> List("coverage", "_all", x)).toMap
+ val values: Map[String, Option[Any]] = summary.getStatKeys(
+ runId,
+ PipelineName(metricsTag),
+ ModuleName(moduleName),
+ sampleId.map(SampleId).get,
+ libId.map(LibraryId).getOrElse(NoLibrary),
+ statsPaths)
+ Map("plotFile" -> plotFile, "values" -> values,
+ "target" -> target,
+ "metricsTag" -> metricsTag)
+ }
}
-
diff --git a/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepReport.scala b/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepReport.scala
index 06cefc82c99e64a2daa7eda38feeb3e174428af8..a5dd8f4a07b3ab569d32e8a9b370ff00fbb7577e 100644
--- a/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepReport.scala
+++ b/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepReport.scala
@@ -53,36 +53,36 @@ object FlexiprepReport extends ReportBuilder {
/** Index page for a flexiprep report */
def indexPage: Future[ReportPage] = {
val flexiprepPageSummaries = this.flexiprepPageSummaries(summary, sampleId.get, libId.get)
- this.flexiprepPage(flexiprepPageSummaries).map {
- page =>
- ReportPage(
- Nil,
- List(
- "Report" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepFront.ssp")
- ) ::: page.sections,
- Map())
- }}
+ this.flexiprepPage(flexiprepPageSummaries).map { page =>
+ ReportPage(
+ Nil,
+ List(
+ "Report" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepFront.ssp")
+ ) ::: page.sections,
+ Map())
+ }
+ }
+
/** Generate a QC report page for 1 single library, sampleId and libId must be defined in the arguments */
def flexiprepPageSummaries(summary: SummaryDb,
- sampleId: Int,
- libId: Int): Map[String, Map[String, Any]] = {
+ sampleId: Int,
+ libId: Int): Map[String, Map[String, Any]] = {
val flexiprepReadSummary: Map[String, Any] = FlexiprepReadSummary.values(summary,
- runId,
- samples,
- libraries,
- sampleId,
- libId,
- multisample = false)
- val flexiprepBaseSummary: Map[String,Any] = FlexiprepBaseSummary.values(summary,
- runId,
- samples,
- libraries,
- sampleId,
- libId,
- multisample = false)
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ multisample = false)
+ val flexiprepBaseSummary: Map[String, Any] = FlexiprepBaseSummary.values(summary,
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ multisample = false)
Map("flexiprepReadSummary" -> flexiprepReadSummary,
- "flexiprepBaseSummary" -> flexiprepBaseSummary
- )
+ "flexiprepBaseSummary" -> flexiprepBaseSummary)
}
def flexiprepPage(summaries: Map[String, Map[String, Any]]): Future[ReportPage] = {
diff --git a/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala b/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala
index 1e606fe971793c0fa7560702a4c5f1b6d833a32e..af68d532efe42253e88c3c25209c669c9809fa7a 100644
--- a/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala
+++ b/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala
@@ -345,10 +345,10 @@ object GearsReport extends MultisampleReportBuilder {
val flexiprepReportPage =
if (flexiprepExecuted) {
- val flexiprepPageSummaries = FlexiprepReport.flexiprepPageSummaries(summary,sampleId,libId)
+ val flexiprepPageSummaries =
+ FlexiprepReport.flexiprepPageSummaries(summary, sampleId, libId)
Some("QC" -> FlexiprepReport.flexiprepPage(flexiprepPageSummaries))
- }
- else None
+ } else None
val centrifugePageAllMappingsKronaPlot = GearsKronaPlot.values(summary,
runId,
diff --git a/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMappingReport.scala b/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMappingReport.scala
index ba1c3f5928390de1de8526ef546dec4d3812bc17..8f3d08fb871cceeb47931a4f1a2495bb6330ee6b 100644
--- a/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMappingReport.scala
+++ b/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMappingReport.scala
@@ -14,9 +14,18 @@
*/
package nl.lumc.sasc.biopet.pipelines.mapping
-import nl.lumc.sasc.biopet.core.report.{MultisampleReportBuilder, ReportBuilderExtension, ReportPage, ReportSection}
+import nl.lumc.sasc.biopet.core.report.{
+ MultisampleReportBuilder,
+ ReportBuilderExtension,
+ ReportPage,
+ ReportSection
+}
import nl.lumc.sasc.biopet.pipelines.bammetrics.{BammetricsReport, BammetricsReportPage}
-import nl.lumc.sasc.biopet.pipelines.flexiprep.{FlexiprepReadSummary,FlexiprepBaseSummary, FlexiprepReport}
+import nl.lumc.sasc.biopet.pipelines.flexiprep.{
+ FlexiprepReadSummary,
+ FlexiprepBaseSummary,
+ FlexiprepReport
+}
import nl.lumc.sasc.biopet.pipelines.gears.GearsKronaPlot
import nl.lumc.sasc.biopet.utils.config.Configurable
import nl.lumc.sasc.biopet.utils.summary.db.SummaryDb.Implicts._
@@ -50,27 +59,27 @@ trait MultisampleMappingReportTrait extends MultisampleReportBuilder {
override def extFiles =
super.extFiles ++ List("js/gears.js",
- "js/krona-2.0.js",
- "img/krona/loading.gif",
- "img/krona/hidden.png",
- "img/krona/favicon.ico")
+ "js/krona-2.0.js",
+ "img/krona/loading.gif",
+ "img/krona/hidden.png",
+ "img/krona/favicon.ico")
.map(x => ExtFile("/nl/lumc/sasc/biopet/pipelines/gears/report/ext/" + x, x))
/** Root page for the carp report */
def indexPage: Future[ReportPage] = {
val krakenExecuted = Await.result(summary.getStatsSize(runId,
- "gearskraken",
- "krakenreport",
- library = NoLibrary,
- mustHaveSample = true),
- Duration.Inf) >= 1
+ "gearskraken",
+ "krakenreport",
+ library = NoLibrary,
+ mustHaveSample = true),
+ Duration.Inf) >= 1
val centrifugeExecuted = Await.result(summary.getStatsSize(runId,
- "gearscentrifuge",
- "centrifuge_report",
- library = NoLibrary,
- mustHaveSample = true),
- Duration.Inf) >= 1
+ "gearscentrifuge",
+ "centrifuge_report",
+ library = NoLibrary,
+ mustHaveSample = true),
+ Duration.Inf) >= 1
val wgsExecuted = Await.result(
summary.getStatsSize(runId, "bammetrics", "wgs", library = NoLibrary, mustHaveSample = true),
Duration.Inf) >= 1
@@ -79,109 +88,151 @@ trait MultisampleMappingReportTrait extends MultisampleReportBuilder {
Duration.Inf) >= 1
val insertsizeExecuted = summary
.getStatsForSamples(runId,
- "bammetrics",
- "CollectInsertSizeMetrics",
- keyValues = Map("metrics" -> List("metrics")))
+ "bammetrics",
+ "CollectInsertSizeMetrics",
+ keyValues = Map("metrics" -> List("metrics")))
.exists(_._2("metrics").isDefined)
val mappingExecuted = Await.result(
summary.getStatsSize(runId, "mapping", NoModule, mustHaveLibrary = true),
Duration.Inf) >= 1
val mappingSettings = summary.getSettingsForLibraries(runId,
- "mapping",
- NoModule,
- keyValues =
- Map("paired" -> List("paired")))
+ "mapping",
+ NoModule,
+ keyValues =
+ Map("paired" -> List("paired")))
val pairedFound = !mappingExecuted || mappingSettings.exists(_._2.exists(_._2 == Option(true)))
val flexiprepExecuted = Await
.result(summary.getStatsSize(runId, "flexiprep", mustHaveLibrary = true), Duration.Inf) >= 1
val krakenDustbinAnalysis = GearsKronaPlot.values(summary,
- runId,
- "gearskraken",
- "krakenreport",
- samples,
- libraries,
- sampleId,
- libId)
+ runId,
+ "gearskraken",
+ "krakenreport",
+ samples,
+ libraries,
+ sampleId,
+ libId)
val centrifugeAnalysis = GearsKronaPlot.values(summary,
- runId,
- "gearscentrifuge",
- "centrifuge_report",
- samples,
- libraries,
- sampleId,
- libId)
+ runId,
+ "gearscentrifuge",
+ "centrifuge_report",
+ samples,
+ libraries,
+ sampleId,
+ libId)
val centrifugeUniqueAnalysis = GearsKronaPlot.values(summary,
- runId,
- "gearscentrifuge",
- "centrifuge_unique_report",
- samples,
- libraries,
- sampleId,
- libId)
+ runId,
+ "gearscentrifuge",
+ "centrifuge_unique_report",
+ samples,
+ libraries,
+ sampleId,
+ libId)
val alignmentReportValues = BammetricsReportPage.alignmentSummaryValues(summary,
- runId,
- samples,
- libraries,
- sampleId,
- libId,
- sampleLevel = true,
- showPlot = true,
- showTable = false)
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ sampleLevel = true,
+ showPlot = true,
+ showTable = false)
val mappingQualityReportValues = BammetricsReportPage.mappingQualityValues(summary,
- runId,
- samples,
- libraries,
- sampleId,
- libId,
- sampleLevel = true,
- showPlot = true,
- showTable = false)
- val clippingReportValues = BammetricsReportPage.clippingValues(summary, runId, samples,
- libraries, sampleId, libId, sampleLevel = true, showPlot = true, showTable = false)
- val insertSizeReportValues = BammetricsReportPage.insertSizeValues(summary, runId, samples,
- libraries, sampleId, libId, sampleLevel = true, showPlot = true, showTable = false)
- val wgsHistogramReportValues = BammetricsReportPage.wgsHistogramValues(summary, runId, samples,
- libraries, sampleId, libId, sampleLevel = true, showPlot = true, showTable = false)
- val rnaHistogramReportValues = BammetricsReportPage.rnaHistogramValues(summary, runId, samples,
- libraries, sampleId, libId, sampleLevel = true, showPlot = true, showTable = false)
- val flexiprepReadSummary = FlexiprepReadSummary.values(summary, runId, samples, libraries, sampleId, libId, showPlot = true, showTable = false)
- val flexiprepBaseSummary = FlexiprepBaseSummary.values(summary, runId, samples, libraries, sampleId, libId, showPlot = true, showTable = false)
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ sampleLevel = true,
+ showPlot = true,
+ showTable = false)
+ val clippingReportValues = BammetricsReportPage.clippingValues(summary,
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ sampleLevel = true,
+ showPlot = true,
+ showTable = false)
+ val insertSizeReportValues = BammetricsReportPage.insertSizeValues(summary,
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ sampleLevel = true,
+ showPlot = true,
+ showTable = false)
+ val wgsHistogramReportValues = BammetricsReportPage.wgsHistogramValues(summary,
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ sampleLevel = true,
+ showPlot = true,
+ showTable = false)
+ val rnaHistogramReportValues = BammetricsReportPage.rnaHistogramValues(summary,
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ sampleLevel = true,
+ showPlot = true,
+ showTable = false)
+ val flexiprepReadSummary = FlexiprepReadSummary.values(summary,
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ showPlot = true,
+ showTable = false)
+ val flexiprepBaseSummary = FlexiprepBaseSummary.values(summary,
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ showPlot = true,
+ showTable = false)
Future {
ReportPage(
List("Samples" -> generateSamplesPage(pageArgs)) ++
(if (krakenExecuted)
- List(
- "Dustbin analysis - Kraken" -> Future.successful(
- ReportPage(List(),
- List("Krona plot" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
- krakenDustbinAnalysis)),
- Map())))
- else Nil) ++ (if (centrifugeExecuted)
- List(
- "Centrifuge analysis" -> Future.successful(ReportPage(
- List(
- "Non-unique" -> Future.successful(ReportPage(
- List(),
- List("All mappings" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
- centrifugeAnalysis)),
- Map()))),
- List("Unique mappings" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
- centrifugeUniqueAnalysis)),
- Map("summaryModuleTag" -> "gearscentrifuge",
- "centrifugeTag" -> Some("centrifuge"))
- )))
- else Nil) ++
+ List(
+ "Dustbin analysis - Kraken" -> Future.successful(
+ ReportPage(List(),
+ List("Krona plot" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
+ krakenDustbinAnalysis)),
+ Map())))
+ else Nil) ++ (if (centrifugeExecuted)
+ List(
+ "Centrifuge analysis" -> Future.successful(ReportPage(
+ List(
+ "Non-unique" -> Future.successful(ReportPage(
+ List(),
+ List("All mappings" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
+ centrifugeAnalysis)),
+ Map()))),
+ List("Unique mappings" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
+ centrifugeUniqueAnalysis)),
+ Map("summaryModuleTag" -> "gearscentrifuge",
+ "centrifugeTag" -> Some("centrifuge"))
+ )))
+ else Nil) ++
List(
"Reference" -> Future.successful(
ReportPage(
List(),
List(
"Reference" -> ReportSection("/nl/lumc/sasc/biopet/core/report/reference.ssp",
- Map("pipeline" -> pipelineName))
+ Map("pipeline" -> pipelineName))
),
Map()))),
List("Report" -> frontSection) ++
@@ -194,36 +245,36 @@ trait MultisampleMappingReportTrait extends MultisampleReportBuilder {
"/nl/lumc/sasc/biopet/pipelines/bammetrics/mappingQuality.ssp",
mappingQualityReportValues),
"Clipping" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/clipping.ssp",
- clippingReportValues)
+ clippingReportValues)
) ++
(if (pairedFound && insertsizeExecuted)
- List(
- "Insert Size" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/bammetrics/insertSize.ssp",
- insertSizeReportValues))
- else Nil) ++
+ List(
+ "Insert Size" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/bammetrics/insertSize.ssp",
+ insertSizeReportValues))
+ else Nil) ++
(if (wgsExecuted)
- List(
- "Whole genome coverage" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/bammetrics/wgsHistogram.ssp",
- wgsHistogramReportValues))
- else Nil) ++
+ List(
+ "Whole genome coverage" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/bammetrics/wgsHistogram.ssp",
+ wgsHistogramReportValues))
+ else Nil) ++
(if (rnaExecuted)
- List(
- "Rna coverage" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/bammetrics/rnaHistogram.ssp",
- rnaHistogramReportValues))
- else Nil) ++
+ List(
+ "Rna coverage" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/bammetrics/rnaHistogram.ssp",
+ rnaHistogramReportValues))
+ else Nil) ++
(if (flexiprepExecuted)
- List(
- "QC reads" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp",
- flexiprepReadSummary),
- "QC bases" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp",
- flexiprepBaseSummary)
- )
- else Nil),
+ List(
+ "QC reads" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp",
+ flexiprepReadSummary),
+ "QC bases" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp",
+ flexiprepBaseSummary)
+ )
+ else Nil),
pageArgs ++ Map("pipeline" -> pipelineName)
)
}
@@ -232,63 +283,97 @@ trait MultisampleMappingReportTrait extends MultisampleReportBuilder {
/** Single sample page */
def samplePage(sampleId: Int, args: Map[String, Any]): Future[ReportPage] = {
val krakenExecuted = Await.result(summary.getStatsSize(runId,
- "gearskraken",
- "krakenreport",
- library = NoLibrary,
- sample = sampleId),
- Duration.Inf) >= 1
+ "gearskraken",
+ "krakenreport",
+ library = NoLibrary,
+ sample = sampleId),
+ Duration.Inf) >= 1
val centrifugeExecuted = Await.result(summary.getStatsSize(runId,
- "gearscentrifuge",
- "centrifuge_report",
- library = NoLibrary,
- sample = sampleId,
- mustHaveSample = true),
- Duration.Inf) >= 1
+ "gearscentrifuge",
+ "centrifuge_report",
+ library = NoLibrary,
+ sample = sampleId,
+ mustHaveSample = true),
+ Duration.Inf) >= 1
val flexiprepExecuted = Await.result(
summary.getStatsSize(runId, "flexiprep", sample = sampleId, mustHaveLibrary = true),
Duration.Inf) >= 1
- val centrifugeAllMappingsReportValues = GearsKronaPlot.values(summary, runId, "gearscentrifuge",
- "centrifuge_report", samples, libraries, sampleId, libId, Some("centrifuge"))
- val centrifugeUniqueMappingsReportValues = GearsKronaPlot.values(summary, runId, "gearscentrifuge",
- "centrifuge_unique_report", samples, libraries, sampleId, libId)
- val dustbinAnalysisReportValues = GearsKronaPlot.values(summary, runId, "gearskraken", "krakenreport",
- samples, libraries, sampleId, libId)
- val alignmentSummaryReportValues = BammetricsReportPage.alignmentSummaryValues(summary, runId,
- samples, libraries, sampleId, libId, showPlot = true)
- val preprocessingReportValues = BammetricsReportPage.alignmentSummaryValues(summary, runId,
- samples, libraries, sampleId, libId, sampleLevel = true)
- val flexiprepReadSummary = FlexiprepReadSummary.values(summary, runId, samples, libraries, sampleId, libId)
- val flexiprepBaseSummary = FlexiprepBaseSummary.values(summary, runId, samples, libraries, sampleId, libId)
+ val centrifugeAllMappingsReportValues = GearsKronaPlot.values(summary,
+ runId,
+ "gearscentrifuge",
+ "centrifuge_report",
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ Some("centrifuge"))
+ val centrifugeUniqueMappingsReportValues = GearsKronaPlot.values(summary,
+ runId,
+ "gearscentrifuge",
+ "centrifuge_unique_report",
+ samples,
+ libraries,
+ sampleId,
+ libId)
+ val dustbinAnalysisReportValues = GearsKronaPlot.values(summary,
+ runId,
+ "gearskraken",
+ "krakenreport",
+ samples,
+ libraries,
+ sampleId,
+ libId)
+ val alignmentSummaryReportValues = BammetricsReportPage.alignmentSummaryValues(summary,
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ showPlot = true)
+ val preprocessingReportValues = BammetricsReportPage.alignmentSummaryValues(summary,
+ runId,
+ samples,
+ libraries,
+ sampleId,
+ libId,
+ sampleLevel = true)
+ val flexiprepReadSummary =
+ FlexiprepReadSummary.values(summary, runId, samples, libraries, sampleId, libId)
+ val flexiprepBaseSummary =
+ FlexiprepBaseSummary.values(summary, runId, samples, libraries, sampleId, libId)
Future {
ReportPage(
List("Libraries" -> generateLibraryPage(args),
- "Alignment" -> BammetricsReport.bamMetricsPage(summary, Some(sampleId), None)) ++
+ "Alignment" -> BammetricsReport.bamMetricsPage(summary, Some(sampleId), None)) ++
(if (centrifugeExecuted)
- List(
- "Centrifuge analysis" -> Future.successful(ReportPage(
- List("Non-unique" -> Future.successful(ReportPage(
- List(),
- List("All mappings" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
- centrifugeAllMappingsReportValues)),
- Map()
- ))),
- List("Unique mappings" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
- centrifugeUniqueMappingsReportValues)),
- Map("summaryPipelineName" -> "gearscentrifuge")
- )))
- else
- Nil) ::: (if (krakenExecuted)
- List(
- "Dustbin analysis" -> Future.successful(
- ReportPage(List(),
- List("Krona Plot" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp", dustbinAnalysisReportValues)),
- Map())))
- else Nil),
+ List(
+ "Centrifuge analysis" -> Future.successful(ReportPage(
+ List(
+ "Non-unique" -> Future.successful(
+ ReportPage(
+ List(),
+ List("All mappings" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
+ centrifugeAllMappingsReportValues)),
+ Map()
+ ))),
+ List("Unique mappings" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
+ centrifugeUniqueMappingsReportValues)),
+ Map("summaryPipelineName" -> "gearscentrifuge")
+ )))
+ else
+ Nil) ::: (if (krakenExecuted)
+ List(
+ "Dustbin analysis" -> Future.successful(
+ ReportPage(List(),
+ List("Krona Plot" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
+ dustbinAnalysisReportValues)),
+ Map())))
+ else Nil),
List(
"Alignment" -> ReportSection(
"/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp",
@@ -298,81 +383,82 @@ trait MultisampleMappingReportTrait extends MultisampleReportBuilder {
preprocessingReportValues)
) ++
(if (flexiprepExecuted)
- List(
- "QC reads" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp", flexiprepReadSummary),
- "QC bases" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp", flexiprepBaseSummary)
- )
- else Nil),
+ List(
+ "QC reads" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp",
+ flexiprepReadSummary),
+ "QC bases" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp",
+ flexiprepBaseSummary)
+ )
+ else Nil),
args
)
}
/** Library page */
- def libraryPage(sampleId: Int,
- libId: Int,
- args: Map[String, Any]): Future[ReportPage] = {
+ def libraryPage(sampleId: Int, libId: Int, args: Map[String, Any]): Future[ReportPage] = {
val krakenExecuted = Await.result(summary.getStatsSize(runId,
- "gearskraken",
- "krakenreport",
- library = libId,
- sample = sampleId),
- Duration.Inf) >= 1
+ "gearskraken",
+ "krakenreport",
+ library = libId,
+ sample = sampleId),
+ Duration.Inf) >= 1
val centrifugeExecuted = Await.result(summary.getStatsSize(runId,
- "gearscentrifuge",
- "centrifuge_report",
- library = libId,
- sample = sampleId,
- mustHaveSample = true),
- Duration.Inf) >= 1
+ "gearscentrifuge",
+ "centrifuge_report",
+ library = libId,
+ sample = sampleId,
+ mustHaveSample = true),
+ Duration.Inf) >= 1
val flexiprepExecuted = Await.result(summary.getStatsSize(runId,
- "flexiprep",
- library = libId,
- sample = sampleId,
- mustHaveLibrary = true),
- Duration.Inf) >= 1
-
+ "flexiprep",
+ library = libId,
+ sample = sampleId,
+ mustHaveLibrary = true),
+ Duration.Inf) >= 1
+ val flexiprepPageSummaries = FlexiprepReport.flexiprepPageSummaries(summary, sampleId, libId)
Future {
ReportPage(
("Alignment" -> BammetricsReport.bamMetricsPage(summary, Some(sampleId), Some(libId))) ::
(if (flexiprepExecuted)
- List("QC" -> FlexiprepReport.flexiprepPage(summary, sampleId, libId))
- else Nil) :::
+ List("QC" -> FlexiprepReport.flexiprepPage(flexiprepPageSummaries))
+ else Nil) :::
(if (centrifugeExecuted)
- List("Centrifuge analysis" -> Future.successful(ReportPage(
- List("Non-unique" -> Future.successful(
- ReportPage(List(),
- List("All mappings" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
- Map("summaryStatsTag" -> "centrifuge_report"))),
- Map()))),
- List("Unique mappings" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
- Map("summaryStatsTag" -> "centrifuge_unique_report"))),
- Map("summaryModuleTag" -> "gearscentrifuge", "centrifugeTag" -> Some("centrifuge"))
- )))
- else Nil) ::: (if (krakenExecuted)
- List(
- "Dustbin analysis" -> Future.successful(
- ReportPage(List(),
- List("Krona Plot" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp")),
- Map())))
- else Nil),
+ List("Centrifuge analysis" -> Future.successful(ReportPage(
+ List("Non-unique" -> Future.successful(
+ ReportPage(List(),
+ List("All mappings" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
+ Map("summaryStatsTag" -> "centrifuge_report"))),
+ Map()))),
+ List("Unique mappings" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp",
+ Map("summaryStatsTag" -> "centrifuge_unique_report"))),
+ Map("summaryModuleTag" -> "gearscentrifuge", "centrifugeTag" -> Some("centrifuge"))
+ )))
+ else
+ Nil) ::: (if (krakenExecuted)
+ List(
+ "Dustbin analysis" -> Future.successful(
+ ReportPage(List(),
+ List("Krona Plot" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp")),
+ Map())))
+ else Nil),
"Alignment" -> ReportSection(
"/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp") ::
(if (flexiprepExecuted)
- List(
- "QC reads" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"),
- "QC bases" -> ReportSection(
- "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp")
- )
- else Nil),
+ List(
+ "QC reads" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"),
+ "QC bases" -> ReportSection(
+ "/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp")
+ )
+ else Nil),
args
)
}
}
}
-}
\ No newline at end of file
+}