rnaHistogram.ssp 3.72 KB
Newer Older
1
#import(nl.lumc.sasc.biopet.utils.summary.db.Schema._)
Peter van 't Hof's avatar
Peter van 't Hof committed
2
3
4
#import(nl.lumc.sasc.biopet.utils.summary.db.SummaryDb)
#import(nl.lumc.sasc.biopet.utils.summary.db.SummaryDb._)
#import(nl.lumc.sasc.biopet.utils.summary.db.SummaryDb.Implicts._)
Peter van 't Hof's avatar
Peter van 't Hof committed
5
6
7
#import(nl.lumc.sasc.biopet.core.report.ReportPage)
#import(nl.lumc.sasc.biopet.pipelines.bammetrics.BammetricsReport)
#import(java.io.File)
Peter van 't Hof's avatar
Peter van 't Hof committed
8
9
10
<%@ var summary: SummaryDb %>
<%@ var sampleId: Option[Int] = None %>
<%@ var libId: Option[Int] = None %>
Peter van 't Hof's avatar
Peter van 't Hof committed
11
12
13
14
<%@ var rootPath: String %>
<%@ var metricsTag: String = "bammetrics" %>
<%@ var sampleLevel: Boolean = false %>
<%@ var outputDir: File %>
Peter van 't Hof's avatar
Peter van 't Hof committed
15
<%@ var fields: List[String] = List("PF_ALIGNED_BASES", "MEDIAN_5PRIME_BIAS", "MEDIAN_3PRIME_BIAS", "MEDIAN_5PRIME_TO_3PRIME_BIAS")%>
Peter van 't Hof's avatar
Peter van 't Hof committed
16
17
18
<%@ var showPlot: Boolean = false %>
<%@ var showTable: Boolean = true %>
<%@ var showIntro: Boolean = true%>
Peter van 't Hof's avatar
Peter van 't Hof committed
19
<%@ var runId: Int %>
20
21
<%@ var allSamples: Seq[Sample] %>
<%@ var allLibraries: Seq[Library] %>
Peter van 't Hof's avatar
Peter van 't Hof committed
22
#{
23
24
25
26
    val samples = sampleId match {
    case Some(id) => allSamples.filter(_.id == id).toList
    case _ => allSamples.toList
    }
Peter van 't Hof's avatar
Peter van 't Hof committed
27
28
29
30
31
32
33
}#
#if (showIntro)
    <br/>
    <div class="row">
    <div class="col-md-1"></div>
    <div class="col-md-6">
        <p>
Wai Yi Leung's avatar
Wai Yi Leung committed
34
            This shows the relative coverage for all transcripts using Picard CollectRnaMetrics
Peter van 't Hof's avatar
Peter van 't Hof committed
35
36
37
38
39
40
        </p>
    </div>
    </div>
#end

#if (showPlot)
Peter van 't Hof's avatar
Peter van 't Hof committed
41
    #{ BammetricsReport.rnaHistogramPlot(outputDir, "rna", summary, !sampleLevel, sampleId = sampleId, libraryId = libId) }#
Peter van 't Hof's avatar
Peter van 't Hof committed
42
43

    <div class="panel-body">
Wai Yi Leung's avatar
Wai Yi Leung committed
44
        <img src="rna.png" class="img-responsive" />
Peter van 't Hof's avatar
Peter van 't Hof committed
45
46
47
48
49
50
51
    </div>
    <div class="panel-footer">
        #if (showTable)
            <button type="button" class="btn btn-info" data-toggle="collapse" data-target="#rnaTable">Hide table</button>
        #else
            <button type="button" class="btn btn-info" data-toggle="collapse" data-target="#rnaTable">Show table</button>
        #end
Peter van 't Hof's avatar
Peter van 't Hof committed
52
        <a href="rna.tsv"><button type="button" class="btn btn-info"><i class="glyphicon glyphicon-cloud-download"></i>TSV file</button></a>
Peter van 't Hof's avatar
Peter van 't Hof committed
53
54
55
56
57
58
59
60
61
62
63
64
65
66
    </div>
#end

<div class="panel-body collapse #if (showTable)in#end" id="rnaTable">
<!-- Table -->
<table class="table sortable-theme-bootstrap" data-sortable>
    <thead><tr>
        <th data-sorted="true" data-sorted-direction="ascending">Sample</th>
        #if (!sampleLevel) <th>Library</th> #end
        #for (field <- fields)
            <th>${field.replaceAll("_", " ")}</th>
        #end
    </tr></thead>
    <tbody>
Peter van 't Hof's avatar
Peter van 't Hof committed
67
        #for (sample <- samples.sortBy(_.name))
Peter van 't Hof's avatar
Peter van 't Hof committed
68
            #{
Peter van 't Hof's avatar
Peter van 't Hof committed
69
70
71
                val libs: List[Option[Int]] = (libId, sampleLevel) match {
                case (_, true) => List(None)
                case (Some(_), _) => List(libId)
72
                case _ => allLibraries.filter(_.sampleId == sample.id).map(x => Some(x.id)).toList
Peter van 't Hof's avatar
Peter van 't Hof committed
73
74
75
76
                }
            }#
            <tr><td rowspan="${libs.size}"><a href="${rootPath}Samples/${sample}/index.html">${sample}</a></td>
            #for (libId <- libs)
77
                #{ val libName = libId.map(l => allLibraries.find(_.id == l).get.name) }#
Peter van 't Hof's avatar
Peter van 't Hof committed
78
                #if (libs.head != libId) <tr> #end
Peter van 't Hof's avatar
Peter van 't Hof committed
79
                    #if (!sampleLevel) <td><a href="${rootPath}Samples/${sample.name}/Libraries/${libName}/index.html">${libName}</a></td> #end
Peter van 't Hof's avatar
Peter van 't Hof committed
80
                    #{
Peter van 't Hof's avatar
Peter van 't Hof committed
81
82
                        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)
Peter van 't Hof's avatar
Peter van 't Hof committed
83
                    }#
Peter van 't Hof's avatar
Peter van 't Hof committed
84
85
                    #for (field <- fields)
                        <td>${results(field)}</td>
Peter van 't Hof's avatar
Peter van 't Hof committed
86
87
88
89
90
91
92
93
                    #end
                </tr>
            #end
        #end
    </tbody>
</table>

</div>