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