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 CHANGED
@@ -1 +1 @@
1
- __version__ = "4.80"
1
+ __version__ = "4.81"
@@ -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(30)
704
+ variants = self.variant_collection.find(query).sort(sort_key).limit(limit)
705
705
 
706
706
  return variants
707
707
 
@@ -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": [
@@ -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
- <!-- 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>
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
- <!-- 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>
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
- <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>
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" style="table-layout:fixed;">
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 badge-pill badge-sm badge-secondary">V</span>
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 badge-pill badge-danger" title="{{ ind.phenotype_human }}">{{ ind.phenotype_human }}</span>
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 badge-pill badge-secondary" title="{{ ind.phenotype_human }}">{{ ind.phenotype_human }}</span>
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 badge-pill badge-sm badge-secondary">V</span>
143
+ <span class="badge rounded-pill py-1 bg-secondary">V</span>
142
144
  {% elif ind.confirmed_parent == False %}
143
- <span class="badge badge-pill badge-sm badge-danger">!</span>
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
- <font color="green">{{case.status.upper()}}</font>
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="ml-3 d-flex align-items-start flex-column">
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="ml-1 {% if case_ind.phenotype == 2 %} text-danger {% endif %}">{{case_ind.display_name}}</span>
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="ml-1 {% if case_ind.phenotype == 2 %} text-danger {% endif %}">{{case_ind.display_name}}</span>
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 duplicated_variants|length == variants.suspects_detailed.suspects_detailed|length %}
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-black" style="border-top-left-radius: 0; border-top-right-radius: 0;">
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-black" style="border-top-left-radius: 0; border-top-right-radius: 0;">
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-black" style="border-top-left-radius: 0; border-top-right-radius: 0;">
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 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;
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>&nbsp;
491
+ <span class="badge rounded-pill bg-success py-1">{{variant.category | upper}}</span>&nbsp;
488
492
  {% if variant.sanger_ordered and variant.validation %}
489
- <span class="badge badge-pill badge-info" title="verif-status">Verification:{{variant.validation}}</span>
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 badge-info" title="sanger-status">Verification ordered</span>
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 badge-secondary">{{ panel_id }}</a><br>
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 badge-danger">{{variant.frequency}}</span>
564
+ <span class="badge bg-danger">{{variant.frequency}}</span>
561
565
  {% elif variant.frequency == 'uncommon' %}
562
- <span class="badge badge-warning">{{variant.frequency}}</span>
566
+ <span class="badge bg-warning text-dark">{{variant.frequency}}</span>
563
567
  {% else %}
564
- <span class="badge badge-success">{{variant.frequency}}</span>
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 badge-pill badge-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
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 badge-pill badge-secondary" title="Tier">{{ cancer_tier_options[variant.cancer_tier]['label'] }}</span>
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 badge-info" title="{{genetic_models[model]}}">{{ model }}</span>
671
+ <span class="badge bg-info" title="{{genetic_models[model]}}">{{ model }}</span>
668
672
  {% endfor %}
669
673
  {% else %}
670
- <span class="badge badge-warning">No models followed</span>
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 badge-pill badge-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['code'] }}</span>
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 badge-secondary m-1">{{ disease_term._id}}</span>&nbsp;<span>{{ disease_term.description }}&nbsp;{{ disease_term.inheritance }}</span></li>
716
+ <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
717
  {% endfor %}
714
718
  </ul>
715
719
  </td>
@@ -732,11 +736,11 @@
732
736
  {{ variant.hgnc_symbols|length }}&nbsp;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 }}&nbsp;<span class="badge badge-secondary">{{gene.region_annotation}}</span></a><br>
739
+ <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
740
  {% endfor %}
737
741
  {% endif %}
738
742
  {% else %} <!-- 0 genes. strs for instance -->
739
- <span class="badge badge-secondary">-</span>
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 badge-danger">{{variant.frequency}}</span>
793
+ <span class="badge bg-danger">{{variant.frequency}}</span>
790
794
  {% elif variant.frequency == 'uncommon' %}
791
- <span class="badge badge-warning">{{variant.frequency}}</span>
795
+ <span class="badge bg-warning text-dark">{{variant.frequency}}</span>
792
796
  {% else %}
793
- <span class="badge badge-success">{{variant.frequency}}</span>
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 badge-info" title="{{genetic_models[model]}}">{{model}}</span>
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 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>
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
+ &nbsp;<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 badge-warning float-left">{{variant.sub_category|upper}}</span></td>
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 badge-secondary">{{ panel_id }}</a><br>
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 badge-secondary">{{ caller+':'+call }}</span>
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 badge-secondary">{{ value|human_decimal }}</span>
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 badge-pill badge-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
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 badge-pill badge-secondary" title="Tier">{{ cancer_rank_options[variant.cancer_tier]['label'] }}</span>
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
- <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>
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 badge-pill badge-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['code'] }}</span>
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 badge-secondary m-1">{{ disease_term._id}}</span>&nbsp;<span>{{ disease_term.description }}&nbsp;{{ disease_term.inheritance }}</span></li>
1088
+ <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
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 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>
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
+ &nbsp;<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 badge-info">{{variant.category | upper}}</span></td>
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 badge-secondary">{{ panel_id }}</a><br>
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-right">
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-right"><small>N/A</small></td>
1198
- <td class="text-right"><small>N/A</small></td>
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 badge-pill badge-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
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 badge-pill badge-secondary" title="Tier">{{ cancer_rank_options[variant.cancer_tier]['label'] }}</span>
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 badge-warning">Partial causative</span>
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:&nbsp;
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 d-flex align-items-center">
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 badge-pill badge-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['short'] }}</span>
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 badge-pill badge-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
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 badge-pill badge-{{variant.acmg_classification['color'] if variant.acmg_classification['color'] else 'secondary'}}" title="{{variant.acmg_classification['code']}}">{{variant.acmg_classification['short'] }}</span>
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 badge-pill badge-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
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 class="row mt-2"> <!-- Show variants in dynamic gene list -->
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
- <button class="btn btn-secondary btn-sm text-white" onClick="document.getElementById('hpo-report-form').submit();">Coverage report</button>
203
- <a href="#section" onClick="document.getElementById('hpo-report-form').submit();" />
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
- <button class="btn btn-secondary btn-sm text-white" onClick="document.getElementById('hpo-overview-form').submit();">Coverage overview</button>
209
- <a href="#section" onClick="document.getElementById('hpo-overview-form').submit();" />
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
- <div class="btn-group d-flex justify-content-center mt-1"> <!-- Download genes in HPO gene panel -->
235
- <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>&nbsp;&nbsp;Clinical HPO gene panel</a>
236
- <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>&nbsp;&nbsp;Research HPO gene panel</a>
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>&nbsp;&nbsp;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>&nbsp;&nbsp;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:&nbsp;<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 badge-sm 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>
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:&nbsp;<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
- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
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
- <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
26
- <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
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:#0c63e4; background-color:#e7f1ff;" type="button" data-bs-toggle="collapse" data-bs-target="#expandable-comments-content" aria-expanded="false" aria-controls="expandable-comments-content"
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scout-browser
3
- Version: 4.80
3
+ Version: 4.81
4
4
  Summary: Clinical DNA variant visualizer and browser.
5
5
  Home-page: https://github.com/Clinical-Genomics/scout
6
6
  Author: Måns Magnusson
@@ -1,5 +1,5 @@
1
1
  scout/__init__.py,sha256=Z4liXvmEcLkC67ElsWvYHfemPKdWgWI5O6MB6XlDM8M,232
2
- scout/__version__.py,sha256=KDkccgoTo1vhNTESK_1LwV1IbCEdjE5B8-vwfGKTgUo,21
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=AIAL1xcXxuQGQAiFrn1uafA6efBksyIslbiQWNnlYsc,34130
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=gWcchq1AUPaGjLKpvS7kkmPas-3hWd0fLFcUPkxexcY,6769
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=ff9IBI4tEhWgPgDTmzu2hBRv8MU-GN_XUAdR-aqkw8U,4526
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=rbQ8rwtfw2iJj1wc2QBXQ9BwtIoCvXJgz_NABP7hfuc,61287
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=UHtJVjzDSbWgqhqHYzr92KetKtfK_zwK46Y6lmmDkHY,12853
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=FDq_8cem8pLg56XBGoU18HsDiKILdw2W-2xbv_kC_yc,3412
539
- scout/server/blueprints/panels/templates/panels/panel_pdf_simple.html,sha256=EF8jyWiumv6-wBZYpIMCdyqU6edl_lsQBVGbio2Ax-o,2587
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=WiyEd7QeQOTogC9jzfZm7VwymbNTvui_cG9tvgdbI1M,942
641
- scout/server/templates/utils.html,sha256=i2EzxASeWsZNkp8ERY1DznNkKLljCW9oPfZX-zpU-Hc,12911
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.80.dist-info/LICENSE,sha256=TM1Y9Cqbwk55JVfxD-_bpGLtZQAeN9RovQlqHK6eOTY,1485
663
- scout_browser-4.80.dist-info/METADATA,sha256=xrFS8BeJuAaX8jC4x2kAeM4HEJzfcpGGQA33claIx-4,14196
664
- scout_browser-4.80.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
665
- scout_browser-4.80.dist-info/entry_points.txt,sha256=E6vGg1OwvvKYIsXdHxmlIj7RmcTF0K77Q_PU8laImGg,46
666
- scout_browser-4.80.dist-info/top_level.txt,sha256=qM75h71bztMaLYsxn1up4c_n2rjc_ZnyaW6Q0K5uOXc,6
667
- scout_browser-4.80.dist-info/RECORD,,
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,,