26eba6887f82ff7a91e7952f187d9f4dbd8b92bc
[htsworkflow.git] / htsworkflow / frontend / templates / samples / library_detail.html
1 {% extends "flowcell_libraries_app.html" %}
2 {% load humanize %}
3
4 {% block additional_css %}
5 <style type="text/css">
6   /* <![CDATA[ */
7   div#librarydetail table, div#librarydetail td {
8     border-style: solid;
9   }
10   div#librarydetail table {
11     border-width: 0 0 1px 1px;
12     border-spacing: 0;
13     border-collapse: collapse;
14   }
15   div#librarydetail td {
16     margin: 0;
17     padding: 4px;
18     border-width: 1px 1px 0 0;
19   }
20   div#librarydetail thead {
21     text-align: center;
22     }
23   div#librarydetail tbody {
24     text-align: right;
25   }
26   div#librarydetail h1,
27   div#librarydetail h2
28   {
29     font-size: 150%;
30     padding: 0.5em 0 0.5em 0;
31   }
32
33   div#librarydetail h3 {
34      font-size: 125%;
35      padding: 0 0 0.25em 2em;
36   }
37
38   div#librarydetail h4,
39   div#librarydetail h5,
40   div#librarydetail ul,
41   div#librarydetail ol,
42   div#librarydetail li
43   {
44     padding-left: 2em;
45   }
46  /* ]]> */
47 </style>
48 {% endblock %}
49
50 {% block content %}
51 <div id="librarydetail">
52   <h2>About this library</h2>
53   <b>Library ID</b>: {{ lib.id }}<br/>
54   <b>Name</b>: {{ lib.library_name }}<br/>
55   <b>Species</b>: {{ lib.library_species.scientific_name }}<br/>
56   <b>Concentration</b>: {{ lib.undiluted_concentration }} ng/µl<br/>
57   <b>Gel Cut Size</b>: {{ lib.gel_cut_size }}<br/>
58   <b>Insert Size</b>: {{ lib.insert_size }}<br/>
59   <b>Made By</b>: {{ lib.made_by }} <br/>
60   <b>Affiliations</b>:
61   <ul>
62     {% for individual in lib.affiliations.all %}
63       <li>{{ individual.name }} ( {{ individual.contact }} )</li>
64     {% endfor %}
65   </ul>
66   
67   <h2>Raw Result Files</h2>
68   <table>
69   <thead>
70     <tr>
71       <td>Run Start Date</td>
72       <td>Cycle</td>
73       <td>Flowcell</td>
74       <td>Lane</td>
75       <td>Summary</td>
76       <td>Eland</td>
77       <td>Bed</td>
78       <td>Archived</td>
79     </tr>
80   {% for result in eland_results %}
81   <tr>
82     <td>{{ result.run_date|date }}</td>
83     <td>{{ result.cycle }}</td>
84     <td>{{ result.flowcell_id }}</td>
85     <td>{{ result.lane }}</td>
86     <td><a href="{{ result.summary_url }}">Summary</a></td>
87     <td><a href="{{ result.result_url }}">{{ result.result_label }}</a></td>
88     <td>
89     {% if result.bed_url %}
90       <a href="{{ result.bed_url }}">Bed</a>
91     {% endif %}
92     </td>
93     <td>
94       {% if result.storage_ids %}
95         {{ result.storage_ids|safe }}
96       {% endif %}
97     </td>
98   </tr>
99   {% endfor %}
100   </table>
101   
102   <h2>Lane Summary Statistics</h2>
103   {% block summary_stats %}
104   <table>
105     <thead>
106       <tr>
107         <td colspan="7"></td>
108         <td colspan="2">No Match</td>
109         <td colspan="2">QC Failed</td>
110         <td colspan="4">Unique</td>
111         <td colspan="4">Repeat</td>
112       </tr>
113       <tr>
114       <td>Cycles</td>
115       <td>Flowcell</td>
116       <td>Lane</td>
117       <td>End</td>
118       <td>Cluster / Tile</td>
119       <td>pM</td>
120       <td>Raw Reads</td>
121       <td>total</td>
122       <td>%</td>
123       <td>total</td>
124       <td>%</td>
125       <td>0 mismatch</td>
126       <td>1 mismatch</td>
127       <td>2 mismatch</td>
128       <td>Total</td>
129       <td>0 mismatch</td>
130       <td>1 mismatch</td>
131       <td>2 mismatch</td>
132       <td>Total</td>
133       </tr>
134     </thead>
135     <tbody>
136   
137       {% for lane in lane_summary_list %}
138       <tr>
139         <td>{{ lane.cycle_width }}</td>
140         <td>{{ lane.flowcell_id }}</td>
141         <td>{{ lane.lane_id }}</td>
142         <td>{% if lane.end %}{{ lane.end }}{% endif %}</td>
143         <td>{{ lane.clusters.0|intcomma }}</td>
144         <td>{{ lane.successful_pm }}</td>
145         <td>{{ lane.reads|intcomma }}</td>
146         <td>{{ lane.no_match|intcomma }}</td>
147         <td>{{ lane.no_match_percent|stringformat:".2f" }}</td>
148         <td>{{ lane.qc_failed|intcomma }}</td>
149         <td>{{ lane.qc_failed_percent|stringformat:".2f" }}</td>
150         <td>{{ lane.match_codes.U0|intcomma }}</td>
151         <td>{{ lane.match_codes.U1|intcomma }}</td>
152         <td>{{ lane.match_codes.U2|intcomma }}</td>
153         <td>{{ lane.unique_reads|intcomma }}</td>
154         <td>{{ lane.match_codes.R0|intcomma }}</td>
155         <td>{{ lane.match_codes.R1|intcomma }}</td>
156         <td>{{ lane.match_codes.R2|intcomma }}</td>
157         <td>{{ lane.repeat_reads|intcomma }}</td>
158       </tr>
159       {% endfor %}
160     </tbody>
161   </table>
162
163   <h2>Flowcell Notes</h2>
164   <table>
165     <thead>
166       <tr>
167         <td>Flowcell ID</td>
168         <td>Lane</td>
169         <td>Comment</td>
170     </thead>
171     <tbody>
172       {% for lane in lib.lane_set.all %}
173       <tr>
174         <td>{{ lane.flowcell.flowcell_id }}</td>
175         <td>{{ lane.lane_number }}</td>
176         <td>{{ lane.comment }}</td>
177         {% endfor %}
178     </tbody>
179   </table>
180   <br/>
181   <hr/>
182   <h2>Count of multi-reads</h2>
183   {% for lane in lane_summary_list %}
184     {% if lane.summarized_reads %}
185     <h3>
186       {{lane.cycle_width}} {{ lane.flowcell_id }} lane {{ lane.lane_id }} 
187       {% if lane.end %} end {{ lane.end }}{% endif %}
188     </h3>
189     <ul>
190       {% for name, counts in lane.summarized_reads.items %}
191       <li><b>{{ name }}</b>: {{ counts|intcomma }}</li>
192       {% endfor %}
193     </ul>
194     {% endif %}
195   {% endfor %}
196   {% endblock %}
197 </div>
198 {% endblock %}