0
|
1 <!DOCTYPE html>
|
|
2 <html>
|
|
3 <head>
|
|
4 <meta charset="UTF-8">
|
|
5 <meta name=generator content="blast2html; see https://github.com/thehyve/blast2html/">
|
|
6
|
|
7 <title>Blast output</title>
|
|
8
|
|
9 <style>
|
|
10 body {
|
|
11 color: #333333;
|
|
12 font-family: Arial,Sans-Serif;
|
|
13 }
|
|
14
|
|
15 :link {
|
|
16 color: #336699;
|
|
17 }
|
|
18
|
|
19 .right {
|
|
20 float: right;
|
|
21 }
|
|
22
|
|
23 /* Galaxy with html sanitization enabled strips the header of this html page. If so, show the user a warning.*/
|
|
24 #strip_html_warning {
|
|
25 display: none;
|
|
26 }
|
|
27
|
|
28 #content {
|
|
29 margin: 0 2em;
|
|
30 padding: 0.5em;
|
|
31 border: 1px solid #888888;
|
|
32 background-color: #d3dff5;
|
|
33 }
|
|
34
|
|
35 h1, h2, h3, h4, h5, h6 {
|
|
36 color: #2A6979;
|
|
37 font-family: arial,verdana,sans-serif;
|
|
38 letter-spacing: -1px;
|
|
39 margin: 1.2em 0 0.3em;
|
|
40 }
|
|
41
|
|
42 h1 {
|
|
43 border-bottom: 1px solid #CCCCCC;
|
|
44 font-size: 150%;
|
|
45 padding-bottom: 0.1em;
|
|
46 }
|
|
47
|
|
48 h2 {
|
|
49 font-size: 120%;
|
|
50 font-weight: bold;
|
|
51 }
|
|
52
|
|
53 h4.darkHeader {
|
|
54 color: #4D4D4D;
|
|
55 letter-spacing: 0;
|
|
56 font-weight: bold;
|
|
57 }
|
|
58
|
|
59 #nodata {
|
|
60 font-weight: bold;
|
|
61 }
|
|
62
|
|
63 .index {
|
|
64 margin-bottom: 3em;
|
|
65 }
|
|
66 .index div.indexentry {
|
|
67 margin: 1.2em 1.6em;
|
|
68 font-weight: bold;
|
|
69 font-size: 100%;
|
|
70 }
|
|
71
|
|
72 .headerdata {
|
|
73 font-size: 90%;
|
|
74 }
|
|
75 .headerdata .param {
|
|
76 font-weight: bold;
|
|
77 text-align: right;
|
|
78 padding: 0 1em;
|
|
79 }
|
|
80
|
|
81 .grey {
|
|
82 background-color: #eeeeee;
|
|
83 border: 1px solid #cccccc;
|
|
84 padding: 1em;
|
|
85 }
|
|
86
|
|
87 .white {
|
|
88 background-color: white;
|
|
89 border: 1px solid #cccccc;
|
|
90 padding: 1.5em 2%;
|
|
91 }
|
|
92
|
|
93 .graphicrow {
|
|
94 clear: left;
|
|
95 width: 100%;
|
|
96 }
|
|
97
|
|
98 .graphicitem {
|
|
99 float: left;
|
|
100 }
|
|
101
|
|
102
|
|
103
|
|
104 .graphics .grey {
|
|
105 text-align: center;
|
|
106 }
|
|
107
|
|
108 .graphic {
|
|
109 background-color: white;
|
|
110 border: 2px solid black;
|
|
111 padding: 1.5em;
|
|
112 margin: auto;
|
|
113 }
|
|
114
|
|
115 .centered, .defline, div.legend, div.tablewrapper {
|
|
116 margin-left: auto;
|
|
117 margin-right: auto;
|
|
118 }
|
|
119
|
|
120 .defline {
|
|
121 background-color: white;
|
|
122 border: 1px solid black;
|
|
123 margin: .5em auto;
|
|
124 padding-left: .2em;
|
|
125 padding-right: .2em;
|
|
126 max-width: 50em;
|
|
127 text-align: left;
|
|
128 height: 2.8em;
|
|
129 overflow-y: hidden;
|
|
130 }
|
|
131
|
|
132 div.legend {
|
|
133 max-width: 40em;
|
|
134 }
|
|
135 div.legend div {
|
|
136 width: 100%;
|
|
137 color: white;
|
|
138 font-weight: bold;
|
|
139 border-spacing: 0;
|
|
140 }
|
|
141 div.legend div .graphicitem {
|
|
142 width: 20%;
|
|
143 padding: 0;
|
|
144 margin: 0;
|
|
145 border: none;
|
|
146 }
|
|
147
|
|
148 div.tablewrapper {
|
|
149 width: 50%;
|
|
150 min-width: 60em;
|
|
151 }
|
|
152
|
|
153 /* For small widths we give the graphic 100% */
|
|
154 @media (max-width: 72.5em) {
|
|
155 div.tablewrapper {
|
|
156 width: 100%;
|
|
157 min-width: 0px;
|
|
158 }
|
|
159 }
|
|
160
|
|
161 .scale {
|
|
162 width: 100%;
|
|
163 margin: .5em 0;
|
|
164 font-weight: bold;
|
|
165 }
|
|
166 .scale div {
|
|
167 color: red;
|
|
168 text-align: left;
|
|
169 }
|
|
170 .scale .graphicrow {
|
|
171 margin: .5em 0 .5em 0;
|
|
172 color: white;
|
|
173 }
|
|
174 .scale .graphicitem {
|
|
175 position: relative;
|
|
176 }
|
|
177 .scale .graphicitem div {
|
|
178 margin: 0 1px;
|
|
179 padding: 0 2px;
|
|
180 text-align: right;
|
|
181 background-color: red;
|
|
182 color: white;
|
|
183 }
|
|
184 .scale .graphicitem:first-child div {
|
|
185 margin-left: 0px;
|
|
186 }
|
|
187 .scale .graphicitem:last-child div {
|
|
188 margin-right: 0px;
|
|
189 }
|
|
190 .scale .graphicitem .lastlabel {
|
|
191 position: absolute;
|
|
192 top: 0px;
|
|
193 left: 100%;
|
|
194 background-color: transparent;
|
|
195 color: red;
|
|
196 }
|
|
197
|
|
198 a.matchresult {
|
|
199 display: block;
|
|
200 margin: 0;
|
|
201 padding: 0;
|
|
202 }
|
|
203 div.matchrow {
|
|
204 margin-top: 4px;
|
|
205 }
|
|
206 div.matchrow, div.matchitem {
|
|
207 height: 4px;
|
|
208 }
|
|
209
|
|
210
|
|
211 table.descriptiontable {
|
|
212 font-size: 85%;
|
|
213 border: 1px solid #97b0c8;
|
|
214 border-spacing: 0;
|
|
215 color: #222222;
|
|
216 line-height: 1.3em;
|
|
217 background-color: white;
|
|
218 }
|
|
219 table.descriptiontable col:first-child {
|
|
220 width: 100%;
|
|
221 }
|
|
222 table.descriptiontable tr:hover {
|
|
223 background-color: #D5DEE3;
|
|
224 }
|
|
225 table.descriptiontable th {
|
|
226 color: #14376C;
|
|
227 font-weight: normal;
|
|
228 background-color: #F0F0F0;
|
|
229 background: linear-gradient(#FFFFFF, #F0F0F0);
|
|
230 border-bottom: 1px solid #D4DFE9;
|
|
231 border-right: 1px solid #CFCFCF;
|
|
232 border-left: 0px solid black;
|
|
233 border-top: 0px solid black;
|
|
234 }
|
|
235 table.descriptiontable td {
|
|
236 overflow: hidden;
|
|
237 text-align: center;
|
|
238 padding: .4em .8em;
|
|
239 }
|
|
240 table.descriptiontable td div {
|
|
241 width: 1em;
|
|
242 overflow: visible;
|
|
243 white-space: nowrap;
|
|
244 text-align: left;
|
|
245 }
|
|
246
|
|
247
|
|
248
|
|
249 .alignments .white {
|
|
250 padding: 1.5em 1em;
|
|
251 }
|
|
252
|
|
253 .alignment {
|
|
254 border-top: 1px solid black;
|
|
255 padding-left: 1em;
|
|
256 padding-right: 1em;
|
|
257 }
|
|
258
|
|
259 div.linkheader {
|
|
260 padding-top: .2em;
|
|
261 font-size: 85%;
|
|
262 color: #14376C;
|
|
263 }
|
|
264 div.linkheader a.linkheader {
|
|
265 margin-right: 1em;
|
|
266 }
|
|
267 div.linkheader .right a {
|
|
268 text-decoration: none;
|
|
269 }
|
|
270
|
|
271 .title .hittitle {
|
|
272 color: #222222;
|
|
273 margin-bottom: .3em;
|
|
274 }
|
|
275 .title .titleinfo {
|
|
276 font-size: 80%;
|
|
277 margin-top: 0;
|
|
278 margin-bottom: .3em;
|
|
279 }
|
|
280 .title .titleinfo .b {
|
|
281 color: #606060;
|
|
282 font-weight: bold;
|
|
283 font-size: 90%;
|
|
284 }
|
|
285
|
|
286 .moretitles {
|
|
287 margin: 1.2em;
|
|
288 }
|
|
289 .moretitles .titleinfo {
|
|
290 margin: 0;
|
|
291 padding: 0;
|
|
292 }
|
|
293 .moretitles .hittitle {
|
|
294 margin: .4em 0 .2em 0;
|
|
295 padding: 0;
|
|
296 }
|
|
297
|
|
298 a.showmoretitles {
|
|
299 font-size: 75%;
|
|
300 color: #336699;
|
|
301 font-weight: bold;
|
|
302 margin-top: 0;
|
|
303 }
|
|
304 a.showmoretitles:hover {
|
|
305 }
|
|
306
|
|
307 .hotspot {
|
|
308 color: #606060;
|
|
309 font-family: verdana, arial, sans-serif;
|
|
310 margin-bottom: 2.5em;
|
|
311 }
|
|
312
|
|
313 .hotspot p.range {
|
|
314 font-size: 70%;
|
|
315 margin-top: 0;
|
|
316 margin-top: 1em;
|
|
317 margin-bottom: .2em;
|
|
318 }
|
|
319 .hotspot p.range span.range {
|
|
320 font-weight: bold;
|
|
321 }
|
|
322 .hotspot p.range a.range {
|
|
323 margin-left: .5em;
|
|
324 }
|
|
325
|
|
326 table.hotspotstable {
|
|
327 border-top: 1px solid;
|
|
328 border-bottom: 1px solid;
|
|
329 text-align: left;
|
|
330 border-collapse: collapse;
|
|
331 }
|
|
332 table.hotspotstable th, table.hotspotstable td {
|
|
333 padding: .1em 1em;
|
|
334 }
|
|
335 table.hotspotstable th {
|
|
336 font-size: 70%;
|
|
337 }
|
|
338 table.hotspotstable td {
|
|
339 min-width: 7em;
|
|
340 color: #222222;
|
|
341 font-size: 80%;
|
|
342 }
|
|
343
|
|
344 pre.alignmentgraphic {
|
|
345 color: #222222;
|
|
346 }
|
|
347
|
|
348 footer {
|
|
349 text-align: center;
|
|
350 color: #cccccc;
|
|
351 font-size: 70%;
|
|
352 margin-top: 1em;
|
|
353 }
|
|
354 footer :link {
|
|
355 color: #5588cc;
|
|
356 }
|
|
357
|
|
358 </style>
|
|
359
|
|
360 <script type="text/javascript">
|
|
361 function toggle_visibility(id) {
|
|
362 var e = document.getElementById(id);
|
|
363 if(e.style.display != 'block')
|
|
364 e.style.display = 'block';
|
|
365 else
|
|
366 e.style.display = 'none';
|
|
367 }
|
|
368 </script>
|
|
369
|
|
370 </head>
|
|
371
|
|
372
|
|
373 <body>
|
|
374
|
|
375 <div id="strip_html_warning">
|
|
376 <!-- This div should be hidden by the header css block. Galaxy
|
|
377 strips all css, breaking this page but making this warning
|
|
378 visible. This warning contains some ugly old skool tabular html
|
|
379 layout that is not stripped. -->
|
|
380 <table bgcolor="#FFE5C9"><tr><td><font color="red"><b>
|
|
381 <font size=5><center>This html page seems to have been stripped by Galaxy.</center></font>
|
|
382 Disable Galaxy's html sanitization feature to view the full page (see <font face=monospace>sanitize_all_html</font> in your galaxy's universe_wsgi.ini), or download this page instead of viewing it in Galaxy.
|
|
383 </b></font></td></tr></table>
|
|
384 </div>
|
|
385
|
|
386 <div id=content>
|
|
387
|
|
388 {% if not blast.BlastOutput_iterations.findall('Iteration') %}
|
|
389 <section class=nodata>
|
|
390 <h1>No data</h1>
|
|
391 <div class=grey>
|
|
392 No matches
|
|
393 </div>
|
|
394 </section>
|
|
395
|
|
396 {% else %}
|
|
397
|
|
398 {% if blast.BlastOutput_iterations.findall('Iteration') | length > 1 %}
|
|
399 <section class=index>
|
|
400 <h1>Queries</h1>
|
|
401
|
|
402 {% for result in blast.BlastOutput_iterations.Iteration %}
|
|
403 <div class=indexentry><a href="#match{{result['Iteration_iter-num']}}">
|
|
404 {% set hits = result|hits %}
|
|
405 {{result['Iteration_query-ID']}}: {{result['Iteration_query-def']}}
|
|
406 ({{result|len}} letters, {{hits|length}} hits)
|
|
407 </a></div>
|
|
408 {% endfor %}
|
|
409
|
|
410 </section>
|
|
411 {% endif %}
|
|
412
|
|
413 {% for result in blast.BlastOutput_iterations.Iteration %}
|
|
414
|
|
415 <section class=match id=match{{result['Iteration_iter-num']}}>
|
|
416
|
|
417 <h1>Nucleotide Sequence ({{result|len}} letters)</h1>
|
|
418
|
|
419 <section class=header>
|
|
420
|
|
421 <table class=headerdata>
|
|
422 {% for param, value in params %}
|
|
423 <tr><td class=param>{{param}}:</td><td>{{value}}</td></tr>
|
|
424 {% endfor %}
|
|
425 </table>
|
|
426
|
|
427 </section>
|
|
428
|
|
429 {% set hits = result|hits %}
|
|
430 {% if not hits %}
|
|
431 <section>
|
|
432 <h2>No Hits</h2>
|
|
433 <div class=grey>
|
|
434 <table class=headerdata>
|
|
435 <tr><td class=param>Message:</td><td>{{result.Iteration_message}}</td></tr>
|
|
436 </table>
|
|
437 </div>
|
|
438 </section>
|
|
439 {% else %}
|
|
440
|
|
441 <section class=graphics>
|
|
442 <h2>Graphic Summary</h2>
|
|
443
|
|
444 <div class=grey>
|
|
445 <h3 class=centered>Distribution of {{result|length}} Blast Hits on the Query Sequence</h3>
|
|
446
|
|
447 <div class=defline id=defline{{result['Iteration_iter-num']}}>
|
|
448 Mouse-over to show defline and scores, click to show alignments
|
|
449 </div>
|
|
450
|
|
451 <div class=graphic>
|
|
452 <h4 class=darkHeader>Color key for alignment scores</h4>
|
|
453 <div class=legend><div class=graphicrow>
|
|
454 <div class=graphicitem style="background-color: {{colors[0]}}"><40</div>
|
|
455 <div class=graphicitem style="background-color: {{colors[1]}}">40–50</div>
|
|
456 <div class=graphicitem style="background-color: {{colors[2]}}">50–80</div>
|
|
457 <div class=graphicitem style="background-color: {{colors[3]}}">80–200</div>
|
|
458 <div class=graphicitem style="background-color: {{colors[4]}}">200≤</div>
|
|
459 </div></div>
|
|
460 <div style="clear: left"></div>
|
|
461
|
|
462 <div class=tablewrapper>
|
|
463
|
|
464 <div class=scale>
|
|
465 <div>query:</div>
|
|
466 <div class=graphicrow>
|
|
467 <div>
|
|
468 {% for s in result|queryscale %}
|
|
469 <div class=graphicitem style="width: {{s.width}}%">
|
|
470 {% if s.width > 3.0 %}
|
|
471 <div>{{s.label}}</div>
|
|
472 {% else %}
|
|
473 <div> </div>
|
|
474 <div class=lastlabel>{{s.label}}</div>
|
|
475 {% endif %}
|
|
476 </div>
|
|
477 {% endfor %}
|
|
478 </div>
|
|
479 </div>
|
|
480 <div style="clear: left"></div>
|
|
481 </div>
|
|
482
|
|
483 {% for line in result|match_colors %}
|
|
484 <a class=matchresult
|
|
485 href="{{line.link}}"
|
|
486 onmouseover='document.getElementById("defline{{result['Iteration_iter-num']}}").innerHTML="{{line.defline|js_string_escape}}"'
|
|
487 onmouseout='document.getElementById("defline{{result['Iteration_iter-num']}}").innerHTML="Mouse-over to show defline and scores, click to show alignments"'
|
|
488 title="{{line.defline}}">
|
|
489 <div class="matchrow graphicrow">
|
|
490 {% for hit in line.colors %}
|
|
491 <div class="matchitem graphicitem"
|
|
492 style="background-color: {{hit[1]}}; width: {{hit[0]}}%"></div>
|
|
493 {% endfor %}
|
|
494 </div>
|
|
495 </a>
|
|
496
|
|
497 {% endfor %}
|
|
498 </div>
|
|
499 </div>
|
|
500 </div>
|
|
501 </section>
|
|
502
|
|
503
|
|
504
|
|
505 <section class=descriptions>
|
|
506 <h2>Descriptions</h2>
|
|
507
|
|
508 <div class=grey><div class=white>
|
|
509 <h4 class=darkHeader>Sequences producing significant alignments:</h4>
|
|
510
|
|
511 <table class=descriptiontable>
|
|
512 <col/><col/><col/><col/><col/><col/><col/>
|
|
513 <tr>
|
|
514 <th>Description</th>
|
|
515 <th>Max score</th>
|
|
516 <th>Total score</th>
|
|
517 <th>Query cover</th>
|
|
518 <th>E value</th>
|
|
519 <th>Ident</th>
|
|
520 <th>Accession</th>
|
|
521 </tr>
|
|
522 {% for hit in result|hit_info %}
|
|
523 <tr>
|
|
524 <td><div><a href="#hit{{hit.link_id}}"
|
|
525 title="{{hit.title}}"
|
|
526 id="description{{hit.link_id}}">
|
|
527 {{hit.title}}
|
|
528 </a></div></td>
|
|
529 <td>{{hit.maxscore}}</td>
|
|
530 <td>{{hit.totalscore}}</td>
|
|
531 <td>{{hit.cover}}</td>
|
|
532 <td>{{hit.e_value}}</td>
|
|
533 <td>{{hit.ident}}</td>
|
|
534 <td><a href="{{genelink(hit.hit|hitid)}}">{{hit.accession}}</a></td>
|
|
535 </tr>
|
|
536 {% endfor %}
|
|
537 </table>
|
|
538
|
|
539 </div></div>
|
|
540 </section>
|
|
541
|
|
542
|
|
543
|
|
544 <section class=alignments>
|
|
545 <h2>Alignments</h2>
|
|
546
|
|
547 <div class=grey><div class=white>
|
|
548 {% for hit in hits %}
|
|
549 <div class=alignment id=hit{{hit.Hit_num}}>
|
|
550
|
|
551 <div class=linkheader>
|
|
552 <div class=right><a href="#description{{hit.Hit_num}}">Descriptions</a></div>
|
|
553 <a class=linkheader href="{{genelink(hit|hitid)}}">GenBank</a>
|
|
554 <a class=linkheader href="{{genelink(hit|hitid, 'graph')}}">Graphics</a>
|
|
555 </div>
|
|
556
|
|
557 <div class=title>
|
|
558 <p class=hittitle>{{hit|firsttitle}}</p>
|
|
559 <p class=titleinfo>
|
|
560 <span class=b>Sequence ID:</span> <a href="{{genelink(hit|hitid)}}">{{hit|seqid}}</a>
|
|
561 <span class=b>Length:</span> {{hit.Hit_len}}
|
|
562 <span class=b>Number of Matches:</span> {{hit.Hit_hsps.Hsp|length}}
|
|
563 </p>
|
|
564 </div>
|
|
565
|
|
566 {% if hit|othertitles|length %}
|
|
567 <a class=showmoretitles onclick="toggle_visibility('moretitles{{hit.Hit_num|js_string_escape}}'); return false;" href=''>
|
|
568 See {{hit|othertitles|length}} more title(s)
|
|
569 </a>
|
|
570
|
|
571 <div class=moretitles id=moretitles{{hit.Hit_num}} style="display: none">
|
|
572 {% for title in hit|othertitles %}
|
|
573 <div class=title>
|
|
574 <p class=hittitle>{{title.title}}</p>
|
|
575 <p class=titleinfo>
|
|
576 <span class=b>Sequence ID:</span> <a href="{{genelink(title.hitid)}}">{{title.id}}</a>
|
|
577 </p>
|
|
578 </div>
|
|
579 {% endfor %}
|
|
580 </div>
|
|
581 {% endif %}
|
|
582
|
|
583 {% for hsp in hit.Hit_hsps.Hsp %}
|
|
584 <div class=hotspot>
|
|
585 <p class=range>
|
|
586 <span class=range>Range {{hsp.Hsp_num}}: {{hsp['Hsp_hit-from']}} to {{hsp['Hsp_hit-to']}}</span>
|
|
587 <a class=range href="{{genelink(hit|hitid, 'genbank', hsp)}}">GenBank</a>
|
|
588 <a class=range href="{{genelink(hit|hitid, 'graph', hsp)}}">Graphics</a>
|
|
589 </p>
|
|
590
|
|
591 <table class=hotspotstable>
|
|
592 <tr>
|
|
593 <th>Score</th><th>Expect</th><th>Identities</th><th>Gaps</th><th>Strand</th>
|
|
594 </tr>
|
|
595 <tr>
|
|
596 <td>{{hsp['Hsp_bit-score']|fmt('.1f')}} bits({{hsp.Hsp_score}})</td>
|
|
597 <td>{{hsp.Hsp_evalue|fmt('.1f')}}</td>
|
|
598 <td>{{ hsp.Hsp_identity }}/{{ hsp|len }}({{
|
|
599 (hsp.Hsp_identity/hsp|len) |fmt('.0%') }})</td>
|
|
600 <td>{{ hsp.Hsp_gaps }}/{{ hsp|len
|
|
601 }}({{ (hsp.Hsp_gaps / hsp|len) | fmt('.0%') }})</td>
|
|
602 <td>{{ hsp['Hsp_query-frame']|asframe }}/{{ hsp['Hsp_hit-frame']|asframe }}</td>
|
|
603 </tr>
|
|
604 </table>
|
|
605
|
|
606 <pre class=alignmentgraphic>{{hsp|alignment_pre}}</pre>
|
|
607 </div>
|
|
608 {% endfor %}
|
|
609
|
|
610 </div>
|
|
611
|
|
612 {% endfor %}
|
|
613 </div></div>
|
|
614 </section>
|
|
615 {% endif %}
|
|
616 </section>
|
|
617 {% endfor %}
|
|
618 {% endif %}
|
|
619
|
|
620 </div>
|
|
621
|
|
622 <footer>
|
|
623 This page was generated by <a href="https://github.com/thehyve/blast2html/">blast2html</a>.
|
|
624 </footer>
|
|
625 </body>
|
|
626 </html>
|
|
627
|
|
628 {#
|
|
629 Local Variables:
|
|
630 tab-width: 2
|
|
631 indent-tabs-mode: nil
|
|
632 End:
|
|
633 #}
|