scout-browser 4.80__py3-none-any.whl → 4.81__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.
- scout/__version__.py +1 -1
- scout/adapter/mongo/variant.py +2 -2
- scout/constants/__init__.py +1 -0
- scout/constants/indexes.py +10 -0
- scout/server/blueprints/cases/templates/cases/case_report.html +135 -129
- scout/server/blueprints/cases/templates/cases/gene_panel.html +13 -12
- scout/server/blueprints/panels/templates/panels/panel_pdf_case_hits.html +2 -2
- scout/server/blueprints/panels/templates/panels/panel_pdf_simple.html +3 -3
- scout/server/templates/report_base.html +3 -3
- scout/server/templates/utils.html +2 -2
- {scout_browser-4.80.dist-info → scout_browser-4.81.dist-info}/METADATA +1 -1
- {scout_browser-4.80.dist-info → scout_browser-4.81.dist-info}/RECORD +16 -16
- {scout_browser-4.80.dist-info → scout_browser-4.81.dist-info}/LICENSE +0 -0
- {scout_browser-4.80.dist-info → scout_browser-4.81.dist-info}/WHEEL +0 -0
- {scout_browser-4.80.dist-info → scout_browser-4.81.dist-info}/entry_points.txt +0 -0
- {scout_browser-4.80.dist-info → scout_browser-4.81.dist-info}/top_level.txt +0 -0
scout/__version__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "4.
|
1
|
+
__version__ = "4.81"
|
scout/adapter/mongo/variant.py
CHANGED
@@ -671,7 +671,7 @@ class VariantHandler(VariantLoader):
|
|
671
671
|
result = self.variant_collection.delete_many(query)
|
672
672
|
LOG.info("{0} variants deleted".format(result.deleted_count))
|
673
673
|
|
674
|
-
def overlapping(self, variant_obj):
|
674
|
+
def overlapping(self, variant_obj, limit=30):
|
675
675
|
"""Return overlapping variants.
|
676
676
|
|
677
677
|
Look at the genes that a variant overlaps to.
|
@@ -701,7 +701,7 @@ class VariantHandler(VariantLoader):
|
|
701
701
|
}
|
702
702
|
sort_key = [("rank_score", pymongo.DESCENDING)]
|
703
703
|
# We collect the 30 most severe overlapping variants
|
704
|
-
variants = self.variant_collection.find(query).sort(sort_key).limit(
|
704
|
+
variants = self.variant_collection.find(query).sort(sort_key).limit(limit)
|
705
705
|
|
706
706
|
return variants
|
707
707
|
|
scout/constants/__init__.py
CHANGED
@@ -204,6 +204,7 @@ CALLERS = {
|
|
204
204
|
{"id": "ascat", "name": "ASCAT"},
|
205
205
|
{"id": "dellycnv", "name": "DellyCNV"},
|
206
206
|
{"id": "tiddit", "name": "TIDDIT"},
|
207
|
+
{"id": "igh_dux4", "name": "IGH-DUX4 detection"},
|
207
208
|
],
|
208
209
|
"mei": [{"id": "retroseq", "name": "RetroSeq"}],
|
209
210
|
"sv": [
|
scout/constants/indexes.py
CHANGED
@@ -61,6 +61,16 @@ INDEXES = {
|
|
61
61
|
name="variantid_caseid_category",
|
62
62
|
background=True,
|
63
63
|
),
|
64
|
+
IndexModel(
|
65
|
+
[
|
66
|
+
("category", ASCENDING),
|
67
|
+
("case_id", ASCENDING),
|
68
|
+
("variant_type", ASCENDING),
|
69
|
+
("rank_score", ASCENDING),
|
70
|
+
],
|
71
|
+
name="category_caseid_varianttype_rankscore",
|
72
|
+
background=True,
|
73
|
+
),
|
64
74
|
IndexModel(
|
65
75
|
[
|
66
76
|
("case_id", ASCENDING),
|
@@ -12,44 +12,46 @@
|
|
12
12
|
|
13
13
|
{% block body %}
|
14
14
|
<nav class="navbar sticky-top navbar-expand-lg navbar-light bg-light">
|
15
|
-
|
16
|
-
|
15
|
+
<div class="container-fluid">
|
16
|
+
<!-- Brand and toggle get grouped for better mobile display -->
|
17
|
+
<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
18
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
<!-- Collect the nav links, forms, and other content for toggling -->
|
20
|
+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
21
|
+
<span class="navbar-toggler-icon"></span>
|
22
|
+
</button>
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
24
|
+
<div class="collapse navbar-collapse" id="navbarText">
|
25
|
+
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
26
|
+
<li class="nav-item">
|
27
|
+
<a class="nav-link link-secondary" style="text-decoration: none !important;" href="#phenotype">Phenotype overview<span class="sr-only">(current)</span></a>
|
28
|
+
</li>
|
29
|
+
<li class="nav-item">
|
30
|
+
<a class="nav-link link-secondary" style="text-decoration: none !important;" href="#gene_panels">Gene panels</a>
|
31
|
+
</li>
|
32
|
+
<li class="nav-item">
|
33
|
+
<a class="nav-link link-secondary" style="text-decoration: none !important;" href="#causative_variants">Causative Variants</a>
|
34
|
+
</li>
|
35
|
+
<li class="nav-item">
|
36
|
+
<a class="nav-link link-secondary" style="text-decoration: none !important;" href="#pinned_variants">Pinned variants</a>
|
37
|
+
</li>
|
38
|
+
<li class="nav-item">
|
39
|
+
<a class="nav-link link-secondary" style="text-decoration: none !important;" href="#acmg_variants">ACMG-classified variants</a>
|
40
|
+
</li>
|
41
|
+
<li class="nav-item">
|
42
|
+
<a class="nav-link link-secondary" style="text-decoration: none !important;" href="#manual_ranked_variants">Manual ranked</a>
|
43
|
+
</li>
|
44
|
+
<li class="nav-item">
|
45
|
+
<a class="nav-link link-secondary" style="text-decoration: none !important;" href="#commented_variants">Commented variants</a>
|
46
|
+
</li>
|
47
|
+
<li class="nav-item">
|
48
|
+
<a class="nav-link link-secondary" style="text-decoration: none !important;" href="#dismissed_variants">Dismissed variants</a>
|
49
|
+
</li>
|
50
|
+
</ul>
|
51
|
+
<span class="navbar-text">
|
52
|
+
<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>
|
53
|
+
</span>
|
54
|
+
</div>
|
53
55
|
</div>
|
54
56
|
</nav>
|
55
57
|
|
@@ -67,17 +69,17 @@
|
|
67
69
|
{% if coverage_report %}
|
68
70
|
<div style="display: inline-block;">{{ coverage_report|safe }}</div><br>
|
69
71
|
{% endif %}
|
70
|
-
<a href="https://clinical-genomics.github.io/scout" target="_blank">clinical-genomics.github.io/scout</a>
|
72
|
+
<a style="text-decoration:none;" href="https://clinical-genomics.github.io/scout" rel="noopener" target="_blank">clinical-genomics.github.io/scout</a>
|
71
73
|
</div>
|
72
74
|
{% endblock %} <!-- end of block body -->
|
73
75
|
|
74
76
|
{% macro phenotype_panel() %}
|
75
77
|
<div class="card mb-3" style="border-width: 5px; display: block;">
|
76
78
|
<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>
|
79
|
+
<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
80
|
</div>
|
79
81
|
<div class="card-body">
|
80
|
-
<table class="table table-sm"
|
82
|
+
<table class="table table-sm" aria-label="Pedigree and sample information">
|
81
83
|
<tr>
|
82
84
|
{% if case.madeline_info and case.individuals|length > 1 %}
|
83
85
|
<td style='width: 33%;'>
|
@@ -122,15 +124,15 @@
|
|
122
124
|
n.a.
|
123
125
|
{% endif %}
|
124
126
|
{% if ind.confirmed_sex %}
|
125
|
-
<span class="badge
|
127
|
+
<span class="badge rounded-pill py-1 bg-secondary">V</span>
|
126
128
|
{% endif %}
|
127
129
|
</td>
|
128
130
|
<td>
|
129
131
|
{% if ind.phenotype==2 %} <!--for later use-->
|
130
132
|
{% do affected.append(ind.display_name) %}
|
131
|
-
<span class="badge
|
133
|
+
<span class="badge rounded-pill py-1 bg-danger" title="{{ ind.phenotype_human }}">{{ ind.phenotype_human }}</span>
|
132
134
|
{% else %}
|
133
|
-
<span class="badge
|
135
|
+
<span class="badge rounded-pill py-1 bg-secondary" title="{{ ind.phenotype_human }}">{{ ind.phenotype_human }}</span>
|
134
136
|
{% endif %}
|
135
137
|
</td>
|
136
138
|
<td>{{ ind.analysis_type|upper }}</td>
|
@@ -138,9 +140,9 @@
|
|
138
140
|
<td>{{ ind.predicted_ancestry or 'N/A' }}</td>
|
139
141
|
<td>
|
140
142
|
{% if ind.confirmed_parent == True %}
|
141
|
-
<span class="badge
|
143
|
+
<span class="badge rounded-pill py-1 bg-secondary">V</span>
|
142
144
|
{% elif ind.confirmed_parent == False %}
|
143
|
-
<span class="badge
|
145
|
+
<span class="badge rounded-pill py-1 bg-danger">!</span>
|
144
146
|
{% else %}
|
145
147
|
N/A
|
146
148
|
{% endif %}
|
@@ -153,9 +155,9 @@
|
|
153
155
|
</td>
|
154
156
|
</tr>
|
155
157
|
<tr>
|
156
|
-
<td>Case status: <strong>
|
158
|
+
<td style="border-bottom:none;">Case status: <strong>
|
157
159
|
{% if 'solved' in case.status%}
|
158
|
-
<
|
160
|
+
<span style="color:green">{{case.status.upper()}}</span>
|
159
161
|
{% else %}
|
160
162
|
{{case.status.upper()}}
|
161
163
|
{% endif %}
|
@@ -163,25 +165,25 @@
|
|
163
165
|
</td>
|
164
166
|
</tr>
|
165
167
|
</table>
|
166
|
-
<table
|
168
|
+
<table class="table table-sm" aria-label="Case synopsis and phenotype information">
|
167
169
|
<tr>
|
168
|
-
<td style="width:50
|
170
|
+
<td style="width:50%;vertical-align:top;">
|
169
171
|
{% if case.synopsis %}
|
170
|
-
<strong>Synopsis:</strong>
|
172
|
+
<strong>Synopsis:</strong><br>
|
171
173
|
{{ case.synopsis|markdown }}
|
172
174
|
{% endif %}
|
173
175
|
</td>
|
174
|
-
<td class="
|
176
|
+
<td class="ms-3 d-flex align-items-start flex-column" style="border-bottom:none;">
|
175
177
|
<strong>Associated phenotypes:</strong><br>
|
176
178
|
{% if case.phenotype_terms %}
|
177
179
|
<ul>
|
178
180
|
{% for pheno in case.phenotype_terms %}
|
179
181
|
<li>
|
180
|
-
{{pheno.feature}} - (<a href="https://hpo.jax.org/app/browse/term/{{pheno.phenotype_id}}" target="_blank">{{pheno.phenotype_id}})</a>
|
182
|
+
{{pheno.feature}} - (<a style="text-decoration:none;" href="https://hpo.jax.org/app/browse/term/{{pheno.phenotype_id}}" target="_blank">{{pheno.phenotype_id}})</a>
|
181
183
|
{% for feature_ind in pheno.individuals %} <!-- display eventual individual-level HPO terms -->
|
182
184
|
{% for case_ind in case.individuals %}
|
183
185
|
{% if feature_ind.individual_name == case_ind.display_name %}
|
184
|
-
<span class="
|
186
|
+
<span class="ms-1 {% if case_ind.phenotype == 2 %} text-danger {% endif %}">{{case_ind.display_name}}</span>
|
185
187
|
{% endif %}
|
186
188
|
{% endfor %}
|
187
189
|
{% endfor %}
|
@@ -197,11 +199,11 @@
|
|
197
199
|
<ul>
|
198
200
|
{% for dia in case.diagnosis_phenotypes %}
|
199
201
|
<li>
|
200
|
-
{{dia.description}} (<a href="{{dia.disease_link}}" target="_blank">{{dia.disease_id}})</a>
|
202
|
+
{{dia.description}} (<a style="text-decoration:none;" href="{{dia.disease_link}}" rel="noopener" target="_blank">{{dia.disease_id}})</a>
|
201
203
|
{% for feature_ind in dia.individuals %} <!-- display eventual individual-level disease terms -->
|
202
204
|
{% for case_ind in case.individuals %}
|
203
205
|
{% if feature_ind.individual_name == case_ind.display_name %}
|
204
|
-
<span class="
|
206
|
+
<span class="ms-1 {% if case_ind.phenotype == 2 %} text-danger {% endif %}">{{case_ind.display_name}}</span>
|
205
207
|
{% endif %}
|
206
208
|
{% endfor %}
|
207
209
|
{% endfor %}
|
@@ -215,7 +217,7 @@
|
|
215
217
|
</tr>
|
216
218
|
{% if comments | count_cursor > 0 %}
|
217
219
|
<tr>
|
218
|
-
<td colspan=2>
|
220
|
+
<td colspan=2 style="border-bottom:none;">
|
219
221
|
<table id="comment-table" class="table table-sm" style="background-color: transparent">
|
220
222
|
<thead>
|
221
223
|
<tr>
|
@@ -224,7 +226,7 @@
|
|
224
226
|
</thead>
|
225
227
|
<tbody>
|
226
228
|
<tr>
|
227
|
-
<td>
|
229
|
+
<td style="border-bottom:none;">
|
228
230
|
<table id="comment-table-inner" class="table table-sm" style="background-color: transparent">
|
229
231
|
{% for comment in comments %}
|
230
232
|
<tr>
|
@@ -241,10 +243,10 @@
|
|
241
243
|
</tr>
|
242
244
|
{% else %}
|
243
245
|
<tr>
|
244
|
-
<td colspan=2>
|
246
|
+
<td colspan=2 style="border-bottom:none;">
|
245
247
|
<table id="comment-table" class="table table-sm" style="background-color: transparent">
|
246
248
|
<tr>
|
247
|
-
<td>No comments left for this case.</td>
|
249
|
+
<td style="border-bottom:none;">No comments left for this case.</td>
|
248
250
|
</tr>
|
249
251
|
</table>
|
250
252
|
</td>
|
@@ -297,7 +299,7 @@
|
|
297
299
|
{% if panel.is_default %}
|
298
300
|
<tr>
|
299
301
|
<td>
|
300
|
-
<a href="{{ url_for('panels.panel', panel_id=panel.panel_id, case_id=case._id, institute_id=institute._id) }}" target="_blank">
|
302
|
+
<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
303
|
{{ panel.display_name|truncate(75, True) }}
|
302
304
|
</a>
|
303
305
|
</td>
|
@@ -307,7 +309,7 @@
|
|
307
309
|
{% endif %}
|
308
310
|
{% else %}
|
309
311
|
<tr>
|
310
|
-
<td colspan="5">No panels linked to case</td>
|
312
|
+
<td colspan="5" style="border-bottom:none;">No panels linked to case</td>
|
311
313
|
</tr>
|
312
314
|
{% endfor %}
|
313
315
|
</tbody>
|
@@ -342,6 +344,7 @@
|
|
342
344
|
</div>
|
343
345
|
<div class="card-body">
|
344
346
|
{% set duplicated_variants = [] %}
|
347
|
+
{% set pinned_not_causative_variants = [] %}
|
345
348
|
{% if variants.suspects_detailed %}
|
346
349
|
{% if cancer %}
|
347
350
|
{{ somatic_variant_table(variants.suspects_detailed) }}
|
@@ -349,6 +352,7 @@
|
|
349
352
|
{% for pinned in variants.suspects_detailed|sort(attribute='variant_rank') %}
|
350
353
|
{% if pinned['_id'] not in printed_vars %}
|
351
354
|
{% do printed_vars.append(pinned['_id']) %}
|
355
|
+
{% do pinned_not_causative_variants.append(pinned['_id']) %}
|
352
356
|
{{ variant_content(pinned, loop.index) }}
|
353
357
|
{% else %}
|
354
358
|
{% do duplicated_variants.append(pinned['_id']) %}
|
@@ -358,7 +362,7 @@
|
|
358
362
|
{% else %}
|
359
363
|
No pinned variants available for this case
|
360
364
|
{% endif %}
|
361
|
-
{% if variants.suspects_detailed and
|
365
|
+
{% if variants.suspects_detailed and pinned_not_causative_variants|length == 0 %}
|
362
366
|
All pinned variants are described among the causative variants
|
363
367
|
{% endif %}
|
364
368
|
</div>
|
@@ -367,7 +371,7 @@
|
|
367
371
|
|
368
372
|
{% macro classified_panel() %}
|
369
373
|
<div class="card border-warning mb-3" style="border-width: 5px; display: block;">
|
370
|
-
<div class="card-header bg-warning text-
|
374
|
+
<div class="card-header bg-warning text-dark" style="border-top-left-radius: 0; border-top-right-radius: 0;">
|
371
375
|
<a id="acmg_variants"><strong>Other ACMG-classified Variants</strong></a>
|
372
376
|
</div>
|
373
377
|
<div class="card-body">
|
@@ -394,7 +398,7 @@
|
|
394
398
|
|
395
399
|
{% macro tagged_panel() %}
|
396
400
|
<div class="card border-warning mb-3" style="border-width: 5px; display: block;">
|
397
|
-
<div class="card-header bg-warning text-
|
401
|
+
<div class="card-header bg-warning text-dark" style="border-top-left-radius: 0; border-top-right-radius: 0;">
|
398
402
|
<a id="manual_ranked_variants"><strong>Other Manual Ranked (Tagged) Variants</strong></a>
|
399
403
|
</div>
|
400
404
|
<div class="card-body">
|
@@ -445,7 +449,7 @@
|
|
445
449
|
|
446
450
|
{% macro commented_panel() %}
|
447
451
|
<div class="card border-warning mb-3" style="border-width: 5px; display: block;">
|
448
|
-
<div class="card-header bg-warning text-
|
452
|
+
<div class="card-header bg-warning text-dark" style="border-top-left-radius: 0; border-top-right-radius: 0;">
|
449
453
|
<a id="commented_variants"><strong>Other Commented Variants</strong></a>
|
450
454
|
</div>
|
451
455
|
<div class="card-body">
|
@@ -482,13 +486,13 @@
|
|
482
486
|
{% macro sn_variant_content(variant, index) %} <!--The entire description of a single nucleotide variant, dynamic content -->
|
483
487
|
<div class="card" style="border-width: 5px; display: block;">
|
484
488
|
<div class="card-header" >
|
485
|
-
<div
|
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>
|
487
|
-
<span class="badge
|
489
|
+
<div>
|
490
|
+
# <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>
|
491
|
+
<span class="badge rounded-pill bg-success py-1">{{variant.category | upper}}</span>
|
488
492
|
{% if variant.sanger_ordered and variant.validation %}
|
489
|
-
<span class="badge
|
493
|
+
<span class="badge rounded-pill bg-info py-1" title="verif-status">Verification:{{variant.validation}}</span>
|
490
494
|
{% elif variant.sanger_ordered %}
|
491
|
-
<span class="badge
|
495
|
+
<span class="badge bg-info py-1" title="sanger-status">Verification ordered</span>
|
492
496
|
{% endif %}
|
493
497
|
</div>
|
494
498
|
{{ variant_phenotypes(variant) }}
|
@@ -535,7 +539,7 @@
|
|
535
539
|
{% if variant.panels%}
|
536
540
|
{% if variant.panels|length <= 3 %}
|
537
541
|
{% for panel_id in variant.panels %}
|
538
|
-
<a href="{{ url_for('panels.panel', panel_id=panel_id) }}" target="_blank" class="badge
|
542
|
+
<a style="text-decoration:none;" href="{{ url_for('panels.panel', panel_id=panel_id) }}" rel="noopener" target="_blank" class="badge bg-secondary">{{ panel_id }}</a><br>
|
539
543
|
{% endfor %}
|
540
544
|
{% else %}
|
541
545
|
{{ variant.panels|length }} panels
|
@@ -557,11 +561,11 @@
|
|
557
561
|
<tr>
|
558
562
|
<th>Pop. frequency
|
559
563
|
{% if variant.frequency == 'common' %}
|
560
|
-
<span class="badge
|
564
|
+
<span class="badge bg-danger">{{variant.frequency}}</span>
|
561
565
|
{% elif variant.frequency == 'uncommon' %}
|
562
|
-
<span class="badge
|
566
|
+
<span class="badge bg-warning text-dark">{{variant.frequency}}</span>
|
563
567
|
{% else %}
|
564
|
-
<span class="badge
|
568
|
+
<span class="badge bg-success">{{variant.frequency}}</span>
|
565
569
|
{% endif %}
|
566
570
|
</th>
|
567
571
|
<th>
|
@@ -572,7 +576,7 @@
|
|
572
576
|
<tr>
|
573
577
|
<td>
|
574
578
|
{% if variant.dbsnp_id %}
|
575
|
-
<a href="{{ variant.thousandg_link }}" target="_blank">1000G</a>
|
579
|
+
<a style="text-decoration:none;" href="{{ variant.thousandg_link }}" rel="noopener" target="_blank">1000G</a>
|
576
580
|
{% else %}
|
577
581
|
1000G
|
578
582
|
{% endif %}
|
@@ -588,7 +592,7 @@
|
|
588
592
|
</td>
|
589
593
|
</tr>
|
590
594
|
<tr>
|
591
|
-
<td><a title="Exome Aggregation Consortium" target="_blank" href="{{ variant.exac_link }}">ExAC</a></td>
|
595
|
+
<td><a style="text-decoration:none;" title="Exome Aggregation Consortium" rel="noopener" target="_blank" href="{{ variant.exac_link }}">ExAC</a></td>
|
592
596
|
<td>
|
593
597
|
{% if variant.max_exac_frequency %}
|
594
598
|
{{ variant.max_exac_frequency|human_decimal }} <small>(max)</small> |
|
@@ -600,7 +604,7 @@
|
|
600
604
|
</td>
|
601
605
|
</tr>
|
602
606
|
<tr>
|
603
|
-
<td><a title="genome Aggregation Database" target="_blank" href="{{ variant.gnomad_link }}">gnomAD</a></td>
|
607
|
+
<td><a style="text-decoration:none;" title="genome Aggregation Database" rel="noopener" target="_blank" href="{{ variant.gnomad_link }}">gnomAD</a></td>
|
604
608
|
<td>
|
605
609
|
{% if 'gnomad_frequency' in variant%}
|
606
610
|
{% if variant.max_gnomad_frequency %}
|
@@ -639,10 +643,10 @@
|
|
639
643
|
<td>{{variant.rank_score}}</td>
|
640
644
|
<td>
|
641
645
|
{% if variant.manual_rank %}
|
642
|
-
<span class="badge
|
646
|
+
<span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
|
643
647
|
{% endif %}
|
644
648
|
{% if variant.cancer_tier %}
|
645
|
-
<span class="badge
|
649
|
+
<span class="badge rounded-pill bg-secondary" title="Tier">{{ cancer_tier_options[variant.cancer_tier]['label'] }}</span>
|
646
650
|
{% endif %}
|
647
651
|
{% if not (variant.manual_rank or variant.cancer_tier) %}
|
648
652
|
-
|
@@ -664,17 +668,17 @@
|
|
664
668
|
<span class="float-left">
|
665
669
|
{% if variant.genetic_models %}
|
666
670
|
{% for model in variant.genetic_models|sort %}
|
667
|
-
<span class="badge
|
671
|
+
<span class="badge bg-info" title="{{genetic_models[model]}}">{{ model }}</span>
|
668
672
|
{% endfor %}
|
669
673
|
{% else %}
|
670
|
-
<span class="badge
|
674
|
+
<span class="badge bg-warning text-dark">No models followed</span>
|
671
675
|
{% endif %}
|
672
676
|
</span>
|
673
677
|
</td>
|
674
678
|
{% endif %}
|
675
679
|
<td>
|
676
680
|
{% if variant.acmg_classification %}
|
677
|
-
<span class="badge
|
681
|
+
<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
682
|
{% else %}
|
679
683
|
-
|
680
684
|
{% endif %}
|
@@ -697,7 +701,7 @@
|
|
697
701
|
{% for gene in variant.genes %}
|
698
702
|
<tr>
|
699
703
|
<td>
|
700
|
-
<a href="{{ url_for('genes.gene', hgnc_id=gene.hgnc_id) }}">
|
704
|
+
<a style="text-decoration:none;" href="{{ url_for('genes.gene', hgnc_id=gene.hgnc_id) }}">
|
701
705
|
{{ gene.common.hgnc_symbol if gene.common else gene.hgnc_id }}
|
702
706
|
</a>
|
703
707
|
</td>
|
@@ -709,7 +713,7 @@
|
|
709
713
|
<td>
|
710
714
|
<ul class="p-0" style="list-style-type: none;">
|
711
715
|
{% for disease_term in gene.disease_terms %}
|
712
|
-
<li class="d-flex align-items-baseline"><span class="badge
|
716
|
+
<li class="d-flex align-items-baseline"><span class="badge bg-secondary m-1">{{ disease_term._id}}</span> <span>{{ disease_term.description }} {{ disease_term.inheritance }}</span></li>
|
713
717
|
{% endfor %}
|
714
718
|
</ul>
|
715
719
|
</td>
|
@@ -732,11 +736,11 @@
|
|
732
736
|
{{ variant.hgnc_symbols|length }} genes
|
733
737
|
{% else %}
|
734
738
|
{% 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 }} <span class="badge
|
739
|
+
<a href="http://www.genenames.org/cgi-bin/gene_symbol_report?match={{ gene.hgnc_symbol }}" target="_blank">{{ gene.hgnc_symbol }} <span class="badge bg-secondary">{{gene.region_annotation}}</span></a><br>
|
736
740
|
{% endfor %}
|
737
741
|
{% endif %}
|
738
742
|
{% else %} <!-- 0 genes. strs for instance -->
|
739
|
-
<span class="badge
|
743
|
+
<span class="badge bg-secondary">-</span>
|
740
744
|
{% endif %}
|
741
745
|
{% endmacro %}
|
742
746
|
|
@@ -786,11 +790,11 @@
|
|
786
790
|
<tr style="background-color: transparent">
|
787
791
|
<th>Pop. frequency
|
788
792
|
{% if variant.frequency == 'common' %}
|
789
|
-
<span class="badge
|
793
|
+
<span class="badge bg-danger">{{variant.frequency}}</span>
|
790
794
|
{% elif variant.frequency == 'uncommon' %}
|
791
|
-
<span class="badge
|
795
|
+
<span class="badge bg-warning text-dark">{{variant.frequency}}</span>
|
792
796
|
{% else %}
|
793
|
-
<span class="badge
|
797
|
+
<span class="badge bg-success">{{variant.frequency}}</span>
|
794
798
|
{% endif %}
|
795
799
|
</th>
|
796
800
|
<th>
|
@@ -851,7 +855,7 @@
|
|
851
855
|
|
852
856
|
({% if variant.genetic_models %}
|
853
857
|
{% for model in variant.genetic_models|sort %}
|
854
|
-
<span class="badge
|
858
|
+
<span class="badge bg-info" title="{{genetic_models[model]}}">{{model}}</span>
|
855
859
|
{% endfor %}
|
856
860
|
{% else %}
|
857
861
|
No models followed
|
@@ -918,9 +922,9 @@
|
|
918
922
|
{% macro sv_variant_content(variant,index) %} <!--The entire description of a structural variant, dynamic contentc -->
|
919
923
|
<div class="card" style="border-width: 5px; display: block;">
|
920
924
|
<div class="card-header">
|
921
|
-
<div
|
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
|
-
<span class="badge
|
925
|
+
<div>
|
926
|
+
# <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>
|
927
|
+
<span class="badge rounded-pill bg-warning py-1 text-dark">{{variant.sub_category|upper}}</span>
|
924
928
|
</div>
|
925
929
|
{{ variant_phenotypes(variant) }}
|
926
930
|
</div>
|
@@ -938,7 +942,7 @@
|
|
938
942
|
</thead>
|
939
943
|
<tbody>
|
940
944
|
<tr>
|
941
|
-
<td><span class="badge
|
945
|
+
<td><span class="badge bg-warning float-left text-dark">{{variant.sub_category|upper}}</span></td>
|
942
946
|
<td>{{ variant.length }}</td>
|
943
947
|
<td>
|
944
948
|
{% if variant.chromosome == variant.end_chrom %}
|
@@ -956,7 +960,7 @@
|
|
956
960
|
{% if variant.panels %}
|
957
961
|
{% if variant.panels|length <= 3 %}
|
958
962
|
{% for panel_id in variant.panels %}
|
959
|
-
<a href="{{ url_for('panels.panel', panel_id=panel_id) }}" target="_blank" class="badge
|
963
|
+
<a style="text-decoration:none;" href="{{ url_for('panels.panel', panel_id=panel_id) }}" rel="noopener" target="_blank" class="badge bg-secondary">{{ panel_id }}</a><br>
|
960
964
|
{% endfor %}
|
961
965
|
{% else %}
|
962
966
|
{{ variant.panels|length }} panels
|
@@ -966,7 +970,7 @@
|
|
966
970
|
<td>
|
967
971
|
{% if variant.callers %}
|
968
972
|
{% for caller,call in variant.callers|sort %}
|
969
|
-
<span class="badge
|
973
|
+
<span class="badge bg-secondary">{{ caller+':'+call }}</span>
|
970
974
|
{% endfor %}
|
971
975
|
{% else %}
|
972
976
|
-
|
@@ -992,7 +996,7 @@
|
|
992
996
|
<td>{{ freq_name }}</td>
|
993
997
|
<td>
|
994
998
|
{% if value %}
|
995
|
-
<span class="badge
|
999
|
+
<span class="badge bg-secondary">{{ value|human_decimal }}</span>
|
996
1000
|
{% else %}
|
997
1001
|
<span class="text-muted">Not annotated</span>
|
998
1002
|
{% endif %}
|
@@ -1022,29 +1026,31 @@
|
|
1022
1026
|
<td>{{variant.rank_score}}</td>
|
1023
1027
|
<td>
|
1024
1028
|
{% if variant.manual_rank %}
|
1025
|
-
<span class="badge
|
1029
|
+
<span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
|
1026
1030
|
{% endif %}
|
1027
1031
|
{% if variant.cancer_tier %}
|
1028
|
-
<span class="badge
|
1032
|
+
<span class="badge rounded-pill bg-secondary" title="Tier">{{ cancer_tier_options[variant.cancer_tier]['label'] }}</span>
|
1029
1033
|
{% endif %}
|
1030
1034
|
{% if not (variant.manual_rank or variant.cancer_tier) %}
|
1031
1035
|
-
|
1032
1036
|
{% endif %}
|
1033
1037
|
</td>
|
1034
|
-
|
1035
|
-
<
|
1036
|
-
|
1037
|
-
{%
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1038
|
+
{% if not cancer %}
|
1039
|
+
<td>
|
1040
|
+
<span class="float-left">
|
1041
|
+
{% if variant.genetic_models %}
|
1042
|
+
{% for model in variant.genetic_models|sort %}
|
1043
|
+
<span class="badge bg-info" title="{{genetic_models[model]}}">{{ model }}</span>
|
1044
|
+
{% endfor %}
|
1045
|
+
{% else %}
|
1046
|
+
<span class="badge bg-warning text-dark">No models followed</span>
|
1047
|
+
{% endif %}
|
1048
|
+
</span>
|
1049
|
+
</td>
|
1050
|
+
{% endif %}
|
1045
1051
|
<td>
|
1046
1052
|
{% if variant.acmg_classification %}
|
1047
|
-
<span class="badge
|
1053
|
+
<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
1054
|
{% else %}
|
1049
1055
|
-
|
1050
1056
|
{% endif %}
|
@@ -1067,7 +1073,7 @@
|
|
1067
1073
|
{% for gene in variant.genes %}
|
1068
1074
|
<tr>
|
1069
1075
|
<td>
|
1070
|
-
<a href="{{ url_for('genes.gene', hgnc_id=gene.hgnc_id) }}">
|
1076
|
+
<a style="text-decoration:none;" href="{{ url_for('genes.gene', hgnc_id=gene.hgnc_id) }}">
|
1071
1077
|
{{ gene.common.hgnc_symbol if gene.common else gene.hgnc_id }}
|
1072
1078
|
</a>
|
1073
1079
|
</td>
|
@@ -1079,7 +1085,7 @@
|
|
1079
1085
|
<td>
|
1080
1086
|
<ul>
|
1081
1087
|
{% for disease_term in gene.disease_terms %}
|
1082
|
-
<li class="d-flex align-items-baseline"><span class="badge
|
1088
|
+
<li class="d-flex align-items-baseline"><span class="badge bg-secondary m-1">{{ disease_term._id}}</span> <span>{{ disease_term.description }} {{ disease_term.inheritance }}</span></li>
|
1083
1089
|
{% endfor %}
|
1084
1090
|
</ul>
|
1085
1091
|
</td>
|
@@ -1113,9 +1119,9 @@
|
|
1113
1119
|
{% macro str_variant_content(variant,index) %}
|
1114
1120
|
<div class="card" style="border-width: 5px; display: block;">
|
1115
1121
|
<div class="card-header">
|
1116
|
-
<div
|
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
|
-
<span class="badge
|
1122
|
+
<div>
|
1123
|
+
# <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>
|
1124
|
+
<span class="badge rounded-pill bg-info py-1">{{variant.category | upper}}</span>
|
1119
1125
|
</div>
|
1120
1126
|
{{ variant_phenotypes(variant) }}
|
1121
1127
|
</div>
|
@@ -1138,7 +1144,7 @@
|
|
1138
1144
|
{% elif variant.str_status == 'pre_mutation' %}
|
1139
1145
|
<tr class="bg-warning">
|
1140
1146
|
{% endif %}
|
1141
|
-
<td><span class="badge
|
1147
|
+
<td><span class="badge bg-info">{{variant.category | upper}}</span></td>
|
1142
1148
|
<td>{{ variant.alternative|replace("STR", "")|replace("<", "")|replace(">", "") }}</td>
|
1143
1149
|
<td>{{ variant.str_ref }}</td>
|
1144
1150
|
<td>
|
@@ -1152,7 +1158,7 @@
|
|
1152
1158
|
{% if variant.panels %}
|
1153
1159
|
{% if variant.panels|length <= 3 %}
|
1154
1160
|
{% for panel_id in variant.panels %}
|
1155
|
-
<a href="{{ url_for('panels.panel', panel_id=panel_id) }}" target="_blank" class="badge
|
1161
|
+
<a style="text-decoration:none;" href="{{ url_for('panels.panel', panel_id=panel_id) }}" target="_blank" class="badge bg-secondary">{{ panel_id }}</a><br>
|
1156
1162
|
{% endfor %}
|
1157
1163
|
{% else %}
|
1158
1164
|
{{ variant.panels|length }} panels
|
@@ -1185,7 +1191,7 @@
|
|
1185
1191
|
<td class="text-center">{{ sample.genotype_call }}</td>
|
1186
1192
|
{% if sample.allele_depths %}
|
1187
1193
|
{% for number in sample.allele_depths %}
|
1188
|
-
<td class="text-
|
1194
|
+
<td class="text-end">
|
1189
1195
|
{% if number == -1 %}
|
1190
1196
|
<small>N/A</small>
|
1191
1197
|
{% else %}
|
@@ -1194,8 +1200,8 @@
|
|
1194
1200
|
</td>
|
1195
1201
|
{% endfor %}
|
1196
1202
|
{% else %}
|
1197
|
-
<td class="text-
|
1198
|
-
<td class="text-
|
1203
|
+
<td class="text-end"><small>N/A</small></td>
|
1204
|
+
<td class="text-end"><small>N/A</small></td>
|
1199
1205
|
{% endif %}
|
1200
1206
|
<td><small>{{ sample.so }}</small></td>
|
1201
1207
|
</tr>
|
@@ -1219,10 +1225,10 @@
|
|
1219
1225
|
<td>{{variant.rank_score}}</td>
|
1220
1226
|
<td>
|
1221
1227
|
{% if variant.manual_rank %}
|
1222
|
-
<span class="badge
|
1228
|
+
<span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
|
1223
1229
|
{% endif %}
|
1224
1230
|
{% if variant.cancer_tier %}
|
1225
|
-
<span class="badge
|
1231
|
+
<span class="badge rounded-pill bg-secondary" title="Tier">{{ cancer_tier_options[variant.cancer_tier]['label'] }}</span>
|
1226
1232
|
{% endif %}
|
1227
1233
|
{% if not (variant.manual_rank or variant.cancer_tier) %}
|
1228
1234
|
<span class="text-center">-</span>
|
@@ -1251,7 +1257,7 @@
|
|
1251
1257
|
</td>
|
1252
1258
|
<td>
|
1253
1259
|
{% if variant.str_source.display %}
|
1254
|
-
<a href="{{variant.str_source_link}}" target="_blank" rel="noopener noreferrer">{{ variant.str_source.display }}</a>
|
1260
|
+
<a style="text-decoration:none;" href="{{variant.str_source_link}}" target="_blank" rel="noopener noreferrer">{{ variant.str_source.display }} </a>
|
1255
1261
|
{% else %}
|
1256
1262
|
"-"
|
1257
1263
|
{% endif %}
|
@@ -1271,7 +1277,7 @@
|
|
1271
1277
|
{% macro variant_phenotypes(variant) %}
|
1272
1278
|
{% if variant.get('phenotypes') %}
|
1273
1279
|
<div class="mt-3">
|
1274
|
-
<h6 class="card-subtitle mb-2 text-muted"><span class="badge
|
1280
|
+
<h6 class="card-subtitle mb-2 text-muted"><span class="badge bg-warning text-dark">Partial causative</span>
|
1275
1281
|
Disease terms: {{ variant['phenotypes'].get('diagnosis_phenotypes')|join(' ')}} -
|
1276
1282
|
HPO terms:
|
1277
1283
|
{%- for hpo_term in variant['phenotypes'].get('phenotype_terms') -%}
|
@@ -1333,7 +1339,7 @@
|
|
1333
1339
|
<div class="card" style="border-width: 5px; display: block;">
|
1334
1340
|
<div class="card-header">Summary table</div>
|
1335
1341
|
<div class="card-body">
|
1336
|
-
<div class="row
|
1342
|
+
<div class="row">
|
1337
1343
|
<table id="panel-table" class="table table-sm table-bordered" style="background-color: transparent; margin-left:-.3rem;">
|
1338
1344
|
<thead>
|
1339
1345
|
<tr class="table-secondary">
|
@@ -1389,9 +1395,9 @@
|
|
1389
1395
|
</td>
|
1390
1396
|
<td>
|
1391
1397
|
{% if variant.acmg_classification %}
|
1392
|
-
<span class="badge
|
1398
|
+
<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
1399
|
{% elif variant.manual_rank %}
|
1394
|
-
<span class="badge
|
1400
|
+
<span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
|
1395
1401
|
{% else %}
|
1396
1402
|
-
|
1397
1403
|
{% endif %}
|
@@ -1430,9 +1436,9 @@
|
|
1430
1436
|
</td>
|
1431
1437
|
<td>
|
1432
1438
|
{% if variant.acmg_classification %}
|
1433
|
-
<span class="badge
|
1439
|
+
<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
1440
|
{% elif variant.manual_rank %}
|
1435
|
-
<span class="badge
|
1441
|
+
<span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
|
1436
1442
|
{% else %}
|
1437
1443
|
-
|
1438
1444
|
{% endif %}
|
@@ -130,8 +130,8 @@
|
|
130
130
|
</div>
|
131
131
|
</div>
|
132
132
|
|
133
|
-
<div
|
134
|
-
<div class="row">
|
133
|
+
<div>
|
134
|
+
<div class="row"> <!-- Show variants in dynamic gene list -->
|
135
135
|
<form action="{{ url_for('cases.update_clinical_filter_hpo', institute_id=institute._id, case_name=case.display_name)+'#hpo_clinical_filter' }}" method="POST">
|
136
136
|
<div class="form-check form-switch">
|
137
137
|
<input type="checkbox" class="form-check-input" id="hpo_clinical_filter" onChange="this.form.submit()" name="hpo_clinical_filter"{% if case.hpo_clinical_filter %}checked{% endif %}>
|
@@ -199,15 +199,13 @@
|
|
199
199
|
<div class="row mt-1">
|
200
200
|
<div class="btn-group btn-group-sm">
|
201
201
|
{% if case.chanjo_coverage %}
|
202
|
-
<
|
203
|
-
<
|
204
|
-
<form id="hpo-report-form" action="{{ url_for('report.report', sample_id=case.individuals|map(attribute='individual_id')|list, panel_name="HPO panel", level=institute.coverage_cutoff) }}" method="POST" target="_blank">
|
202
|
+
<a class="btn btn-secondary btn-sm text-white" href="#section" onClick="document.getElementById('hpo-report-form').submit();" >Coverage report</a>
|
203
|
+
<form id="hpo-report-form" action="{{ url_for('report.report', sample_id=case.individuals|map(attribute='individual_id')|list, panel_name='HPO panel', level=institute.coverage_cutoff) }}" method="POST" target="_blank">
|
205
204
|
<input type="hidden" name="gene_ids" value="{{ case.dynamic_gene_list|map(attribute='hgnc_id')|join(',') }}">
|
206
205
|
</form>
|
207
206
|
|
208
|
-
<
|
209
|
-
<
|
210
|
-
<form id="hpo-overview-form" action="{{ url_for('report.genes', sample_id=case.individuals|map(attribute='individual_id')|list, panel_name="HPO panel", level=institute.coverage_cutoff) }}" method="POST" target="_blank">
|
207
|
+
<a class="btn btn-secondary btn-sm text-white" href="#section" onClick="document.getElementById('hpo-overview-form').submit();" >Coverage overview</a>
|
208
|
+
<form id="hpo-overview-form" action="{{ url_for('report.genes', sample_id=case.individuals|map(attribute='individual_id')|list, panel_name='HPO panel', level=institute.coverage_cutoff) }}" method="POST" target="_blank">
|
211
209
|
<input type="hidden" name="gene_ids" value="{{ case.dynamic_gene_list|map(attribute='hgnc_id')|join(',') }}">
|
212
210
|
</form>
|
213
211
|
{% endif %}
|
@@ -229,11 +227,14 @@
|
|
229
227
|
</div>
|
230
228
|
</div>
|
231
229
|
{% endif %} <!-- End of if case.chanjo_coverage or case.chanjo2_coverage -->
|
232
|
-
</div> <!-- End of Show variants in dynamic gene list -->
|
233
230
|
|
234
|
-
|
235
|
-
|
236
|
-
|
231
|
+
<div class="row mt-1">
|
232
|
+
<div class="btn-group btn-group-sm"> <!-- Download genes in HPO gene panel -->
|
233
|
+
<a class="btn btn-sm btn-primary text-white" href="{{ url_for('cases.download_hpo_genes', institute_id=institute._id, case_name=case.display_name, category="clinical") }}" download><span class="fa fa-download text-white" aria-hidden="true"></span> Clinical HPO gene panel</a>
|
234
|
+
<a class="btn btn-sm btn-primary text-white" href="{{ url_for('cases.download_hpo_genes', institute_id=institute._id, case_name=case.display_name, category="research") }}" download><span class="fa fa-download text-white" aria-hidden="true"></span> Research HPO gene panel</a>
|
235
|
+
</div>
|
236
|
+
</div>
|
237
|
+
|
237
238
|
</div>
|
238
239
|
|
239
240
|
{% endif %}
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<h4>Scout - Institute {{institute.display_name}} - case {{case.display_name}} - {{panel.name_and_version}}: panel extent report</h4> - created on: <strong>{{report_created_at}}</strong><br><br>
|
7
7
|
{{ hits_panel() }}
|
8
8
|
<br>[END OF REPORT]<br><br>
|
9
|
-
<a href="https://clinical-genomics.github.io/scout" target="_blank" rel="noopener">clinical-genomics.github.io/scout</a>
|
9
|
+
<a style="text-decoration:none;" href="https://clinical-genomics.github.io/scout" target="_blank" rel="noopener">clinical-genomics.github.io/scout</a>
|
10
10
|
</div>
|
11
11
|
{% endblock %}
|
12
12
|
|
@@ -21,7 +21,7 @@
|
|
21
21
|
Gene panel: <strong>{{panel.name_and_version}}</strong><br>
|
22
22
|
Last updated: <strong>{{ panel.date.strftime('%Y-%m-%d') }}</strong>
|
23
23
|
{% if case.outdated_panels and panel.panel_name in case.outdated_panels %}
|
24
|
-
<a><span class="badge rounded-pill
|
24
|
+
<a><span class="badge rounded-pill py-1 bg-warning" data-bs-toggle="popover" data-bs-placement="left" data-bs-html="true" data-bs-content="Panel version used in the analysis ({{panel.version}}) is outdated. Latest panel version is used in variants filtering.<br /><strong>Genes present in case panel and not in latest version</strong>: {{case.outdated_panels[panel.panel_name]['extra_genes']|join(', ') or '-'}}.<br /><strong>Genes present only in latest version</strong>: {{case.outdated_panels[panel.panel_name]['missing_genes']|join(', ') or '-'}}.">!</span></a>
|
25
25
|
{% endif %}<br>
|
26
26
|
Panel ID: {{ panel.panel_name }}<br>
|
27
27
|
Description: {{ panel.description }}<br>
|
@@ -6,14 +6,14 @@
|
|
6
6
|
<h4>Scout - Gene panel report</h4> - created on: <strong>{{report_created_at}}</strong><br><br>
|
7
7
|
{{ genes_panel() }}
|
8
8
|
[END OF REPORT]<br><br>
|
9
|
-
<a href="https://clinical-genomics.github.io/scout" target="_blank">clinical-genomics.github.io/scout</a>
|
9
|
+
<a style="text-decoration:none;" href="https://clinical-genomics.github.io/scout" target="_blank">clinical-genomics.github.io/scout</a>
|
10
10
|
</div>
|
11
11
|
{% endblock %}
|
12
12
|
|
13
13
|
{% macro genes_panel() %}
|
14
14
|
<div class="card border-dark mb-3">
|
15
15
|
<div class="card-header">
|
16
|
-
Panel: <a href="{{ url_for('panels.panel', panel_id=panel._id) }}">{{panel.name_and_version}}</a>
|
16
|
+
Panel: <a style="text-decoration:none;" href="{{ url_for('panels.panel', panel_id=panel._id) }}">{{panel.name_and_version}}</a>
|
17
17
|
</div>
|
18
18
|
<div class="card-body">
|
19
19
|
<table class="table table-sm">
|
@@ -58,7 +58,7 @@
|
|
58
58
|
<tr>
|
59
59
|
<td>{{loop.index}}</td>
|
60
60
|
<td>
|
61
|
-
<a href="https://www.genenames.org/cgi-bin/gene_symbol_report?hgnc_id={{gene.hgnc_id}}" target="_blank">{{gene.hgnc_id}}</a>
|
61
|
+
<a style="text-decoration:none;" href="https://www.genenames.org/cgi-bin/gene_symbol_report?hgnc_id={{gene.hgnc_id}}" target="_blank">{{gene.hgnc_id}}</a>
|
62
62
|
</td>
|
63
63
|
<td>{{ gene.symbol }}</td>
|
64
64
|
<td>{{ gene.disease_associated_transcripts|join(', ') }}</td>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
5
5
|
|
6
6
|
{% block css %}
|
7
|
-
|
7
|
+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
8
8
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
9
9
|
<style>
|
10
10
|
tr.light-grey td{
|
@@ -22,8 +22,8 @@
|
|
22
22
|
{% endblock %}
|
23
23
|
|
24
24
|
{% block scripts %}
|
25
|
-
|
26
|
-
<script src="https://
|
25
|
+
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
|
26
|
+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
|
27
27
|
{% endblock %}
|
28
28
|
</body>
|
29
29
|
</html>
|
@@ -78,7 +78,7 @@
|
|
78
78
|
{{ single_comment(institute, case, current_user, comment, item_index) }}
|
79
79
|
{% endfor %}
|
80
80
|
{% if expandable_comments|length >0 %}
|
81
|
-
<div class="accordion-item">
|
81
|
+
<div class="accordion-item border-0">
|
82
82
|
<div id="expandable-comments-content" class="accordion-collapse collapse" aria-labelledby="expandable-comments-heading">
|
83
83
|
<div class="" >
|
84
84
|
{% for comment in expandable_comments %}
|
@@ -87,7 +87,7 @@
|
|
87
87
|
{% endfor %}
|
88
88
|
</div>
|
89
89
|
</div>
|
90
|
-
<button id="expandable-comments-control" class="accordion-button collapsed" style="color
|
90
|
+
<button id="expandable-comments-control" class="accordion-button collapsed" style="background-color:var(--bs-body-bg);color:var(--bs-body-color)" type="button" data-bs-toggle="collapse" data-bs-target="#expandable-comments-content" aria-expanded="false" aria-controls="expandable-comments-content"
|
91
91
|
onclick="{let thisElement=event.currentTarget; let children= thisElement.querySelectorAll('span'); Array.from(children).forEach(child=> child.classList.toggle('d-none'));}">
|
92
92
|
<span>See more comments...</span>
|
93
93
|
<span class="d-none">Minimise comments</span>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
scout/__init__.py,sha256=Z4liXvmEcLkC67ElsWvYHfemPKdWgWI5O6MB6XlDM8M,232
|
2
|
-
scout/__version__.py,sha256=
|
2
|
+
scout/__version__.py,sha256=VeFs5riF3Z37kcJaV1kAfC-gVFhM1kN-tnvgq4X9qaY,21
|
3
3
|
scout/adapter/__init__.py,sha256=-iX_hx2NI1EMAqX0pMd5_90Nnd9uvIMxv9EbefYBzsc,86
|
4
4
|
scout/adapter/client.py,sha256=0VR5LRPEqZg_bAxQte1RGMxV8BSiQordbPs57PaZTlI,1512
|
5
5
|
scout/adapter/mongo/__init__.py,sha256=NdHYCUXWUAuX5cUS3-6HCws2hW9uoGep8i0SC-oJd3k,31
|
@@ -25,7 +25,7 @@ scout/adapter/mongo/query.py,sha256=f91GL0OVZ1T-fLFaZWIbjNh1yd0qvZzlSZQeQL6orvc,
|
|
25
25
|
scout/adapter/mongo/rank_model.py,sha256=wvDNI4OLf-f7ZYZ_Q_6qi0myxOJCNNJR_-2-_0u2K2M,5712
|
26
26
|
scout/adapter/mongo/transcript.py,sha256=3U1qtyxZ1DnrzdBJm_emJXISMYFKJuX_zAKynUt8NMY,7417
|
27
27
|
scout/adapter/mongo/user.py,sha256=QoQnRWqi_dV3ZwGzBonEU6Ap9TgMDf2x_C5UIqG0pa0,2569
|
28
|
-
scout/adapter/mongo/variant.py,sha256=
|
28
|
+
scout/adapter/mongo/variant.py,sha256=f3yU3Wu5ZTarDsUs314kjcM-UAFdkPfSjPjyKsrMYg8,34143
|
29
29
|
scout/adapter/mongo/variant_events.py,sha256=LjUtxJLo3wGBjMI55wPs7sNPeDLq9POw6fgz0dzeuFM,31842
|
30
30
|
scout/adapter/mongo/variant_loader.py,sha256=hMkRq5Bnk9DLEExV_IXOSY7FUzlArkZ0PBiytRqJG4E,27587
|
31
31
|
scout/build/__init__.py,sha256=GUWEaXTpwsJil_KtrXBQJpZIwCQFSgo8NlK49R9IkA8,521
|
@@ -123,7 +123,7 @@ scout/commands/view/intervals.py,sha256=8Pofxy0DwL2Euh3SdnTLLWsU6DjLNOwIGdxeCS83
|
|
123
123
|
scout/commands/view/panels.py,sha256=a0fQcP9-SDPuRYV7aEgIGUCYaMN6V47h6finpcdoomU,1098
|
124
124
|
scout/commands/view/transcripts.py,sha256=59WyNNp7zHPJIz9QgzrkoeKaSXTtuLli0VuL8IidEmY,1277
|
125
125
|
scout/commands/view/users.py,sha256=MKlmhDYRM7Yf-Trmi1ijEuqsDIUn326bdFADyDs7XYg,832
|
126
|
-
scout/constants/__init__.py,sha256=
|
126
|
+
scout/constants/__init__.py,sha256=u-faDDRxNzCeAKryKLdFSuIDSjrg6_BUj-5BYzXzXWs,6827
|
127
127
|
scout/constants/acmg.py,sha256=fjq_UFLkJPh7ZfuW-l4KH_lWKAGhNiKhlaPu1G_WXo4,13091
|
128
128
|
scout/constants/case_tags.py,sha256=Pr9Go_I8udRnrdcRcZdu4swS0Jpdwf8hUdDVGR6d9yY,10937
|
129
129
|
scout/constants/clinvar.py,sha256=2YdsHDy3mprWjcJEMyejLzkRLtm891xO9ckFQQk10cw,5587
|
@@ -133,7 +133,7 @@ scout/constants/file_types.py,sha256=OQ3g1uo4jvhiLlPV1MBoqctWGc4YrS2wnGS6PoflIAA
|
|
133
133
|
scout/constants/filters.py,sha256=8nRRb7_17G4P8zMgJ7qrK4NAAuGbPLl-pU5GPP3L4eE,889
|
134
134
|
scout/constants/gene_tags.py,sha256=tdzDh6ukJRtHiC8X5YkldijZCS0KrEeXj95sLNlqxuc,3852
|
135
135
|
scout/constants/igv_tracks.py,sha256=3-3VzFpCTfuhbEBAitbpY2lQRYXYf-poya3DXs0g9yE,4500
|
136
|
-
scout/constants/indexes.py,sha256=
|
136
|
+
scout/constants/indexes.py,sha256=6hX64eouUQx6kdPd1rTGEQAM9htDaEPwjy35USVbkJ4,4842
|
137
137
|
scout/constants/phenotype.py,sha256=MrbXirisR_7GPnxV3NOj3-BoM9CvtGgFZj7PfJu85RM,2331
|
138
138
|
scout/constants/query_terms.py,sha256=NSymLgwhcxuOddl-Mvh22MahJD6rT2zjopr-x4RVOd0,1479
|
139
139
|
scout/constants/so_terms.py,sha256=aJcQv3wgpZylVhqSJH854WS8xSARDxWGnW6I5mG1egE,4321
|
@@ -455,12 +455,12 @@ scout/server/blueprints/cases/static/edit_pedigree.js,sha256=ntC5fie7SsOYJau8qkk
|
|
455
455
|
scout/server/blueprints/cases/static/madeline.js,sha256=KHxKMBVlYVJODNu5QkY9hhsGkDJNoaCoCZZ0DRu0YN0,1175
|
456
456
|
scout/server/blueprints/cases/templates/cases/case.html,sha256=4u3XfrgcV1cZFWxQ5vmKJdWV-gEmnCr9SdP_rrUNt6o,35110
|
457
457
|
scout/server/blueprints/cases/templates/cases/case_bionano.html,sha256=kRnhlflW80f4dXZeWh0CM9eM7Azmst64vvljxoLLozw,6774
|
458
|
-
scout/server/blueprints/cases/templates/cases/case_report.html,sha256=
|
458
|
+
scout/server/blueprints/cases/templates/cases/case_report.html,sha256=SatY7nAY67bQrP5kr4FYJ0FVcN7q3xrt-CH4WGC8X6c,62999
|
459
459
|
scout/server/blueprints/cases/templates/cases/case_sma.html,sha256=9kxXy6PHsSsou9sJOb0-xFoPAjqP9XBonj_wt_-9Cgw,5356
|
460
460
|
scout/server/blueprints/cases/templates/cases/case_tabular_view.html,sha256=ko-LDUKmIoTazMZ2nFWvPEZsgObU07RwqIkDYFjokoY,4317
|
461
461
|
scout/server/blueprints/cases/templates/cases/collapsible_actionbar.html,sha256=j5PYeC-YtI8kK6oYHMahmHWZ-8BG8RzoB6qRSkBAHSo,29256
|
462
462
|
scout/server/blueprints/cases/templates/cases/diseases.html,sha256=ETTQI0Nrl_v86NoX9mFZcvWD-qM1IJoqPmHPWn__Grw,1677
|
463
|
-
scout/server/blueprints/cases/templates/cases/gene_panel.html,sha256=
|
463
|
+
scout/server/blueprints/cases/templates/cases/gene_panel.html,sha256=BIAHYtbbUhBW9TlF0r_l8sSAvslCnKW9whgcCiB1c3E,12640
|
464
464
|
scout/server/blueprints/cases/templates/cases/index.html,sha256=oUmjFyUvwP4yo21CxcWy-6eepMFI65hpznMEpSEqKfM,1207
|
465
465
|
scout/server/blueprints/cases/templates/cases/individuals_table.html,sha256=Y_OeIsEnLe_0_AzqgZdO4KMyoQ94auRLnVboLgBUPW8,11861
|
466
466
|
scout/server/blueprints/cases/templates/cases/institutes_sidebar.html,sha256=u0oPGHJ0ipZ1LkjHkbwlWfkUWc1h6XH1nh3tkbX17z0,4546
|
@@ -535,8 +535,8 @@ scout/server/blueprints/panels/forms.py,sha256=rkuYgrbGYZ2luVgnZyclX92ijVjvQU7S6
|
|
535
535
|
scout/server/blueprints/panels/views.py,sha256=7SsusNQKNm98IFU8lsYsVeuzkTF5Kgqyb_RxF1sYFrI,15765
|
536
536
|
scout/server/blueprints/panels/templates/panels/gene-edit.html,sha256=ZuXxdvjioxHlC0mz54t4q2KBFvP2qXb5VpNIcMVayVM,3649
|
537
537
|
scout/server/blueprints/panels/templates/panels/panel.html,sha256=qJrtU_wCF2FAsMkZYpuqjuQbvVOUqYsOZVmT3iXs_XU,15515
|
538
|
-
scout/server/blueprints/panels/templates/panels/panel_pdf_case_hits.html,sha256=
|
539
|
-
scout/server/blueprints/panels/templates/panels/panel_pdf_simple.html,sha256=
|
538
|
+
scout/server/blueprints/panels/templates/panels/panel_pdf_case_hits.html,sha256=uzfZJiMNQiTa_6u4uMuIbK3VXIs-8Rw-MjKujFttZG8,3438
|
539
|
+
scout/server/blueprints/panels/templates/panels/panel_pdf_simple.html,sha256=6fcuiYcm_Gjh0klgQ9AfbpYUJAQrXm0YPAjFwrtmLHs,2677
|
540
540
|
scout/server/blueprints/panels/templates/panels/panels.html,sha256=eR-f_Rh3ril-zVA4uBpOOblXm8LMEs3eirwpDQ-Ozrs,13422
|
541
541
|
scout/server/blueprints/phenomodels/__init__.py,sha256=Kb1fqfCn-QsH5mz6hiuQ2DiC7icTClD4HLey6QN4GD4,34
|
542
542
|
scout/server/blueprints/phenomodels/controllers.py,sha256=g5-BxlaHN7JBuQHEcOtQMUDEO9U9iy9HICaIaIEn3vk,11019
|
@@ -637,8 +637,8 @@ scout/server/static/humans.txt,sha256=UdqAR07_5LAWWfgH2Ty4RR8BhoHS1WXpx9euKtXqqh
|
|
637
637
|
scout/server/static/robots.txt,sha256=fFX0beQN4x3mzR3evnZjrOUYOTNkezYAwqMowTUpmxM,106
|
638
638
|
scout/server/templates/bootstrap_global.html,sha256=6e09Qyn3pc5zbE82Gacyye9qL5cMbrfOebMSjU9rqqA,2894
|
639
639
|
scout/server/templates/layout.html,sha256=-uhRxFA89L0gocv8sPLcODUHmWLNuV6xsjB34Zjq-8o,4635
|
640
|
-
scout/server/templates/report_base.html,sha256=
|
641
|
-
scout/server/templates/utils.html,sha256=
|
640
|
+
scout/server/templates/report_base.html,sha256=PZOqFZRLtbe4PZ7lkVc9LP1O-yh7v3_EzOohRE9Ix4U,1252
|
641
|
+
scout/server/templates/utils.html,sha256=9o3zXyAaIcZFmmg1ltYyNk7ow7CYlnf4NbHfeLnp5fg,12941
|
642
642
|
scout/server/translations/sv/LC_MESSAGES/messages.mo,sha256=eI53pCtlYj1MXduDicMZRxBhgOV_TlmMUpH7IhncgDY,4452
|
643
643
|
scout/server/translations/sv/LC_MESSAGES/messages.po,sha256=Wp7Mx4LoiFNtzsV1tpAoWjMxYnq8SpfpU9a4XWJ7L6g,4531
|
644
644
|
scout/update/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -659,9 +659,9 @@ scout/utils/hgvs.py,sha256=P5i3fIK8WZZlUnjZ8XpMDUG5KDXRCDSOs55DfK5acsc,898
|
|
659
659
|
scout/utils/link.py,sha256=RuCUwnOtGDf9ACaC64_1FqWyWDaBv7dqNEGjmCq59kk,9001
|
660
660
|
scout/utils/md5.py,sha256=KkgdxOf7xbF9AF40ZjQKCgWaxFWJ9tp9RKjd8SU6IoA,649
|
661
661
|
scout/utils/scout_requests.py,sha256=owL_XvsrQJG4e0EUuUiY6y_hqKKep2Qljg1nMukzp8Y,12855
|
662
|
-
scout_browser-4.
|
663
|
-
scout_browser-4.
|
664
|
-
scout_browser-4.
|
665
|
-
scout_browser-4.
|
666
|
-
scout_browser-4.
|
667
|
-
scout_browser-4.
|
662
|
+
scout_browser-4.81.dist-info/LICENSE,sha256=TM1Y9Cqbwk55JVfxD-_bpGLtZQAeN9RovQlqHK6eOTY,1485
|
663
|
+
scout_browser-4.81.dist-info/METADATA,sha256=FHj21oEF5pMZ602x8sN_dsOZaY1-4j9d1w7Zex1oklY,14196
|
664
|
+
scout_browser-4.81.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
665
|
+
scout_browser-4.81.dist-info/entry_points.txt,sha256=E6vGg1OwvvKYIsXdHxmlIj7RmcTF0K77Q_PU8laImGg,46
|
666
|
+
scout_browser-4.81.dist-info/top_level.txt,sha256=qM75h71bztMaLYsxn1up4c_n2rjc_ZnyaW6Q0K5uOXc,6
|
667
|
+
scout_browser-4.81.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|