-{% load humanize %}
+{% extends "base_site.html" %}
+{% load staticfiles %}
+{% load humanize i18n %}
+{% block extrahead %}
+ <!-- App Stuff -->
+ <link type="text/css" rel="stylesheet" href="{% static "css/app.css" %}"/>
+ <script type="text/javascript" src="{% static "js/jquery.min.js" %}"></script>
-<hr/>
-<br/>
-<style type="text/css">
- /* <![CDATA[ */
- table, td {
- border-style: solid;
- }
- table {
- border-width: 0 0 1px 1px;
- border-spacing: 0;
- border-collapse: collapse;
- }
- td {
- margin: 0;
- padding: 4px;
- border-width: 1px 1px 0 0;
- }
- thead {
- text-align: center;
- }
- tbody {
- text-align: right;
- }
- /* ]]> */
-</style>
+ {% block additional_javascript %}
+ {% endblock %}
+{% endblock %}
-{% block summary_stats %}
-<table>
+{% block content %}
+ {% include "sample_header.html" %}
+ <hr/>
+ <div class="library_statistics">
+ <h2>Raw Result Files</h2>
+ <table>
<thead>
<tr>
- <td colspan="6"></td>
- <td colspan="2">No Match</td>
- <td colspan="2">QC Failed</td>
- <td colspan="4">Unique</td>
- <td colspan="4">Repeat</td>
- </tr>
- <tr>
- <td>Cycles</td>
- <td>Flowcell</td>
- <td>Lane</td>
- <td>End</td>
- <td>Cluster / Tile</td>
- <td>Raw Reads</td>
- <td>total</td>
- <td>%</td>
- <td>total</td>
- <td>%</td>
- <td>0 mismatch</td>
- <td>1 mismatch</td>
- <td>2 mismatch</td>
- <td>Total</td>
- <td>0 mismatch</td>
- <td>1 mismatch</td>
- <td>2 mismatch</td>
- <td>Total</td>
+ <td>Run Start Date</td>
+ <td>Cycle</td>
+ <td>Flowcell</td>
+ <td>Lane</td>
+ <td>Summary</td>
+ <td>Eland</td>
+ <td>Bed</td>
+ <td>Archived</td>
</tr>
</thead>
<tbody>
-
- {% for lane in lane_summary_list %}
- <tr>
- <td>{{ lane.cycle_width }}</td>
- <td>{{ lane.flowcell_id }}</td>
- <td>{{ lane.lane_id }}</td>
- <td>{% if lane.end %}{{ lane.end }}{% endif %}</td>
- <td>{{ lane.clusters.0|intcomma }}</td>
- <td>{{ lane.reads|intcomma }}</td>
- <td>{{ lane.no_match|intcomma }}</td>
- <td>{{ lane.no_match_percent|stringformat:".2f" }}</td>
- <td>{{ lane.qc_failed|intcomma }}</td>
- <td>{{ lane.qc_failed_percent|stringformat:".2f" }}</td>
- <td>{{ lane.match_codes.U0|intcomma }}</td>
- <td>{{ lane.match_codes.U1|intcomma }}</td>
- <td>{{ lane.match_codes.U2|intcomma }}</td>
- <td>{{ lane.unique_reads|intcomma }}</td>
- <td>{{ lane.match_codes.R0|intcomma }}</td>
- <td>{{ lane.match_codes.R1|intcomma }}</td>
- <td>{{ lane.match_codes.R2|intcomma }}</td>
- <td>{{ lane.repeat_reads|intcomma }}</td>
+ {% if eland_results %}
+ {% for result in eland_results %}
+ <tr about="{{result.flowcell.get_absolute_url}}">
+ <td property="libns:date" content="{{result.run_date|date:'Y-m-d\TH:i:s'}}" datatype="xsd:dateTime">{{ result.run_date|date}}</td>
+ <td>{{ result.cycle }}</td>
+ <td><a href="{{result.flowcell.get_absolute_url}}"><span property="libns:flowcell_id">{{ result.flowcell_id }}</span></a>{% if user.is_staff %}<a href="{{result.flowcell.get_admin_url}}"><img class="icon_button" src="{% static "admin/img/icon_changelink.gif" %}" alt="Edit"/></a>{% endif%}</td>
+ <td>{{ result.lane.lane_number }}</td>
+ <td><a href="{{ result.summary_url }}">Summary</a></td>
+ <td><a href="{{ result.result_url }}">{{ result.result_label }}</a></td>
+ <td>
+ {% if result.bed_url %}
+ <a href="{{ result.bed_url }}">Bed</a>
+ {% endif %}
+ </td>
+ <td>
+ {% if result.storage_ids %}
+ {{ result.storage_ids|safe }}
+ {% endif %}
+ </td>
</tr>
{% endfor %}
+ {% else %}
+ <tr><td colspan="8">No data</td></tr>
+ {% endif %}
</tbody>
-</table>
-<br/>
-<hr/>
-{% for lane in lane_summary_list %}
-<h2>
- {{lane.cycle_width}} {{ lane.flowcell_id }} lane {{ lane.lane_id }}
- {% if lane.end %} end {{ lane.end }}{% endif %}
-</h2>
- <ul>
- {% for name, counts in lane.summarized_reads.items %}
- <li><b>{{ name }}</b>: {{ counts|intcomma }}</li>
- {% endfor %}
- </ul>
-{% endfor %}
+ </table>
+
+ <h2>Lane Summary Statistics</h2>
+ {% block summary_stats %}
+ <table>
+ <thead>
+ <tr>
+ <td colspan="7"></td>
+ <td colspan="2">No Match</td>
+ <td colspan="2">QC Failed</td>
+ <td colspan="4">Unique</td>
+ <td colspan="4">Repeat</td>
+ </tr>
+ <tr>
+ <td>Cycles</td>
+ <td>Flowcell</td>
+ <td>Lane</td>
+ <td>End</td>
+ <td>Cluster / Tile</td>
+ <td>pM</td>
+ <td>Raw Reads</td>
+ <td>total</td>
+ <td>%</td>
+ <td>total</td>
+ <td>%</td>
+ <td>0 mismatch</td>
+ <td>1 mismatch</td>
+ <td>2 mismatch</td>
+ <td>Total</td>
+ <td>0 mismatch</td>
+ <td>1 mismatch</td>
+ <td>2 mismatch</td>
+ <td>Total</td>
+ </tr>
+ </thead>
+ <tbody>
+ {% if lane_summary_list %}
+ {# ls short for lane summary #}
+ {% for ls in lane_summary_list %}
+ <tr about="{{ls.lane.get_absolute_url}}">
+ <td>{{ ls.cycle_width }}</td>
+ <td><a href="{{ls.flowcell.get_absolute_url}}">{{ ls.flowcell_id }}</a>
+ </td>
+ <td><a href="{{ls.lane.get_absolute_url}}">{{ ls.lane_id }}</a></td>
+ <td>{% if ls.end %}{{ ls.end }}{% endif %}</td>
+ <td>{{ ls.clusters.0|intcomma }}</td>
+ <td>{{ ls.successful_pm }}</td>
+ <td>{{ ls.reads|intcomma }}</td>
+ <td>{{ ls.no_match|intcomma }}</td>
+ <td>{{ ls.no_match_percent|stringformat:".2f" }}</td>
+ <td>{{ ls.qc_failed|intcomma }}</td>
+ <td>{{ ls.qc_failed_percent|stringformat:".2f" }}</td>
+ <td>{{ ls.match_codes.U0|intcomma }}</td>
+ <td>{{ ls.match_codes.U1|intcomma }}</td>
+ <td>{{ ls.match_codes.U2|intcomma }}</td>
+ <td {% if ls.unique_reads %}property="libns:total_unique_locations" content="{{ls.unique_reads}}" datatype="xsd:decimal"{% endif %}>{{ ls.unique_reads|intcomma }}</td>
+ <td>{{ ls.match_codes.R0|intcomma }}</td>
+ <td>{{ ls.match_codes.R1|intcomma }}</td>
+ <td>{{ ls.match_codes.R2|intcomma }}</td>
+ <td>{{ ls.repeat_reads|intcomma }}</td>
+ </tr>
+ {% endfor %}
+ {% else %}
+ <tr><td colspan="20">No data</td></tr>
+ {% endif %}
+ </tbody>
+ </table>
+
+ <h2>Flowcell Notes</h2>
+ <table>
+ <thead>
+ <tr>
+ <td>Flowcell ID</td>
+ <td>Lane</td>
+ <td>Comment</td>
+ </tr>
+ </thead>
+ {% if lib.lane_set.all %}
+ <tbody>
+ {% for lane in lib.lane_set.all %}
+ <tr rel="libns:has_lane"
+ about="{{lib.get_absolute_url}}"
+ resource="{{lane.get_absolute_url}}">
+ <td>
+ <a typeof="libns:IlluminaFlowcell" href="{{lane.flowcell.get_absolute_url}}">
+ <span property="libns:flowcell_id"
+ >{{lane.flowcell.flowcell_id}}</span></a>
+ {% if user.is_staff %}
+ <a href="{{lane.flowcell.get_admin_url}}">
+ <img class="icon_button"
+ src="{% static "admin/img/icon_changelink.gif" %}" alt="Edit"/>
+ </a>
+ {% endif%}
+ </td>
+ <td typeof="libns:IlluminaLane" about="{{lane.get_absolute_url}}">
+ <span rel="libns:flowcell" resource="{{lane.flowcell.get_absolute_url}}"></span>
+ <a href="{{lane.get_absolute_url}}">
+ <span property="libns:lane_number"
+ >{{ lane.lane_number }}</span>
+ </a></td>
+ <td>{{ lane.comment }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ {% endif %}
+ </table>
+ <br/>
+ <hr/>
+ <h2>Count of multi-reads</h2>
+ {% for eland_lane in lane_summary_list %}
+ {% if eland_lane.summarized_reads %}
+ <h3>{{eland_lane.cycle_width}} {{ eland_lane.flowcell_id }} lane {{ eland_lane.lane_id }}
+ {% if eland_lane.end %} end {{ eland_lane.end }}{% endif %}
+ </h3>
+ <ul about="{{eland_lane.lane.get_absolute_url}}">
+ {% for name, counts in eland_lane.summarized_reads.items %}
+ <li rel="libns:has_mappings">
+ <b property="libns:mapped_to">{{ name }}</b>:
+ <span property="libns:reads" content="{{counts}}" datatype="xsd:integer">{{ counts|intcomma }}</span></li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+ {% endfor %}
+ {% endblock %}
+ </div>
{% endblock %}