Commit 7469830b authored by Peter van 't Hof's avatar Peter van 't Hof
Browse files

Added dummy sections for alignment

parent 6a754e68
#import(nl.lumc.sasc.biopet.core.summary.Summary)
#import(nl.lumc.sasc.biopet.core.report.ReportPage)
<%@ var summary: Summary %>
<%@ var sampleId: Option[String] = None %>
<%@ var libId: Option[String] = None %>
<%@ var sampleLevel: Boolean = false %>
<%@ var rootPath: String %>
#{
val samples = sampleId match {
case Some(sample) => List(sample.toString)
case _ => summary.samples.toList
}
}#
<table>
<thead><tr>
<th>Sample</th>
#if (!sampleLevel) <th>Library</th> #end
<th>Total</th>
<th>Mapped</th>
<th>(%)</th>
<th>Duplicates</th>
<th>(%)</th>
<th>Insert size</th>
</tr></thead>
<tbody>
#for (sample <- samples.toList.sorted)
#{
val libs = (libId, sampleLevel) match {
case (_, true) => List("")
case (Some(libId), _) => List(libId.toString)
case _ => summary.libraries(sample).toList
}
}#
<tr><td rowspan="${libs.size}"><a href="${rootPath}Samples/${sample}/index.html">${sample}</a></td>
#for (libId <- libs)
#if (libs.head != libId) <tr> #end
#if (!sampleLevel) <td><a href="${rootPath}Samples/${sample}/Libraries/${libId}/index.html">${libId}</a></td> #end
#{
val prefixPath = List("samples", sample) ::: (if (libId.isEmpty) Nil else List("libraries", libId)) ::: List("bammetrics", "stats")
val total = summary.getValue((prefixPath ::: List("biopet_flagstat", "All")):_*).getOrElse(0L).asInstanceOf[Long]
val mapped = summary.getValue((prefixPath ::: List("biopet_flagstat", "Mapped")):_*).getOrElse(0L).asInstanceOf[Long]
val duplicates = summary.getValue((prefixPath ::: List("biopet_flagstat", "Duplicates")):_*).getOrElse(0L).asInstanceOf[Long]
val insertsizeMean = summary.getValue((prefixPath ::: List("insert_size_metrics", "mean_insert_size")):_*)
}#
<td>${total}</td>
<td>${mapped}</td>
<td>${mapped.toDouble / total * 100}%</td>
<td>${duplicates}</td>
<td>${duplicates.toDouble / total * 100}%</td>
<td>${insertsizeMean}</td>
</tr>
#end
#end
</tbody>
</table>
\ No newline at end of file
package nl.lumc.sasc.biopet.pipelines.bammetrics
import nl.lumc.sasc.biopet.core.report.{ReportBuilder, ReportPage, ReportSection}
/**
* Created by pjvan_thof on 3/30/15.
*/
object BammetricsReport extends ReportBuilder {
val reportName = "Bam Metrics"
def indexPage = ReportPage(Map(
"Bam Metrics" -> bamMetricsPage
), List(
"Report" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/bamMetricsFront.ssp")
),
Map()
)
def bamMetricsPage = ReportPage(
Map(),
List(
"Summary" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp"),
"Flagstat" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/flagstat.ssp"),
"Insert Size" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/insertSize.ssp"),
"GC Bias" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/gcBias.ssp")
),
Map()
)
// FIXME: Not yet finished
}
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<%@ var summary: Summary %> <%@ var summary: Summary %>
<%@ var sampleId: Option[String] = None %> <%@ var sampleId: Option[String] = None %>
<%@ var libId: Option[String] = None %> <%@ var libId: Option[String] = None %>
<%@ var rootPath: String %>
#{ #{
val samples = sampleId match { val samples = sampleId match {
case Some(sample) => List(sample.toString) case Some(sample) => List(sample.toString)
...@@ -31,11 +32,11 @@ ...@@ -31,11 +32,11 @@
libs.count(summary.getLibraryValue(sample, _, "flexiprep", "settings", "paired").getOrElse(false) == true) libs.count(summary.getLibraryValue(sample, _, "flexiprep", "settings", "paired").getOrElse(false) == true)
} }
}# }#
<tr><td rowspan="${sampleRowspan}">${sample}</td> <tr><td rowspan="${sampleRowspan}"><a href="${rootPath}Samples/${sample}/index.html">${sample}</a></td>
#for (libId <- libs) #for (libId <- libs)
#if (libs.head != libId) <tr> #end #if (libs.head != libId) <tr> #end
#{ val paired = summary.getLibraryValue(sample, libId, "flexiprep", "settings", "paired").getOrElse(false) }# #{ val paired = summary.getLibraryValue(sample, libId, "flexiprep", "settings", "paired").getOrElse(false) }#
<td #if (paired == true) rowspan="2" #end>${libId}</td> <td #if (paired == true) rowspan="2" #end><a href="${rootPath}Samples/${sample}/Libraries/${libId}/index.html">${libId}</a></td>
#{ val reads = if (paired == true) List("R1", "R2") else List("R1") }# #{ val reads = if (paired == true) List("R1", "R2") else List("R1") }#
#for (read <- reads) #for (read <- reads)
#if (read == "R2") </tr><tr> #end #if (read == "R2") </tr><tr> #end
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<%@ var summary: Summary %> <%@ var summary: Summary %>
<%@ var sampleId: Option[String] = None %> <%@ var sampleId: Option[String] = None %>
<%@ var libId: Option[String] = None %> <%@ var libId: Option[String] = None %>
<%@ var rootPath: String %>
#{ #{
val samples = sampleId match { val samples = sampleId match {
case Some(sample) => List(sample.toString) case Some(sample) => List(sample.toString)
...@@ -30,11 +31,11 @@ ...@@ -30,11 +31,11 @@
libs.count(summary.getLibraryValue(sample, _, "flexiprep", "settings", "paired").getOrElse(false) == true) libs.count(summary.getLibraryValue(sample, _, "flexiprep", "settings", "paired").getOrElse(false) == true)
} }
}# }#
<tr><td rowspan="${sampleRowspan}">${sample}</td> <tr><td rowspan="${sampleRowspan}"><a href="${rootPath}Samples/${sample}/index.html">${sample}</a></td>
#for (libId <- libs) #for (libId <- libs)
#if (libs.head != libId) <tr> #end #if (libs.head != libId) <tr> #end
#{ val paired = summary.getLibraryValue(sample, libId, "flexiprep", "settings", "paired").getOrElse(false) }# #{ val paired = summary.getLibraryValue(sample, libId, "flexiprep", "settings", "paired").getOrElse(false) }#
<td #if (paired == true) rowspan="2" #end>${libId}</td> <td #if (paired == true) rowspan="2" #end><a href="${rootPath}Samples/${sample}/Libraries/${libId}/index.html">${libId}</a></td>
#{ val reads = if (paired == true) List("R1", "R2") else List("R1") }# #{ val reads = if (paired == true) List("R1", "R2") else List("R1") }#
#for (read <- reads) #for (read <- reads)
#if (read == "R2") </tr><tr> #end #if (read == "R2") </tr><tr> #end
......
...@@ -8,20 +8,30 @@ import nl.lumc.sasc.biopet.core.report.{ ReportSection, ReportPage, ReportBuilde ...@@ -8,20 +8,30 @@ import nl.lumc.sasc.biopet.core.report.{ ReportSection, ReportPage, ReportBuilde
object FlexiprepReport extends ReportBuilder { object FlexiprepReport extends ReportBuilder {
val reportName = "Flexiprep" val reportName = "Flexiprep"
def indexPage = { def indexPage = ReportPage(Map(
ReportPage(Map(), List( "QC" -> flexiprepPage
"Read Summary" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"), ), List(
"Base Summary" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp"), "Report" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepFront.ssp")
fastqcPlotSection("Base quality", "plot_per_base_quality"), ),
fastqcPlotSection("Sequence quality", "plot_per_sequence_quality"), Map()
fastqcPlotSection("Base GC content", "plot_per_base_gc_content"), )
fastqcPlotSection("Sequence GC content", "plot_per_sequence_gc_content"),
fastqcPlotSection("Base seqeunce content", "plot_per_base_sequence_content"), def flexiprepPage = ReportPage(
fastqcPlotSection("Duplication", "plot_duplication_levels"), Map(),
fastqcPlotSection("Kmers", "plot_kmer_profiles"), List(
fastqcPlotSection("Length distribution", "plot_sequence_length_distribution") "Read Summary" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"),
), Map()) "Base Summary" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp"),
} fastqcPlotSection("Base quality", "plot_per_base_quality"),
fastqcPlotSection("Sequence quality", "plot_per_sequence_quality"),
fastqcPlotSection("Base GC content", "plot_per_base_gc_content"),
fastqcPlotSection("Sequence GC content", "plot_per_sequence_gc_content"),
fastqcPlotSection("Base seqeunce content", "plot_per_base_sequence_content"),
fastqcPlotSection("Duplication", "plot_duplication_levels"),
fastqcPlotSection("Kmers", "plot_kmer_profiles"),
fastqcPlotSection("Length distribution", "plot_sequence_length_distribution")
),
Map()
)
protected def fastqcPlotSection(name: String, tag: String) = { protected def fastqcPlotSection(name: String, tag: String) = {
name -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepFastaqcPlot.ssp", Map("plot" -> tag)) name -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepFastaqcPlot.ssp", Map("plot" -> tag))
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
#import(nl.lumc.sasc.biopet.core.report.ReportPage) #import(nl.lumc.sasc.biopet.core.report.ReportPage)
<%@ var summary: Summary %> <%@ var summary: Summary %>
<%@ var sampleId: Option[String] = None %> <%@ var sampleId: Option[String] = None %>
<%@ var rootPath: String %>
#{ #{
val fields = List("Hom", "HomVar", "HomRef", "NoCall", "Variant", "NonInformative", "Total") val fields = List("Hom", "HomVar", "HomRef", "NoCall", "Variant", "NonInformative", "Total")
val samples = sampleId match { val samples = sampleId match {
...@@ -16,7 +17,7 @@ ...@@ -16,7 +17,7 @@
</tr></thead> </tr></thead>
<tbody> <tbody>
#for (sample <- samples.toList.sorted) #for (sample <- samples.toList.sorted)
<tr><td>${sample}</td> <tr><td><a href="${rootPath}Samples/${sample}/index.html">${sample}</a></td>
#for (field <- fields) #for (field <- fields)
<td>${summary.getSampleValue(sample, "shivavariantcalling", "stats", "multisample-vcfstats-final", "genotype", field)}</td> <td>${summary.getSampleValue(sample, "shivavariantcalling", "stats", "multisample-vcfstats-final", "genotype", field)}</td>
#end #end
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
<table> <table>
<tbody> <tbody>
<tr><th>Pipeline</th><td>Shiva</td></tr> <tr><th>Pipeline</th><td>Shiva</td></tr>
<tr><th><a href="${rootPath}/Samples/index.html">Samples</a></th><td>${summary.samples.size}</td></tr>
</tbody> </tbody>
</table> </table>
\ No newline at end of file
#{//TODO: Add settings}#
Todo: settings
\ No newline at end of file
package nl.lumc.sasc.biopet.pipelines.shiva package nl.lumc.sasc.biopet.pipelines.shiva
import nl.lumc.sasc.biopet.core.report.{ ReportSection, MultisampleReportBuilder, ReportPage } import nl.lumc.sasc.biopet.core.report.{ ReportSection, MultisampleReportBuilder, ReportPage }
import nl.lumc.sasc.biopet.pipelines.bammetrics.BammetricsReport
import nl.lumc.sasc.biopet.pipelines.flexiprep.FlexiprepReport import nl.lumc.sasc.biopet.pipelines.flexiprep.FlexiprepReport
/** /**
...@@ -9,20 +10,31 @@ import nl.lumc.sasc.biopet.pipelines.flexiprep.FlexiprepReport ...@@ -9,20 +10,31 @@ import nl.lumc.sasc.biopet.pipelines.flexiprep.FlexiprepReport
object ShivaReport extends MultisampleReportBuilder { object ShivaReport extends MultisampleReportBuilder {
def indexPage = ReportPage( def indexPage = ReportPage(
Map( Map(
"General" -> ReportPage(Map(), List( /*"General" -> ReportPage(Map(), List(
"Variantcalling" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/shiva/sampleVariants.ssp"), "Variantcalling" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/shiva/sampleVariants.ssp"),
"Alignment" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp", Map("sampleLevel" -> true)),
"QC reads" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"), "QC reads" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"),
"QC bases" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp") "QC bases" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp")
), Map()), ), Map()),*/
"Samples" -> generateSamplesPage(pageArgs) "Samples" -> generateSamplesPage(pageArgs)
), ),
List("Report" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/shiva/shivaFront.ssp")), List(
"Report" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/shiva/shivaFront.ssp"),
"Variantcalling" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/shiva/sampleVariants.ssp"),
"Alignment" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp", Map("sampleLevel" -> true)),
"QC reads" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"),
"QC bases" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp")
),
pageArgs pageArgs
) )
def samplePage(sampleId: String, args: Map[String, Any]) = { def samplePage(sampleId: String, args: Map[String, Any]) = {
ReportPage(Map("Libraries" -> generateLibraryPage(args)), List( ReportPage(Map(
"Libraries" -> ReportSection("/nl/lumc/sasc/biopet/core/report/librariesList.ssp"), "Libraries" -> generateLibraryPage(args),
"Alignment" -> BammetricsReport.bamMetricsPage
), List(
"Alignment" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp"),
"Preprocessing" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp", Map("sampleLevel" -> true)),
"Variantcalling" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/shiva/sampleVariants.ssp"), "Variantcalling" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/shiva/sampleVariants.ssp"),
"QC reads" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"), "QC reads" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"),
"QC bases" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp") "QC bases" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp")
...@@ -30,13 +42,17 @@ object ShivaReport extends MultisampleReportBuilder { ...@@ -30,13 +42,17 @@ object ShivaReport extends MultisampleReportBuilder {
} }
def libraryPage(libId: String, args: Map[String, Any]) = { def libraryPage(libId: String, args: Map[String, Any]) = {
ReportPage(Map("QC" -> FlexiprepReport.indexPage), List( ReportPage(Map(
"Alignment" -> BammetricsReport.bamMetricsPage,
"QC" -> FlexiprepReport.flexiprepPage
), List(
"Alignment" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/bammetrics/alignmentSummary.ssp"),
"QC reads" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"), "QC reads" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepReadSummary.ssp"),
"QC bases" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp") "QC bases" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/flexiprep/flexiprepBaseSummary.ssp")
), args) ), args)
} }
def reportName = "Title Test" def reportName = "Shiva Report"
// FIXME: Not yet finished // FIXME: Not yet finished
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment