From 89bc7d9abd154b193772c32c35a997bd7bb8ac0a Mon Sep 17 00:00:00 2001 From: Peter van 't Hof <p.j.van_t_hof@lumc.nl> Date: Mon, 2 Nov 2015 09:30:26 +0100 Subject: [PATCH] Added sunburst plot to mapping and shiva --- .../sasc/biopet/pipelines/gears/gearsSunburst.ssp | 4 ++-- .../sasc/biopet/pipelines/gears/GearsReport.scala | 2 -- .../biopet/pipelines/mapping/MappingReport.scala | 13 +++++++++++-- .../sasc/biopet/pipelines/shiva/ShivaReport.scala | 10 +++++++++- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/public/gears/src/main/resources/nl/lumc/sasc/biopet/pipelines/gears/gearsSunburst.ssp b/public/gears/src/main/resources/nl/lumc/sasc/biopet/pipelines/gears/gearsSunburst.ssp index 0915decbe..0ea325108 100644 --- a/public/gears/src/main/resources/nl/lumc/sasc/biopet/pipelines/gears/gearsSunburst.ssp +++ b/public/gears/src/main/resources/nl/lumc/sasc/biopet/pipelines/gears/gearsSunburst.ssp @@ -57,10 +57,10 @@ #{ val rawreport = Map("kraken" -> summary.getValue(sampleId, libId, "gears", "stats", "krakenreport")) - val bla = ConfigUtils.mapToJson(rawreport) + val jsonReport = ConfigUtils.mapToJson(rawreport) }# - var krakenresult = JSON.parse('<%= unescape(bla) %>'); + var krakenresult = JSON.parse('<%= unescape(jsonReport) %>'); loadGears(krakenresult.kraken.classified); </script> diff --git a/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala b/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala index cf9a9c366..f8b367dbb 100644 --- a/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala +++ b/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala @@ -9,8 +9,6 @@ class GearsReport(val root: Configurable) extends ReportBuilderExtension { object GearsReport extends ReportBuilder { - // FIXME: Not yet finished - // TODO: Sample specific: Add summary (sunflare plot) // TODO: Add dustbin analysis (aggregated) // TODO: Add alignment stats per sample for the dustbin analysis diff --git a/public/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MappingReport.scala b/public/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MappingReport.scala index b2f1b7a84..6c8b2b500 100644 --- a/public/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MappingReport.scala +++ b/public/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MappingReport.scala @@ -16,7 +16,7 @@ package nl.lumc.sasc.biopet.pipelines.mapping import nl.lumc.sasc.biopet.utils.config.Configurable -import nl.lumc.sasc.biopet.core.report.{ ReportBuilderExtension, ReportSection, ReportPage, ReportBuilder } +import nl.lumc.sasc.biopet.core.report._ import nl.lumc.sasc.biopet.pipelines.bammetrics.BammetricsReport import nl.lumc.sasc.biopet.pipelines.flexiprep.FlexiprepReport @@ -33,6 +33,11 @@ object MappingReport extends ReportBuilder { /** Name of report */ val reportName = "Mapping Report" + override def extFiles = super.extFiles ++ List("js/gears.js") + .map(x => ExtFile("/nl/lumc/sasc/biopet/pipelines/gears/report/ext/" + x, x)) + + def krakenExecuted = summary.getValue(sampleId, libId, "gears", "stats", "krakenreport").isDefined + /** Root page for single BamMetrcis report */ def indexPage = { val skipFlexiprep = summary.getValue(sampleId, libId, "mapping", "settings", "skip_flexiprep").getOrElse(false) == true @@ -48,7 +53,11 @@ object MappingReport extends ReportBuilder { "After QC fastq files" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepOutputfiles.ssp"))) ::: List("Bam files per lib" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/mapping/outputBamfiles.ssp", Map("sampleLevel" -> false)) ), Map()) - ), List( + ) ::: + (if (krakenExecuted) List("Gears - Metagenomics" -> ReportPage(List(), List( + "Sunburst analysis" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/gears/gearsSunburst.ssp" + )), Map())) + else Nil), List( "Report" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/mapping/mappingFront.ssp") ) ::: bamMetricsPage.map(_.sections).getOrElse(Nil), Map() diff --git a/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaReport.scala b/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaReport.scala index 7e32d72fe..8749071df 100644 --- a/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaReport.scala +++ b/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaReport.scala @@ -36,6 +36,9 @@ class ShivaReport(val root: Configurable) extends ReportBuilderExtension { /** Object for report generation for Shiva pipeline */ object ShivaReport extends MultisampleReportBuilder { + override def extFiles = super.extFiles ++ List("js/gears.js") + .map(x => ExtFile("/nl/lumc/sasc/biopet/pipelines/gears/report/ext/" + x, x)) + /** Root page for the shiva report */ def indexPage = { val regions = regionsPage @@ -136,10 +139,15 @@ object ShivaReport extends MultisampleReportBuilder { /** Library page */ def libraryPage(sampleId: String, libId: String, args: Map[String, Any]): ReportPage = { + def krakenExecuted = summary.getValue(Some(sampleId), Some(libId), "gears", "stats", "krakenreport").isDefined + ReportPage(List( "Alignment" -> BammetricsReport.bamMetricsPage(summary, Some(sampleId), Some(libId)), "QC" -> FlexiprepReport.flexiprepPage - ), List( + ) ::: (if (krakenExecuted) List("Gears - Metagenomics" -> ReportPage(List(), List( + "Sunburst analysis" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/gears/gearsSunburst.ssp" + )), Map())) + else Nil), List( "Alignment" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp"), "QC reads" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"), "QC bases" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp") -- GitLab