diff --git a/public/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReport.scala b/public/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReport.scala index 2473089933b10da19ccde3100913e6213ef63546..834c68d0cb94cd58e2f5df69d64cf39e5616e7d4 100644 --- a/public/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReport.scala +++ b/public/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BammetricsReport.scala @@ -14,7 +14,7 @@ object BammetricsReport extends ReportBuilder { val reportName = "Bam Metrics" - def indexPage = ReportPage(Map(), List(), Map()) + def indexPage = ReportPage(List(), List(), Map()) def bamMetricsPage(summary: Summary, sampleId: Option[String], libId: Option[String]) = { val targets = ( @@ -27,8 +27,8 @@ object BammetricsReport extends ReportBuilder { } ReportPage( - (if (targets.isEmpty) Map() else Map("Targets" -> ReportPage( - Map(), + (if (targets.isEmpty) List() else List("Targets" -> ReportPage( + List(), targets.map(t => (t -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/covstatsPlot.ssp", Map("target" -> t)))), Map()))), List( diff --git a/public/biopet-framework/src/main/resources/nl/lumc/sasc/biopet/core/report/main.ssp b/public/biopet-framework/src/main/resources/nl/lumc/sasc/biopet/core/report/main.ssp index 7af4fb1daf3f0fa383b4f006f459d1ee19a6bc46..2bf9f3f8a6d8f15eb477a912741f1f4556c58bac 100644 --- a/public/biopet-framework/src/main/resources/nl/lumc/sasc/biopet/core/report/main.ssp +++ b/public/biopet-framework/src/main/resources/nl/lumc/sasc/biopet/core/report/main.ssp @@ -36,7 +36,11 @@ } def getSubPage(path:List[String]): ReportPage = { - path.foldLeft(indexPage)(_.subPages(_)) + path.foldLeft(indexPage)((c, p) => { + val foundPages = c.subPages.filter(_._1 == p) + require(foundPages.size == 1, "Name of page not found or duplicate is found, page:: " + p + " in path: " + path) + foundPages.head._2 + }) } }# <!DOCTYPE html> diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/report/MultisampleReportBuilder.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/report/MultisampleReportBuilder.scala index 7b0d693cf38544479a989a81ca88ed0cac400616..3b43b435bf5a60862506fec8c41b99d499eb530b 100644 --- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/report/MultisampleReportBuilder.scala +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/report/MultisampleReportBuilder.scala @@ -23,7 +23,7 @@ trait MultisampleReportBuilder extends ReportBuilder { def generateSamplesPage(args: Map[String, Any]): ReportPage = { val samplePages = summary.samples .map(sampleId => (sampleId -> samplePage(sampleId, args ++ Map("sampleId" -> Some(sampleId))))) - .toMap + .toList ReportPage(samplePages, samplesSections, args) } @@ -35,7 +35,7 @@ trait MultisampleReportBuilder extends ReportBuilder { val libPages = summary.libraries(sampleId) .map(libId => (libId -> libraryPage(sampleId, libId, args ++ Map("libId" -> Some(libId))))) - .toMap + .toList ReportPage(libPages, libririesSections, args) } } diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/report/ReportPage.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/report/ReportPage.scala index b2c0ff1f9667f6b106d077ed404e903798b7a59e..533c18384cda6ea60dbce4c587f8224611568ccf 100644 --- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/report/ReportPage.scala +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/report/ReportPage.scala @@ -3,6 +3,6 @@ package nl.lumc.sasc.biopet.core.report /** * Created by pjvan_thof on 3/27/15. */ -case class ReportPage(subPages: Map[String, ReportPage], +case class ReportPage(subPages: List[(String, ReportPage)], sections: List[(String, ReportSection)], args: Map[String, Any]) diff --git a/public/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepReport.scala b/public/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepReport.scala index 2857a7be4ac9abbff3708e20bb22761c71b490ad..5981f2a33f3bd166f72a27337677cbeabc79a622 100644 --- a/public/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepReport.scala +++ b/public/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepReport.scala @@ -12,7 +12,7 @@ import nl.lumc.sasc.biopet.extensions.rscript.StackedBarPlot object FlexiprepReport extends ReportBuilder { val reportName = "Flexiprep" - def indexPage = ReportPage(Map( + def indexPage = ReportPage(List( "QC" -> flexiprepPage ), List( "Report" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepFront.ssp") @@ -21,7 +21,7 @@ object FlexiprepReport extends ReportBuilder { ) def flexiprepPage = ReportPage( - Map(), + List(), List( "Read Summary" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"), "Base Summary" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp"), 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 fe830808034f0a1e34e6bfaacc7a53bb9dd8416f..f61859c1975f5e477f1d539779a7025f2c0844f0 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 @@ -25,10 +25,10 @@ object ShivaReport extends MultisampleReportBuilder { def indexPage = { val regions = regionsPage ReportPage( - Map("Samples" -> generateSamplesPage(pageArgs)) ++ + List("Samples" -> generateSamplesPage(pageArgs)) ++ (if (regions.isDefined) Map(regions.get) else Map()) ++ Map("Files" -> filesPage, - "Versions" -> ReportPage(Map(), List(( + "Versions" -> ReportPage(List(), List(( "Executables" -> ReportSection("/nl/lumc/sasc/biopet/core/report/executables.ssp" ))), Map()) ), @@ -58,7 +58,7 @@ object ShivaReport extends MultisampleReportBuilder { def createPage(name: String, amplicon: Boolean = false): ReportPage = { ReportPage( - Map(), + List(), List("Coverage" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/covstatsMultiTable.ssp")), Map("target" -> name) ) @@ -76,16 +76,17 @@ object ShivaReport extends MultisampleReportBuilder { } if (regionPages.nonEmpty) Some("Regions" -> ReportPage( - Map(), + List(), regionPages.map(p => (p._1 -> ReportSection( "/nl/lumc/sasc/biopet/pipelines/bammetrics/covstatsMultiTable.ssp", Map("target" -> p._1.stripSuffix(" (Amplicon)")) ))).toList.sortBy(_._1), Map()) - ) else None + ) + else None } - def filesPage = ReportPage(Map(), List( + def filesPage = ReportPage(List(), List( "Input fastq files" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepInputfiles.ssp"), "After QC fastq files" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepOutputfiles.ssp"), "Bam files per lib" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/mapping/outputBamfiles.ssp", Map("sampleLevel" -> false)), @@ -95,7 +96,7 @@ object ShivaReport extends MultisampleReportBuilder { ), Map()) def samplePage(sampleId: String, args: Map[String, Any]) = { - ReportPage(Map( + ReportPage(List( "Libraries" -> generateLibraryPage(args), "Alignment" -> BammetricsReport.bamMetricsPage(summary, Some(sampleId), None), "Files" -> filesPage @@ -110,7 +111,7 @@ object ShivaReport extends MultisampleReportBuilder { } def libraryPage(sampleId: String, libId: String, args: Map[String, Any]) = { - ReportPage(Map( + ReportPage(List( "Alignment" -> BammetricsReport.bamMetricsPage(summary, Some(sampleId), Some(libId)), "QC" -> FlexiprepReport.flexiprepPage ), List(