scout-browser 4.80__py3-none-any.whl → 4.82.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. scout/__version__.py +1 -1
  2. scout/adapter/mongo/disease_terms.py +5 -2
  3. scout/adapter/mongo/query.py +23 -11
  4. scout/adapter/mongo/variant.py +2 -2
  5. scout/build/managed_variant.py +12 -1
  6. scout/build/variant/genotype.py +2 -0
  7. scout/build/variant/variant.py +5 -0
  8. scout/constants/__init__.py +1 -0
  9. scout/constants/clinvar.py +1 -1
  10. scout/constants/indexes.py +10 -0
  11. scout/constants/query_terms.py +3 -1
  12. scout/models/variant/variant.py +1 -0
  13. scout/parse/variant/frequency.py +56 -54
  14. scout/parse/variant/genotype.py +89 -15
  15. scout/parse/variant/transcript.py +17 -9
  16. scout/parse/variant/variant.py +12 -0
  17. scout/server/app.py +6 -3
  18. scout/server/blueprints/alignviewers/templates/alignviewers/utils.html +1 -1
  19. scout/server/blueprints/cases/controllers.py +2 -57
  20. scout/server/blueprints/cases/templates/cases/case_report.html +212 -190
  21. scout/server/blueprints/cases/templates/cases/chanjo2_form.html +47 -0
  22. scout/server/blueprints/cases/templates/cases/collapsible_actionbar.html +4 -4
  23. scout/server/blueprints/cases/templates/cases/gene_panel.html +17 -23
  24. scout/server/blueprints/cases/templates/cases/utils.html +3 -1
  25. scout/server/blueprints/cases/views.py +0 -22
  26. scout/server/blueprints/clinvar/controllers.py +3 -3
  27. scout/server/blueprints/clinvar/templates/clinvar/clinvar_submissions.html +29 -2
  28. scout/server/blueprints/clinvar/templates/clinvar/multistep_add_variant.html +36 -18
  29. scout/server/blueprints/clinvar/views.py +13 -1
  30. scout/server/blueprints/diagnoses/controllers.py +2 -0
  31. scout/server/blueprints/institutes/controllers.py +76 -38
  32. scout/server/blueprints/institutes/templates/overview/cases.html +54 -42
  33. scout/server/blueprints/managed_variants/templates/managed_variants/managed_variants.html +1 -1
  34. scout/server/blueprints/managed_variants/views.py +2 -4
  35. scout/server/blueprints/panels/templates/panels/panel.html +8 -7
  36. scout/server/blueprints/panels/templates/panels/panel_pdf_case_hits.html +2 -2
  37. scout/server/blueprints/panels/templates/panels/panel_pdf_simple.html +3 -3
  38. scout/server/blueprints/panels/views.py +2 -11
  39. scout/server/blueprints/phenotypes/templates/phenotypes/hpo_terms.html +3 -2
  40. scout/server/blueprints/variant/controllers.py +3 -2
  41. scout/server/blueprints/variant/templates/variant/components.html +1 -1
  42. scout/server/blueprints/variant/templates/variant/utils.html +3 -1
  43. scout/server/blueprints/variant/templates/variant/variant.html +20 -15
  44. scout/server/blueprints/variant/templates/variant/variant_details.html +78 -26
  45. scout/server/blueprints/variant/utils.py +9 -13
  46. scout/server/blueprints/variants/controllers.py +32 -3
  47. scout/server/blueprints/variants/forms.py +15 -1
  48. scout/server/blueprints/variants/templates/variants/components.html +55 -0
  49. scout/server/blueprints/variants/templates/variants/fusion-variants.html +3 -50
  50. scout/server/blueprints/variants/templates/variants/str-variants.html +8 -5
  51. scout/server/blueprints/variants/templates/variants/utils.html +57 -31
  52. scout/server/blueprints/variants/templates/variants/variants.html +1 -1
  53. scout/server/blueprints/variants/utils.py +7 -10
  54. scout/server/extensions/clinvar_extension.py +10 -2
  55. scout/server/templates/report_base.html +3 -3
  56. scout/server/templates/utils.html +2 -2
  57. {scout_browser-4.80.dist-info → scout_browser-4.82.1.dist-info}/METADATA +6 -5
  58. {scout_browser-4.80.dist-info → scout_browser-4.82.1.dist-info}/RECORD +62 -61
  59. {scout_browser-4.80.dist-info → scout_browser-4.82.1.dist-info}/LICENSE +0 -0
  60. {scout_browser-4.80.dist-info → scout_browser-4.82.1.dist-info}/WHEEL +0 -0
  61. {scout_browser-4.80.dist-info → scout_browser-4.82.1.dist-info}/entry_points.txt +0 -0
  62. {scout_browser-4.80.dist-info → scout_browser-4.82.1.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,6 @@
1
1
  {% from "cases/utils.html" import variant_transcripts %}
2
2
  {% from "utils.html" import comments_table, variant_related_comments_table %}
3
+ {% from "variants/components.html" import fusion_variants_header, default_fusion_variant_cells %}
3
4
 
4
5
  {% extends "report_base.html" %}
5
6
 
@@ -12,44 +13,46 @@
12
13
 
13
14
  {% block body %}
14
15
  <nav class="navbar sticky-top navbar-expand-lg navbar-light bg-light">
15
- <!-- Brand and toggle get grouped for better mobile display -->
16
- <a class="nav-link" href="{{ url_for('cases.case', institute_id=institute._id, case_name=case.display_name) }}" target="_blank">Case {{case.display_name}}</a>
16
+ <div class="container-fluid">
17
+ <!-- Brand and toggle get grouped for better mobile display -->
18
+ <a class="nav-link link-primary mx-2 " style="text-decoration: none !important;" href="{{ url_for('cases.case', institute_id=institute._id, case_name=case.display_name) }}" rel="noopener" target="_blank">Case {{case.display_name}}</a>
17
19
 
18
- <!-- Collect the nav links, forms, and other content for toggling -->
19
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
20
- <span class="navbar-toggler-icon"></span>
21
- </button>
20
+ <!-- Collect the nav links, forms, and other content for toggling -->
21
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
22
+ <span class="navbar-toggler-icon"></span>
23
+ </button>
22
24
 
23
- <div class="collapse navbar-collapse" id="navbarText">
24
- <ul class="navbar-nav mr-auto">
25
- <li class="nav-item">
26
- <a class="nav-link" href="#phenotype">Phenotype overview<span class="sr-only">(current)</span></a>
27
- </li>
28
- <li class="nav-item">
29
- <a class="nav-link" href="#gene_panels">Gene panels</a>
30
- </li>
31
- <li class="nav-item">
32
- <a class="nav-link" href="#causative_variants">Causative Variants</a>
33
- </li>
34
- <li class="nav-item">
35
- <a class="nav-link" href="#pinned_variants">Pinned variants</a>
36
- </li>
37
- <li class="nav-item">
38
- <a class="nav-link" href="#acmg_variants">ACMG-classified variants</a>
39
- </li>
40
- <li class="nav-item">
41
- <a class="nav-link" href="#manual_ranked_variants">Manual ranked</a>
42
- </li>
43
- <li class="nav-item">
44
- <a class="nav-link" href="#commented_variants">Commented variants</a>
45
- </li>
46
- <li class="nav-item">
47
- <a class="nav-link" href="#dismissed_variants">Dismissed variants</a>
48
- </li>
49
- </ul>
50
- <span class="navbar-text">
51
- <a href="{{ url_for('cases.pdf_case_report', institute_id=institute._id, case_name=case.display_name) }}"><button class="btn btn-sm btn-secondary" type="button">Download PDF</button></a>
52
- </span>
25
+ <div class="collapse navbar-collapse" id="navbarText">
26
+ <ul class="navbar-nav me-auto mb-2 mb-lg-0">
27
+ <li class="nav-item">
28
+ <a class="nav-link link-secondary" style="text-decoration: none !important;" href="#phenotype">Phenotype overview<span class="sr-only">(current)</span></a>
29
+ </li>
30
+ <li class="nav-item">
31
+ <a class="nav-link link-secondary" style="text-decoration: none !important;" href="#gene_panels">Gene panels</a>
32
+ </li>
33
+ <li class="nav-item">
34
+ <a class="nav-link link-secondary" style="text-decoration: none !important;" href="#causative_variants">Causative Variants</a>
35
+ </li>
36
+ <li class="nav-item">
37
+ <a class="nav-link link-secondary" style="text-decoration: none !important;" href="#pinned_variants">Pinned variants</a>
38
+ </li>
39
+ <li class="nav-item">
40
+ <a class="nav-link link-secondary" style="text-decoration: none !important;" href="#acmg_variants">ACMG-classified variants</a>
41
+ </li>
42
+ <li class="nav-item">
43
+ <a class="nav-link link-secondary" style="text-decoration: none !important;" href="#manual_ranked_variants">Manual ranked</a>
44
+ </li>
45
+ <li class="nav-item">
46
+ <a class="nav-link link-secondary" style="text-decoration: none !important;" href="#commented_variants">Commented variants</a>
47
+ </li>
48
+ <li class="nav-item">
49
+ <a class="nav-link link-secondary" style="text-decoration: none !important;" href="#dismissed_variants">Dismissed variants</a>
50
+ </li>
51
+ </ul>
52
+ <span class="navbar-text">
53
+ <a href="{{ url_for('cases.pdf_case_report', institute_id=institute._id, case_name=case.display_name) }}"><button class="btn btn-sm btn-secondary" type="button">Download PDF</button></a>
54
+ </span>
55
+ </div>
53
56
  </div>
54
57
  </nav>
55
58
 
@@ -67,17 +70,17 @@
67
70
  {% if coverage_report %}
68
71
  <div style="display: inline-block;">{{ coverage_report|safe }}</div><br>
69
72
  {% endif %}
70
- <a href="https://clinical-genomics.github.io/scout" target="_blank">clinical-genomics.github.io/scout</a>
73
+ <a style="text-decoration:none;" href="https://clinical-genomics.github.io/scout" rel="noopener" target="_blank">clinical-genomics.github.io/scout</a>
71
74
  </div>
72
75
  {% endblock %} <!-- end of block body -->
73
76
 
74
77
  {% macro phenotype_panel() %}
75
78
  <div class="card mb-3" style="border-width: 5px; display: block;">
76
79
  <div class="card-header">
77
- <a id="phenotype" href="{{ url_for('cases.case', institute_id=institute._id, case_name=case.display_name) }}" target="_blank" rel="noopener"><strong>Case {{ case.display_name }}</a> - Phenotype Overview</strong>
80
+ <a id="phenotype" class="link-primary" style="text-decoration: none !important;" href="{{ url_for('cases.case', institute_id=institute._id, case_name=case.display_name) }}" target="_blank" rel="noopener"><strong>Case {{ case.display_name }}</a> - Phenotype Overview</strong>
78
81
  </div>
79
82
  <div class="card-body">
80
- <table class="table table-sm" style="table-layout:fixed;">
83
+ <table class="table table-sm" aria-label="Pedigree and sample information">
81
84
  <tr>
82
85
  {% if case.madeline_info and case.individuals|length > 1 %}
83
86
  <td style='width: 33%;'>
@@ -122,15 +125,15 @@
122
125
  n.a.
123
126
  {% endif %}
124
127
  {% if ind.confirmed_sex %}
125
- <span class="badge badge-pill badge-sm badge-secondary">V</span>
128
+ <span class="badge rounded-pill py-1 bg-secondary">V</span>
126
129
  {% endif %}
127
130
  </td>
128
131
  <td>
129
132
  {% if ind.phenotype==2 %} <!--for later use-->
130
133
  {% do affected.append(ind.display_name) %}
131
- <span class="badge badge-pill badge-danger" title="{{ ind.phenotype_human }}">{{ ind.phenotype_human }}</span>
134
+ <span class="badge rounded-pill py-1 bg-danger" title="{{ ind.phenotype_human }}">{{ ind.phenotype_human }}</span>
132
135
  {% else %}
133
- <span class="badge badge-pill badge-secondary" title="{{ ind.phenotype_human }}">{{ ind.phenotype_human }}</span>
136
+ <span class="badge rounded-pill py-1 bg-secondary" title="{{ ind.phenotype_human }}">{{ ind.phenotype_human }}</span>
134
137
  {% endif %}
135
138
  </td>
136
139
  <td>{{ ind.analysis_type|upper }}</td>
@@ -138,9 +141,9 @@
138
141
  <td>{{ ind.predicted_ancestry or 'N/A' }}</td>
139
142
  <td>
140
143
  {% if ind.confirmed_parent == True %}
141
- <span class="badge badge-pill badge-sm badge-secondary">V</span>
144
+ <span class="badge rounded-pill py-1 bg-secondary">V</span>
142
145
  {% elif ind.confirmed_parent == False %}
143
- <span class="badge badge-pill badge-sm badge-danger">!</span>
146
+ <span class="badge rounded-pill py-1 bg-danger">!</span>
144
147
  {% else %}
145
148
  N/A
146
149
  {% endif %}
@@ -153,9 +156,9 @@
153
156
  </td>
154
157
  </tr>
155
158
  <tr>
156
- <td>Case status: <strong>
159
+ <td style="border-bottom:none;">Case status: <strong>
157
160
  {% if 'solved' in case.status%}
158
- <font color="green">{{case.status.upper()}}</font>
161
+ <span style="color:green">{{case.status.upper()}}</span>
159
162
  {% else %}
160
163
  {{case.status.upper()}}
161
164
  {% endif %}
@@ -163,45 +166,48 @@
163
166
  </td>
164
167
  </tr>
165
168
  </table>
166
- <table
169
+ <table class="table table-sm" aria-label="Case synopsis and phenotype information">
167
170
  <tr>
168
- <td style="width:50%">
171
+ <td style="width:50%;vertical-align:top;">
169
172
  {% if case.synopsis %}
170
- <strong>Synopsis:</strong>
173
+ <strong>Synopsis:</strong><br>
171
174
  {{ case.synopsis|markdown }}
172
175
  {% endif %}
173
176
  </td>
174
- <td class="ml-3 d-flex align-items-start flex-column">
175
- <strong>Associated phenotypes:</strong><br>
176
- {% if case.phenotype_terms %}
177
- <ul>
178
- {% for pheno in case.phenotype_terms %}
179
- <li>
180
- {{pheno.feature}} - (<a href="https://hpo.jax.org/app/browse/term/{{pheno.phenotype_id}}" target="_blank">{{pheno.phenotype_id}})</a>
181
- {% for feature_ind in pheno.individuals %} <!-- display eventual individual-level HPO terms -->
182
- {% for case_ind in case.individuals %}
183
- {% if feature_ind.individual_name == case_ind.display_name %}
184
- <span class="ml-1 {% if case_ind.phenotype == 2 %} text-danger {% endif %}">{{case_ind.display_name}}</span>
185
- {% endif %}
177
+ <td class="ms-3 d-flex align-items-start flex-column" style="border-bottom:none;">
178
+ <strong>Associated phenotypes:</strong>
179
+ {% if case.phenotype_terms %}
180
+ <ul>
181
+ {% for pheno in case.phenotype_terms %}
182
+ <li>
183
+ {{pheno.feature}} - (<a style="text-decoration:none;" href="https://hpo.jax.org/app/browse/term/{{pheno.phenotype_id}}" target="_blank">{{pheno.phenotype_id}})</a>
184
+ {% for feature_ind in pheno.individuals %} <!-- display eventual individual-level HPO terms -->
185
+ {% for case_ind in case.individuals %}
186
+ {% if feature_ind.individual_name == case_ind.display_name %}
187
+ <span class="ms-1 {% if case_ind.phenotype == 2 %} text-danger {% endif %}">{{case_ind.display_name}}</span>
188
+ {% endif %}
189
+ {% endfor %}
186
190
  {% endfor %}
187
- {% endfor %}
188
- </li>
189
- {% endfor %}
190
- </ul>
191
- {% else %}
192
- No associated HPO terms.
193
- {% endif %}
194
- <br>
195
- <strong>Associated diagnoses:</strong><br>
191
+ </li>
192
+ {% endfor %}
193
+ </ul>
194
+ {% else %}
195
+ <ul style="list-style-type: none; padding-left:0;">
196
+ <li>
197
+ No associated HPO terms.
198
+ </li>
199
+ </ul>
200
+ {% endif %}
201
+ <strong>Associated diagnoses:</strong>
196
202
  {% if case.diagnosis_phenotypes %}
197
203
  <ul>
198
204
  {% for dia in case.diagnosis_phenotypes %}
199
205
  <li>
200
- {{dia.description}} (<a href="{{dia.disease_link}}" target="_blank">{{dia.disease_id}})</a>
206
+ {{dia.description}} (<a style="text-decoration:none;" href="{{dia.disease_link}}" rel="noopener" target="_blank">{{dia.disease_id}})</a>
201
207
  {% for feature_ind in dia.individuals %} <!-- display eventual individual-level disease terms -->
202
208
  {% for case_ind in case.individuals %}
203
209
  {% if feature_ind.individual_name == case_ind.display_name %}
204
- <span class="ml-1 {% if case_ind.phenotype == 2 %} text-danger {% endif %}">{{case_ind.display_name}}</span>
210
+ <span class="ms-1 {% if case_ind.phenotype == 2 %} text-danger {% endif %}">{{case_ind.display_name}}</span>
205
211
  {% endif %}
206
212
  {% endfor %}
207
213
  {% endfor %}
@@ -209,13 +215,17 @@
209
215
  {% endfor %}
210
216
  </ul>
211
217
  {% else %}
212
- No associated diagnoses.
218
+ <ul style="list-style-type: none;padding-left:0;">
219
+ <li>
220
+ No associated diagnoses.
221
+ </li>
222
+ </ul>
213
223
  {% endif %}
214
224
  </td>
215
225
  </tr>
216
226
  {% if comments | count_cursor > 0 %}
217
227
  <tr>
218
- <td colspan=2>
228
+ <td colspan=2 style="border-bottom:none;">
219
229
  <table id="comment-table" class="table table-sm" style="background-color: transparent">
220
230
  <thead>
221
231
  <tr>
@@ -224,7 +234,7 @@
224
234
  </thead>
225
235
  <tbody>
226
236
  <tr>
227
- <td>
237
+ <td style="border-bottom:none;">
228
238
  <table id="comment-table-inner" class="table table-sm" style="background-color: transparent">
229
239
  {% for comment in comments %}
230
240
  <tr>
@@ -241,10 +251,10 @@
241
251
  </tr>
242
252
  {% else %}
243
253
  <tr>
244
- <td colspan=2>
254
+ <td colspan=2 style="border-bottom:none;">
245
255
  <table id="comment-table" class="table table-sm" style="background-color: transparent">
246
256
  <tr>
247
- <td>No comments left for this case.</td>
257
+ <td style="border-bottom:none;">No comments left for this case.</td>
248
258
  </tr>
249
259
  </table>
250
260
  </td>
@@ -297,7 +307,7 @@
297
307
  {% if panel.is_default %}
298
308
  <tr>
299
309
  <td>
300
- <a href="{{ url_for('panels.panel', panel_id=panel.panel_id, case_id=case._id, institute_id=institute._id) }}" target="_blank">
310
+ <a style="text-decoration:none;" href="{{ url_for('panels.panel', panel_id=panel.panel_id, case_id=case._id, institute_id=institute._id) }}" rel="noopener" target="_blank">
301
311
  {{ panel.display_name|truncate(75, True) }}
302
312
  </a>
303
313
  </td>
@@ -307,7 +317,7 @@
307
317
  {% endif %}
308
318
  {% else %}
309
319
  <tr>
310
- <td colspan="5">No panels linked to case</td>
320
+ <td colspan="5" style="border-bottom:none;">No panels linked to case</td>
311
321
  </tr>
312
322
  {% endfor %}
313
323
  </tbody>
@@ -342,6 +352,7 @@
342
352
  </div>
343
353
  <div class="card-body">
344
354
  {% set duplicated_variants = [] %}
355
+ {% set pinned_not_causative_variants = [] %}
345
356
  {% if variants.suspects_detailed %}
346
357
  {% if cancer %}
347
358
  {{ somatic_variant_table(variants.suspects_detailed) }}
@@ -349,16 +360,17 @@
349
360
  {% for pinned in variants.suspects_detailed|sort(attribute='variant_rank') %}
350
361
  {% if pinned['_id'] not in printed_vars %}
351
362
  {% do printed_vars.append(pinned['_id']) %}
363
+ {% do pinned_not_causative_variants.append(pinned['_id']) %}
352
364
  {{ variant_content(pinned, loop.index) }}
365
+ <br>
353
366
  {% else %}
354
367
  {% do duplicated_variants.append(pinned['_id']) %}
355
368
  {% endif %}
356
- <br>
357
369
  {% endfor %}
358
370
  {% else %}
359
371
  No pinned variants available for this case
360
372
  {% endif %}
361
- {% if variants.suspects_detailed and duplicated_variants|length == variants.suspects_detailed.suspects_detailed|length %}
373
+ {% if variants.suspects_detailed and pinned_not_causative_variants|length == 0 %}
362
374
  All pinned variants are described among the causative variants
363
375
  {% endif %}
364
376
  </div>
@@ -367,7 +379,7 @@
367
379
 
368
380
  {% macro classified_panel() %}
369
381
  <div class="card border-warning mb-3" style="border-width: 5px; display: block;">
370
- <div class="card-header bg-warning text-black" style="border-top-left-radius: 0; border-top-right-radius: 0;">
382
+ <div class="card-header bg-warning text-dark" style="border-top-left-radius: 0; border-top-right-radius: 0;">
371
383
  <a id="acmg_variants"><strong>Other ACMG-classified Variants</strong></a>
372
384
  </div>
373
385
  <div class="card-body">
@@ -377,10 +389,10 @@
377
389
  {% if variant['_id'] not in printed_vars %}
378
390
  {% do printed_vars.append(variant['_id']) %}
379
391
  {{ variant_content(variant, loop.index) }}
392
+ <br>
380
393
  {% else %}
381
394
  {% do duplicated_variants.append(variant['_id']) %}
382
395
  {% endif %}
383
- <br>
384
396
  {% endfor %}
385
397
  {% else %}
386
398
  No ACMG-classified variants available for this case
@@ -394,7 +406,7 @@
394
406
 
395
407
  {% macro tagged_panel() %}
396
408
  <div class="card border-warning mb-3" style="border-width: 5px; display: block;">
397
- <div class="card-header bg-warning text-black" style="border-top-left-radius: 0; border-top-right-radius: 0;">
409
+ <div class="card-header bg-warning text-dark" style="border-top-left-radius: 0; border-top-right-radius: 0;">
398
410
  <a id="manual_ranked_variants"><strong>Other Manual Ranked (Tagged) Variants</strong></a>
399
411
  </div>
400
412
  <div class="card-body">
@@ -404,10 +416,10 @@
404
416
  {% if variant['_id'] not in printed_vars %}
405
417
  {% do printed_vars.append(variant['_id']) %}
406
418
  {{ variant_content(variant, loop.index) }}
419
+ <br>
407
420
  {% else %}
408
421
  {% do duplicated_variants.append(variant['_id']) %}
409
422
  {% endif %}
410
- <br>
411
423
  {% endfor %}
412
424
  {% endif %}
413
425
  {% if variants.tier_detailed %}
@@ -415,10 +427,10 @@
415
427
  {% if variant['_id'] not in printed_vars %}
416
428
  {% do printed_vars.append(variant['_id']) %}
417
429
  {{ variant_content(variant, loop.index) }}
430
+ <br>
418
431
  {% else %}
419
432
  {% do duplicated_variants.append(variant['_id']) %}
420
433
  {% endif %}
421
- <br>
422
434
  {% endfor %}
423
435
  {% endif %}
424
436
  {% if not (variants.tagged_detailed or variants.tier_detailed) %}
@@ -431,6 +443,18 @@
431
443
  </div>
432
444
  {% endmacro %}
433
445
 
446
+ {% macro overlapping_panels(variant) %}
447
+ {% if variant.case_panels %}
448
+ {% if variant.case_panels|length <= 3 %}
449
+ {% for panel in variant.case_panels %}
450
+ <a style="text-decoration:none;" href="{{ url_for('panels.panel', panel_id=panel_id) }}" target="_blank" rel="noopener" class="badge bg-secondary">{{ panel.panel_name }}</a><br>
451
+ {% endfor %}
452
+ {% else %}
453
+ {{ variant.case_panels|length }} panels
454
+ {% endif %}
455
+ {% endif %}
456
+ {% endmacro %}
457
+
434
458
  {% macro variant_content(variant, index) %}
435
459
  {% if variant.category == 'snv' %}
436
460
  {{ sn_variant_content(variant, index) }}
@@ -445,7 +469,7 @@
445
469
 
446
470
  {% macro commented_panel() %}
447
471
  <div class="card border-warning mb-3" style="border-width: 5px; display: block;">
448
- <div class="card-header bg-warning text-black" style="border-top-left-radius: 0; border-top-right-radius: 0;">
472
+ <div class="card-header bg-warning text-dark" style="border-top-left-radius: 0; border-top-right-radius: 0;">
449
473
  <a id="commented_variants"><strong>Other Commented Variants</strong></a>
450
474
  </div>
451
475
  <div class="card-body">
@@ -463,10 +487,10 @@
463
487
  {% else %}
464
488
  {{ sv_variant_content(variant, loop.index) }}
465
489
  {% endif %}
490
+ <br>
466
491
  {% else %}
467
492
  {% do duplicated_variants.append(variant['_id']) %}
468
493
  {% endif %}
469
- <br>
470
494
  {% endfor %}
471
495
  {% else %}
472
496
  No commented variants for this case
@@ -482,13 +506,13 @@
482
506
  {% macro sn_variant_content(variant, index) %} <!--The entire description of a single nucleotide variant, dynamic content -->
483
507
  <div class="card" style="border-width: 5px; display: block;">
484
508
  <div class="card-header" >
485
- <div class="rd-flex align-items-center ">
486
- # <a href="{{ url_for('variant.variant', institute_id=institute._id, case_name=case.display_name, variant_id=variant._id) }}" target="_blank"><strong>{{variant.display_name[:30]}}</strong></a>&nbsp;
487
- <span class="badge badge-pill badge-success">{{variant.category | upper}}</span>&nbsp;
509
+ <div>
510
+ # <a style="text-decoration:none;" href="{{ url_for('variant.variant', institute_id=institute._id, case_name=case.display_name, variant_id=variant._id) }}" rel="noopener" target="_blank"><strong>{{variant.display_name[:30]}}</strong></a>&nbsp;
511
+ <span class="badge rounded-pill bg-success py-1">{{variant.category | upper}}</span>&nbsp;
488
512
  {% if variant.sanger_ordered and variant.validation %}
489
- <span class="badge badge-pill badge-info" title="verif-status">Verification:{{variant.validation}}</span>
513
+ <span class="badge rounded-pill bg-info py-1" title="verif-status">Verification:{{variant.validation}}</span>
490
514
  {% elif variant.sanger_ordered %}
491
- <span class="badge badge-info" title="sanger-status">Verification ordered</span>
515
+ <span class="badge bg-info py-1" title="sanger-status">Verification ordered</span>
492
516
  {% endif %}
493
517
  </div>
494
518
  {{ variant_phenotypes(variant) }}
@@ -532,22 +556,14 @@
532
556
  {% endif %}
533
557
  </td>
534
558
  <td>
535
- {% if variant.panels%}
536
- {% if variant.panels|length <= 3 %}
537
- {% for panel_id in variant.panels %}
538
- <a href="{{ url_for('panels.panel', panel_id=panel_id) }}" target="_blank" class="badge badge-secondary">{{ panel_id }}</a><br>
539
- {% endfor %}
540
- {% else %}
541
- {{ variant.panels|length }} panels
542
- {% endif %}
543
- {% endif %}
559
+ {{ overlapping_panels(variant) }}
544
560
  </td>
545
561
  </tr>
546
562
  </tbody>
547
563
  </table>
548
564
  <table class="table table-sm">
549
565
  <tr>
550
- <td style="width=45%">
566
+ <td style="width:60%;">
551
567
  {{ genotype_table(variant) }}
552
568
  </td>
553
569
  <td style="width:3%"></td>
@@ -557,11 +573,11 @@
557
573
  <tr>
558
574
  <th>Pop. frequency
559
575
  {% if variant.frequency == 'common' %}
560
- <span class="badge badge-danger">{{variant.frequency}}</span>
576
+ <span class="badge bg-danger">{{variant.frequency}}</span>
561
577
  {% elif variant.frequency == 'uncommon' %}
562
- <span class="badge badge-warning">{{variant.frequency}}</span>
578
+ <span class="badge bg-warning text-dark">{{variant.frequency}}</span>
563
579
  {% else %}
564
- <span class="badge badge-success">{{variant.frequency}}</span>
580
+ <span class="badge bg-success">{{variant.frequency}}</span>
565
581
  {% endif %}
566
582
  </th>
567
583
  <th>
@@ -572,7 +588,7 @@
572
588
  <tr>
573
589
  <td>
574
590
  {% if variant.dbsnp_id %}
575
- <a href="{{ variant.thousandg_link }}" target="_blank">1000G</a>
591
+ <a style="text-decoration:none;" href="{{ variant.thousandg_link }}" rel="noopener" target="_blank">1000G</a>
576
592
  {% else %}
577
593
  1000G
578
594
  {% endif %}
@@ -588,7 +604,7 @@
588
604
  </td>
589
605
  </tr>
590
606
  <tr>
591
- <td><a title="Exome Aggregation Consortium" target="_blank" href="{{ variant.exac_link }}">ExAC</a></td>
607
+ <td><a style="text-decoration:none;" title="Exome Aggregation Consortium" rel="noopener" target="_blank" href="{{ variant.exac_link }}">ExAC</a></td>
592
608
  <td>
593
609
  {% if variant.max_exac_frequency %}
594
610
  {{ variant.max_exac_frequency|human_decimal }} <small>(max)</small> |
@@ -600,7 +616,7 @@
600
616
  </td>
601
617
  </tr>
602
618
  <tr>
603
- <td><a title="genome Aggregation Database" target="_blank" href="{{ variant.gnomad_link }}">gnomAD</a></td>
619
+ <td><a style="text-decoration:none;" title="genome Aggregation Database" rel="noopener" target="_blank" href="{{ variant.gnomad_link }}">gnomAD</a></td>
604
620
  <td>
605
621
  {% if 'gnomad_frequency' in variant%}
606
622
  {% if variant.max_gnomad_frequency %}
@@ -623,8 +639,8 @@
623
639
  <table id="panel-table" class="table table-sm" style="background-color: transparent">
624
640
  <thead>
625
641
  <tr>
626
- <th>Scout Rank</th>
627
- <th>Scout score</th>
642
+ <th>Rank</th>
643
+ <th>Score</th>
628
644
  <th>Manual rank</th>
629
645
  <th>CADD score</th>
630
646
  {% if not cancer %}
@@ -639,10 +655,10 @@
639
655
  <td>{{variant.rank_score}}</td>
640
656
  <td>
641
657
  {% if variant.manual_rank %}
642
- <span class="badge badge-pill badge-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
658
+ <span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
643
659
  {% endif %}
644
660
  {% if variant.cancer_tier %}
645
- <span class="badge badge-pill badge-secondary" title="Tier">{{ cancer_tier_options[variant.cancer_tier]['label'] }}</span>
661
+ <span class="badge rounded-pill bg-secondary" title="Tier">{{ cancer_tier_options[variant.cancer_tier]['label'] }}</span>
646
662
  {% endif %}
647
663
  {% if not (variant.manual_rank or variant.cancer_tier) %}
648
664
  -
@@ -664,17 +680,17 @@
664
680
  <span class="float-left">
665
681
  {% if variant.genetic_models %}
666
682
  {% for model in variant.genetic_models|sort %}
667
- <span class="badge badge-info" title="{{genetic_models[model]}}">{{ model }}</span>
683
+ <span class="badge bg-info" title="{{genetic_models[model]}}">{{ model }}</span>
668
684
  {% endfor %}
669
685
  {% else %}
670
- <span class="badge badge-warning">No models followed</span>
686
+ <span class="badge bg-warning text-dark">No models followed</span>
671
687
  {% endif %}
672
688
  </span>
673
689
  </td>
674
690
  {% endif %}
675
691
  <td>
676
692
  {% if variant.acmg_classification %}
677
- <span class="badge badge-pill badge-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['code'] }}</span>
693
+ <span class="badge rounded-pill bg-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['code'] }}</span>
678
694
  {% else %}
679
695
  -
680
696
  {% endif %}
@@ -697,7 +713,7 @@
697
713
  {% for gene in variant.genes %}
698
714
  <tr>
699
715
  <td>
700
- <a href="{{ url_for('genes.gene', hgnc_id=gene.hgnc_id) }}">
716
+ <a style="text-decoration:none;" href="{{ url_for('genes.gene', hgnc_id=gene.hgnc_id) }}">
701
717
  {{ gene.common.hgnc_symbol if gene.common else gene.hgnc_id }}
702
718
  </a>
703
719
  </td>
@@ -709,7 +725,7 @@
709
725
  <td>
710
726
  <ul class="p-0" style="list-style-type: none;">
711
727
  {% for disease_term in gene.disease_terms %}
712
- <li class="d-flex align-items-baseline"><span class="badge badge-secondary m-1">{{ disease_term._id}}</span>&nbsp;<span>{{ disease_term.description }}&nbsp;{{ disease_term.inheritance }}</span></li>
728
+ <li class="d-flex align-items-baseline"><span class="badge bg-secondary m-1">{{ disease_term._id}}</span>&nbsp;<span>{{ disease_term.description }}&nbsp;{{ disease_term.inheritance }}</span></li>
713
729
  {% endfor %}
714
730
  </ul>
715
731
  </td>
@@ -732,11 +748,11 @@
732
748
  {{ variant.hgnc_symbols|length }}&nbsp;genes
733
749
  {% else %}
734
750
  {% for gene in variant.genes %}
735
- <a href="http://www.genenames.org/cgi-bin/gene_symbol_report?match={{ gene.hgnc_symbol }}" target="_blank">{{ gene.hgnc_symbol }}&nbsp;<span class="badge badge-secondary">{{gene.region_annotation}}</span></a><br>
751
+ <a href="http://www.genenames.org/cgi-bin/gene_symbol_report?match={{ gene.hgnc_symbol }}" target="_blank">{{ gene.hgnc_symbol }}&nbsp;<span class="badge bg-secondary">{{gene.region_annotation}}</span></a><br>
736
752
  {% endfor %}
737
753
  {% endif %}
738
754
  {% else %} <!-- 0 genes. strs for instance -->
739
- <span class="badge badge-secondary">-</span>
755
+ <span class="badge bg-secondary">-</span>
740
756
  {% endif %}
741
757
  {% endmacro %}
742
758
 
@@ -759,8 +775,8 @@
759
775
  </thead>
760
776
  {% for variant in variants.dismissed_detailed|sort(attribute='variant_rank') %}
761
777
  <tr{% if loop.index0 % 2 %} class="light-grey" {% endif %}>
762
- <td width="5%">#{{loop.index}}</td>
763
- <td width="25%">
778
+ <td style="width:5%,">#{{loop.index}}</td>
779
+ <td style="width:25%;">
764
780
  {% if variant.category == 'snv' %}
765
781
  <a href="{{ url_for('variant.variant', institute_id=institute._id, case_name=case.display_name, variant_id=variant._id) }}" target="_blank"><strong>{{variant.display_name[:30]}}</strong></a>
766
782
  {% elif variant.category == 'cancer' %}
@@ -771,8 +787,8 @@
771
787
  <a href="{{ url_for('variant.variant', institute_id=institute._id, case_name=case.display_name, variant_id=variant._id) }}" target="_blank"><strong>rep. {{variant.str_repid}}</strong></a>
772
788
  {% endif %}
773
789
  </td>
774
- <td width="5%">{{variant.category|upper}}</td>
775
- <td width="15%">
790
+ <td style="width:5%;">{{variant.category|upper}}</td>
791
+ <td style="width:15%;"
776
792
  {{ dismissed_gene_list(variant) }}
777
793
  </td>
778
794
 
@@ -786,11 +802,11 @@
786
802
  <tr style="background-color: transparent">
787
803
  <th>Pop. frequency
788
804
  {% if variant.frequency == 'common' %}
789
- <span class="badge badge-danger">{{variant.frequency}}</span>
805
+ <span class="badge bg-danger">{{variant.frequency}}</span>
790
806
  {% elif variant.frequency == 'uncommon' %}
791
- <span class="badge badge-warning">{{variant.frequency}}</span>
807
+ <span class="badge bg-warning text-dark">{{variant.frequency}}</span>
792
808
  {% else %}
793
- <span class="badge badge-success">{{variant.frequency}}</span>
809
+ <span class="badge bg-success">{{variant.frequency}}</span>
794
810
  {% endif %}
795
811
  </th>
796
812
  <th>
@@ -851,7 +867,7 @@
851
867
 
852
868
  ({% if variant.genetic_models %}
853
869
  {% for model in variant.genetic_models|sort %}
854
- <span class="badge badge-info" title="{{genetic_models[model]}}">{{model}}</span>
870
+ <span class="badge bg-info" title="{{genetic_models[model]}}">{{model}}</span>
855
871
  {% endfor %}
856
872
  {% else %}
857
873
  No models followed
@@ -918,9 +934,9 @@
918
934
  {% macro sv_variant_content(variant,index) %} <!--The entire description of a structural variant, dynamic contentc -->
919
935
  <div class="card" style="border-width: 5px; display: block;">
920
936
  <div class="card-header">
921
- <div class="rd-flex align-items-center">
922
- # <a href="{{ url_for('variant.sv_variant', institute_id=institute._id, case_name=case.display_name, variant_id=variant._id) }}" target="_blank"><strong>chr{{variant.chromosome}}:{{variant.position}}_{{variant.sub_category|upper}}</strong></a>
923
- &nbsp;<span class="badge badge-pill badge-warning">{{variant.sub_category|upper}}</span>
937
+ <div>
938
+ # <a style="text-decoration:none;" href="{{ url_for('variant.sv_variant', institute_id=institute._id, case_name=case.display_name, variant_id=variant._id) }}" rel="noopener" target="_blank"><strong>chr{{variant.chromosome}}:{{variant.position}}_{{variant.sub_category|upper}}</strong></a>
939
+ &nbsp;<span class="badge rounded-pill bg-warning py-1 text-dark">{{variant.sub_category|upper}}</span>
924
940
  </div>
925
941
  {{ variant_phenotypes(variant) }}
926
942
  </div>
@@ -938,7 +954,7 @@
938
954
  </thead>
939
955
  <tbody>
940
956
  <tr>
941
- <td><span class="badge badge-warning float-left">{{variant.sub_category|upper}}</span></td>
957
+ <td><span class="badge bg-warning float-left text-dark">{{variant.sub_category|upper}}</span></td>
942
958
  <td>{{ variant.length }}</td>
943
959
  <td>
944
960
  {% if variant.chromosome == variant.end_chrom %}
@@ -953,20 +969,12 @@
953
969
  <td>-</td>
954
970
  {% endif %}
955
971
  <td>
956
- {% if variant.panels %}
957
- {% if variant.panels|length <= 3 %}
958
- {% for panel_id in variant.panels %}
959
- <a href="{{ url_for('panels.panel', panel_id=panel_id) }}" target="_blank" class="badge badge-secondary">{{ panel_id }}</a><br>
960
- {% endfor %}
961
- {% else %}
962
- {{ variant.panels|length }} panels
963
- {% endif %}
964
- {% endif %}
972
+ {{ overlapping_panels(variant) }}
965
973
  </td>
966
974
  <td>
967
975
  {% if variant.callers %}
968
976
  {% for caller,call in variant.callers|sort %}
969
- <span class="badge badge-secondary">{{ caller+':'+call }}</span>
977
+ <span class="badge bg-secondary">{{ caller+':'+call }}</span>
970
978
  {% endfor %}
971
979
  {% else %}
972
980
  -
@@ -977,7 +985,7 @@
977
985
  </table>
978
986
  <table id="panel-table" class="table table-sm" style="background-color: transparent">
979
987
  <tr>
980
- <td>
988
+ <td style="width:60%;">
981
989
  {{genotype_table(variant)}}
982
990
  </td>
983
991
  <td style="width:3%"></td>
@@ -992,7 +1000,7 @@
992
1000
  <td>{{ freq_name }}</td>
993
1001
  <td>
994
1002
  {% if value %}
995
- <span class="badge badge-secondary">{{ value|human_decimal }}</span>
1003
+ <span class="badge bg-secondary">{{ value|human_decimal }}</span>
996
1004
  {% else %}
997
1005
  <span class="text-muted">Not annotated</span>
998
1006
  {% endif %}
@@ -1004,11 +1012,30 @@
1004
1012
  </td>
1005
1013
  </tr>
1006
1014
  </table>
1015
+ {% if variant.category == "fusion" %}
1016
+ <table id="panel-table" class="table table-sm" style="background-color: transparent">
1017
+ {{ fusion_variants_header() }}
1018
+ <tbody>
1019
+ <tr>
1020
+ <td class="text-center">{{variant.variant_rank}}</td>
1021
+ <td>
1022
+ {% if variant.cancer_tier %}
1023
+ <span class="badge rounded-pill bg-secondary" title="Tier">{{ cancer_tier_options[variant.cancer_tier]['label'] }}</span>
1024
+ {% endif %}
1025
+ {% if variant.acmg_classification %}
1026
+ <span class="badge rounded-pill bg-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['code'] }}</span>
1027
+ {% endif %}
1028
+ </td>
1029
+ {{ default_fusion_variant_cells(institute, case, variant) }}
1030
+ </tr>
1031
+ </tbody>
1032
+ </table>
1033
+ {% else %}
1007
1034
  <table id="panel-table" class="table table-sm" style="background-color: transparent">
1008
1035
  <thead>
1009
1036
  <tr>
1010
- <th>Scout Rank</th>
1011
- <th>Scout score</th>
1037
+ <th>Rank</th>
1038
+ <th>Score</th>
1012
1039
  <th>Manual rank</th>
1013
1040
  {% if not cancer %}
1014
1041
  <th>Inheritance models</th>
@@ -1022,29 +1049,31 @@
1022
1049
  <td>{{variant.rank_score}}</td>
1023
1050
  <td>
1024
1051
  {% if variant.manual_rank %}
1025
- <span class="badge badge-pill badge-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
1052
+ <span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
1026
1053
  {% endif %}
1027
1054
  {% if variant.cancer_tier %}
1028
- <span class="badge badge-pill badge-secondary" title="Tier">{{ cancer_rank_options[variant.cancer_tier]['label'] }}</span>
1055
+ <span class="badge rounded-pill bg-secondary" title="Tier">{{ cancer_tier_options[variant.cancer_tier]['label'] }}</span>
1029
1056
  {% endif %}
1030
1057
  {% if not (variant.manual_rank or variant.cancer_tier) %}
1031
1058
  -
1032
1059
  {% endif %}
1033
1060
  </td>
1034
- <td>
1035
- <span class="float-left">
1036
- {% if variant.genetic_models %}
1037
- {% for model in variant.genetic_models|sort %}
1038
- <span class="badge badge-info" title="{{genetic_models[model]}}">{{ model }}</span>
1039
- {% endfor %}
1040
- {% else %}
1041
- <span class="badge badge-warning">No models followed</span>
1042
- {% endif %}
1043
- </span>
1044
- </td>
1061
+ {% if not cancer %}
1062
+ <td>
1063
+ <span class="float-left">
1064
+ {% if variant.genetic_models %}
1065
+ {% for model in variant.genetic_models|sort %}
1066
+ <span class="badge bg-info" title="{{genetic_models[model]}}">{{ model }}</span>
1067
+ {% endfor %}
1068
+ {% else %}
1069
+ <span class="badge bg-warning text-dark">No models followed</span>
1070
+ {% endif %}
1071
+ </span>
1072
+ </td>
1073
+ {% endif %}
1045
1074
  <td>
1046
1075
  {% if variant.acmg_classification %}
1047
- <span class="badge badge-pill badge-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['code'] }}</span>
1076
+ <span class="badge rounded-pill bg-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['code'] }}</span>
1048
1077
  {% else %}
1049
1078
  -
1050
1079
  {% endif %}
@@ -1052,6 +1081,7 @@
1052
1081
  </tr>
1053
1082
  </tbody>
1054
1083
  </table>
1084
+ {% endif %}
1055
1085
  <table id="panel-table" class="table table-sm" style="background-color: transparent">
1056
1086
  {% if variant.genes and variant.genes|length <= 3 %}
1057
1087
  <thead>
@@ -1067,7 +1097,7 @@
1067
1097
  {% for gene in variant.genes %}
1068
1098
  <tr>
1069
1099
  <td>
1070
- <a href="{{ url_for('genes.gene', hgnc_id=gene.hgnc_id) }}">
1100
+ <a style="text-decoration:none;" href="{{ url_for('genes.gene', hgnc_id=gene.hgnc_id) }}">
1071
1101
  {{ gene.common.hgnc_symbol if gene.common else gene.hgnc_id }}
1072
1102
  </a>
1073
1103
  </td>
@@ -1079,7 +1109,7 @@
1079
1109
  <td>
1080
1110
  <ul>
1081
1111
  {% for disease_term in gene.disease_terms %}
1082
- <li class="d-flex align-items-baseline"><span class="badge badge-secondary m-1">{{ disease_term._id}}</span>&nbsp;<span>{{ disease_term.description }}&nbsp;{{ disease_term.inheritance }}</span></li>
1112
+ <li class="d-flex align-items-baseline"><span class="badge bg-secondary m-1">{{ disease_term._id}}</span>&nbsp;<span>{{ disease_term.description }}&nbsp;{{ disease_term.inheritance }}</span></li>
1083
1113
  {% endfor %}
1084
1114
  </ul>
1085
1115
  </td>
@@ -1113,9 +1143,9 @@
1113
1143
  {% macro str_variant_content(variant,index) %}
1114
1144
  <div class="card" style="border-width: 5px; display: block;">
1115
1145
  <div class="card-header">
1116
- <div class="rd-flex align-items-center">
1117
- # <a href="{{ url_for('variant.sv_variant', institute_id=institute._id, case_name=case.display_name, variant_id=variant._id) }}" target="_blank"><strong>{{variant.str_repid}}:{{ variant.alternative|replace("<", "")|replace(">", "") }} - {{variant.str_display_ru or variant.str_ru}} - {{ variant.str_status| upper |replace("_", " ") }}</strong></a>
1118
- &nbsp;<span class="badge badge-pill badge-info">{{variant.category | upper}}</span>
1146
+ <div>
1147
+ # <a style="text-decoration:none;" href="{{ url_for('variant.sv_variant', institute_id=institute._id, case_name=case.display_name, variant_id=variant._id) }}" rel="noopener" target="_blank"><strong>{{variant.str_repid}}:{{ variant.alternative|replace("<", "")|replace(">", "") }} - {{variant.str_display_ru or variant.str_ru}} - {{ variant.str_status| upper |replace("_", " ") }}</strong></a>
1148
+ &nbsp;<span class="badge rounded-pill bg-info py-1">{{variant.category | upper}}</span>
1119
1149
  </div>
1120
1150
  {{ variant_phenotypes(variant) }}
1121
1151
  </div>
@@ -1138,8 +1168,8 @@
1138
1168
  {% elif variant.str_status == 'pre_mutation' %}
1139
1169
  <tr class="bg-warning">
1140
1170
  {% endif %}
1141
- <td><span class="badge badge-info">{{variant.category | upper}}</span></td>
1142
- <td>{{ variant.alternative|replace("STR", "")|replace("<", "")|replace(">", "") }}</td>
1171
+ <td><span class="badge bg-info">{{variant.category | upper}}</span></td>
1172
+ <td>{{ variant.str_mc }}</td>
1143
1173
  <td>{{ variant.str_ref }}</td>
1144
1174
  <td>
1145
1175
  {% if variant.chromosome == variant.end_chrom %}
@@ -1149,15 +1179,7 @@
1149
1179
  {% endif %}
1150
1180
  </td>
1151
1181
  <td>
1152
- {% if variant.panels %}
1153
- {% if variant.panels|length <= 3 %}
1154
- {% for panel_id in variant.panels %}
1155
- <a href="{{ url_for('panels.panel', panel_id=panel_id) }}" target="_blank" class="badge badge-secondary">{{ panel_id }}</a><br>
1156
- {% endfor %}
1157
- {% else %}
1158
- {{ variant.panels|length }} panels
1159
- {% endif %}
1160
- {% endif %}
1182
+ {{ overlapping_panels(variant) }}
1161
1183
  </td>
1162
1184
  </tr>
1163
1185
  </tbody>
@@ -1185,7 +1207,7 @@
1185
1207
  <td class="text-center">{{ sample.genotype_call }}</td>
1186
1208
  {% if sample.allele_depths %}
1187
1209
  {% for number in sample.allele_depths %}
1188
- <td class="text-right">
1210
+ <td class="text-end">
1189
1211
  {% if number == -1 %}
1190
1212
  <small>N/A</small>
1191
1213
  {% else %}
@@ -1194,8 +1216,8 @@
1194
1216
  </td>
1195
1217
  {% endfor %}
1196
1218
  {% else %}
1197
- <td class="text-right"><small>N/A</small></td>
1198
- <td class="text-right"><small>N/A</small></td>
1219
+ <td class="text-end"><small>N/A</small></td>
1220
+ <td class="text-end"><small>N/A</small></td>
1199
1221
  {% endif %}
1200
1222
  <td><small>{{ sample.so }}</small></td>
1201
1223
  </tr>
@@ -1208,8 +1230,8 @@
1208
1230
  <table id="panel-table" class="table table-sm table-bordered" style="background-color: transparent; margin-left:-.3rem;">
1209
1231
  <thead>
1210
1232
  <tr class="table-secondary">
1211
- <th>Scout Rank</th>
1212
- <th>Scout score</th>
1233
+ <th>Rank</th>
1234
+ <th>Score</th>
1213
1235
  <th>Manual rank</th>
1214
1236
  </tr>
1215
1237
  </thead>
@@ -1219,10 +1241,10 @@
1219
1241
  <td>{{variant.rank_score}}</td>
1220
1242
  <td>
1221
1243
  {% if variant.manual_rank %}
1222
- <span class="badge badge-pill badge-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
1244
+ <span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
1223
1245
  {% endif %}
1224
1246
  {% if variant.cancer_tier %}
1225
- <span class="badge badge-pill badge-secondary" title="Tier">{{ cancer_rank_options[variant.cancer_tier]['label'] }}</span>
1247
+ <span class="badge rounded-pill bg-secondary" title="Tier">{{ cancer_tier_options[variant.cancer_tier]['label'] }}</span>
1226
1248
  {% endif %}
1227
1249
  {% if not (variant.manual_rank or variant.cancer_tier) %}
1228
1250
  <span class="text-center">-</span>
@@ -1251,7 +1273,7 @@
1251
1273
  </td>
1252
1274
  <td>
1253
1275
  {% if variant.str_source.display %}
1254
- <a href="{{variant.str_source_link}}" target="_blank" rel="noopener noreferrer">{{ variant.str_source.display }}</a>
1276
+ <a style="text-decoration:none;" href="{{variant.str_source_link}}" target="_blank" rel="noopener noreferrer">{{ variant.str_source.display }} </a>
1255
1277
  {% else %}
1256
1278
  "-"
1257
1279
  {% endif %}
@@ -1271,7 +1293,7 @@
1271
1293
  {% macro variant_phenotypes(variant) %}
1272
1294
  {% if variant.get('phenotypes') %}
1273
1295
  <div class="mt-3">
1274
- <h6 class="card-subtitle mb-2 text-muted"><span class="badge badge-warning">Partial causative</span>
1296
+ <h6 class="card-subtitle mb-2 text-muted"><span class="badge bg-warning text-dark">Partial causative</span>
1275
1297
  Disease terms: {{ variant['phenotypes'].get('diagnosis_phenotypes')|join(' ')}} -
1276
1298
  HPO terms:&nbsp;
1277
1299
  {%- for hpo_term in variant['phenotypes'].get('phenotype_terms') -%}
@@ -1333,7 +1355,7 @@
1333
1355
  <div class="card" style="border-width: 5px; display: block;">
1334
1356
  <div class="card-header">Summary table</div>
1335
1357
  <div class="card-body">
1336
- <div class="row d-flex align-items-center">
1358
+ <div class="row">
1337
1359
  <table id="panel-table" class="table table-sm table-bordered" style="background-color: transparent; margin-left:-.3rem;">
1338
1360
  <thead>
1339
1361
  <tr class="table-secondary">
@@ -1389,9 +1411,9 @@
1389
1411
  </td>
1390
1412
  <td>
1391
1413
  {% if variant.acmg_classification %}
1392
- <span class="badge badge-pill badge-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['short'] }}</span>
1414
+ <span class="badge rounded-pill bg-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['short'] }}</span>
1393
1415
  {% elif variant.manual_rank %}
1394
- <span class="badge badge-pill badge-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
1416
+ <span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
1395
1417
  {% else %}
1396
1418
  -
1397
1419
  {% endif %}
@@ -1430,9 +1452,9 @@
1430
1452
  </td>
1431
1453
  <td>
1432
1454
  {% if variant.acmg_classification %}
1433
- <span class="badge badge-pill badge-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['short'] }}</span>
1455
+ <span class="badge rounded-pill bg-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['short'] }}</span>
1434
1456
  {% elif variant.manual_rank %}
1435
- <span class="badge badge-pill badge-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
1457
+ <span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
1436
1458
  {% else %}
1437
1459
  -
1438
1460
  {% endif %}