scout-browser 4.95.0__py3-none-any.whl → 4.97.0__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/adapter/mongo/case.py +75 -70
- scout/adapter/mongo/filter.py +28 -11
- scout/adapter/mongo/institute.py +2 -0
- scout/adapter/mongo/omics_variant.py +20 -5
- scout/adapter/mongo/query.py +104 -95
- scout/adapter/mongo/variant.py +0 -5
- scout/adapter/mongo/variant_loader.py +10 -12
- scout/build/case.py +3 -1
- scout/build/individual.py +3 -11
- scout/commands/delete/delete_command.py +87 -49
- scout/commands/load/research.py +4 -4
- scout/commands/load/variants.py +25 -8
- scout/commands/setup/setup_scout.py +1 -1
- scout/commands/update/case.py +12 -0
- scout/commands/update/individual.py +1 -2
- scout/constants/__init__.py +7 -2
- scout/constants/acmg.py +25 -18
- scout/constants/file_types.py +68 -119
- scout/constants/filters.py +2 -1
- scout/constants/gene_tags.py +3 -3
- scout/constants/igv_tracks.py +7 -11
- scout/constants/query_terms.py +2 -2
- scout/demo/643594.config.yaml +6 -0
- scout/demo/643594.peddy.ped +1 -1
- scout/demo/643594.somalier.ancestry.tsv +4 -0
- scout/demo/643594.somalier.pairs.tsv +4 -0
- scout/demo/643594.somalier.samples.tsv +4 -0
- scout/demo/cancer.load_config.yaml +2 -3
- scout/demo/resources/__init__.py +1 -1
- scout/demo/resources/gnomad.v4.1.constraint_metrics_reduced.tsv +3755 -0
- scout/demo/rnafusion.load_config.yaml +1 -0
- scout/exceptions/database.py +1 -1
- scout/load/all.py +8 -16
- scout/models/case/case.py +1 -0
- scout/models/case/case_loading_models.py +15 -5
- scout/models/managed_variant.py +3 -3
- scout/models/omics_variant.py +3 -3
- scout/parse/case.py +113 -5
- scout/parse/pedqc.py +127 -0
- scout/parse/variant/frequency.py +9 -6
- scout/parse/variant/variant.py +71 -39
- scout/server/app.py +14 -0
- scout/server/blueprints/alignviewers/controllers.py +2 -0
- scout/server/blueprints/alignviewers/templates/alignviewers/igv_viewer.html +3 -0
- scout/server/blueprints/alignviewers/templates/alignviewers/utils.html +1 -1
- scout/server/blueprints/cases/controllers.py +25 -3
- scout/server/blueprints/cases/templates/cases/case.html +3 -0
- scout/server/blueprints/cases/templates/cases/case_report.html +28 -2
- scout/server/blueprints/cases/templates/cases/chanjo2_form.html +2 -2
- scout/server/blueprints/cases/templates/cases/collapsible_actionbar.html +12 -0
- scout/server/blueprints/cases/templates/cases/gene_panel.html +9 -3
- scout/server/blueprints/cases/templates/cases/individuals_table.html +4 -1
- scout/server/blueprints/cases/templates/cases/utils.html +23 -19
- scout/server/blueprints/cases/views.py +5 -9
- scout/server/blueprints/clinvar/controllers.py +12 -11
- scout/server/blueprints/clinvar/templates/clinvar/clinvar_submissions.html +10 -14
- scout/server/blueprints/clinvar/templates/clinvar/multistep_add_variant.html +15 -7
- scout/server/blueprints/clinvar/views.py +18 -31
- scout/server/blueprints/institutes/controllers.py +20 -1
- scout/server/blueprints/institutes/forms.py +5 -1
- scout/server/blueprints/institutes/templates/overview/institute_settings.html +7 -0
- scout/server/blueprints/institutes/templates/overview/utils.html +20 -1
- scout/server/blueprints/omics_variants/templates/omics_variants/outliers.html +9 -2
- scout/server/blueprints/omics_variants/views.py +8 -10
- scout/server/blueprints/variant/controllers.py +30 -1
- scout/server/blueprints/variant/templates/variant/cancer-variant.html +21 -5
- scout/server/blueprints/variant/templates/variant/components.html +26 -9
- scout/server/blueprints/variant/templates/variant/variant.html +4 -2
- scout/server/blueprints/variant/templates/variant/variant_details.html +1 -1
- scout/server/blueprints/variant/utils.py +2 -0
- scout/server/blueprints/variant/views.py +10 -3
- scout/server/blueprints/variants/controllers.py +29 -3
- scout/server/blueprints/variants/forms.py +37 -10
- scout/server/blueprints/variants/templates/variants/cancer-variants.html +5 -4
- scout/server/blueprints/variants/templates/variants/components.html +12 -10
- scout/server/blueprints/variants/templates/variants/str-variants.html +13 -9
- scout/server/blueprints/variants/templates/variants/utils.html +59 -36
- scout/server/blueprints/variants/views.py +45 -60
- scout/server/extensions/beacon_extension.py +1 -1
- scout/server/extensions/bionano_extension.py +5 -5
- scout/server/extensions/chanjo2_extension.py +40 -1
- scout/server/extensions/chanjo_extension.py +1 -1
- scout/server/extensions/clinvar_extension.py +56 -2
- scout/server/extensions/matchmaker_extension.py +1 -1
- scout/server/links.py +0 -14
- scout/server/static/bs_styles.css +2 -0
- scout/server/templates/layout.html +1 -0
- scout/server/utils.py +5 -0
- scout/utils/acmg.py +5 -5
- scout/utils/ensembl_biomart_clients.py +2 -11
- scout/utils/scout_requests.py +1 -1
- {scout_browser-4.95.0.dist-info → scout_browser-4.97.0.dist-info}/METADATA +1 -1
- {scout_browser-4.95.0.dist-info → scout_browser-4.97.0.dist-info}/RECORD +96 -94
- scout/demo/resources/gnomad.v4.0.constraint_metrics_reduced.tsv +0 -3755
- scout/parse/peddy.py +0 -149
- scout/utils/sort.py +0 -21
- {scout_browser-4.95.0.dist-info → scout_browser-4.97.0.dist-info}/WHEEL +0 -0
- {scout_browser-4.95.0.dist-info → scout_browser-4.97.0.dist-info}/entry_points.txt +0 -0
- {scout_browser-4.95.0.dist-info → scout_browser-4.97.0.dist-info}/licenses/LICENSE +0 -0
scout/server/links.py
CHANGED
@@ -3,7 +3,6 @@ from urllib.parse import quote
|
|
3
3
|
|
4
4
|
from flask import current_app
|
5
5
|
|
6
|
-
from scout.constants import SPIDEX_HUMAN
|
7
6
|
from scout.utils.convert import amino_acid_residue_change_3_to_1
|
8
7
|
|
9
8
|
SHALLOW_REFERENCE_STR_LOCI = ["ARX", "HOXA13"]
|
@@ -486,7 +485,6 @@ def get_variant_links(institute_obj: dict, variant_obj: dict, build: int = None)
|
|
486
485
|
ensembl_link=ensembl_link(variant_obj, build),
|
487
486
|
mitomap_link=mitomap_link(variant_obj),
|
488
487
|
hmtvar_link=hmtvar_link(variant_obj),
|
489
|
-
spidex_human=spidex_human(variant_obj),
|
490
488
|
spliceai_link=spliceai_link(variant_obj, build),
|
491
489
|
str_source_link=str_source_link(variant_obj),
|
492
490
|
snp_links=snp_links(variant_obj),
|
@@ -908,18 +906,6 @@ def hmtvar_link(variant_obj):
|
|
908
906
|
return url_template.format(id=variant_obj.get("hmtvar_variant_id"))
|
909
907
|
|
910
908
|
|
911
|
-
def spidex_human(variant_obj):
|
912
|
-
"""Translate SPIDEX annotation to human readable string."""
|
913
|
-
if variant_obj.get("spidex") is None:
|
914
|
-
return "not_reported"
|
915
|
-
if abs(variant_obj["spidex"]) < SPIDEX_HUMAN["low"]["pos"][1]:
|
916
|
-
return "low"
|
917
|
-
if abs(variant_obj["spidex"]) < SPIDEX_HUMAN["medium"]["pos"][1]:
|
918
|
-
return "medium"
|
919
|
-
|
920
|
-
return "high"
|
921
|
-
|
922
|
-
|
923
909
|
def external_primer_order_link(variant_obj, build=None):
|
924
910
|
"""Compose link for primers orders based on the configuration paramaters EXTERNAL_PRIMER_ORDER_LINK_(37|38)"""
|
925
911
|
build = build or 37
|
@@ -269,6 +269,8 @@ li.nav-item {
|
|
269
269
|
|
270
270
|
/* Introduce small space in between list elements */
|
271
271
|
body {
|
272
|
+
min-width: 1000px;
|
273
|
+
overflow-x: scroll;
|
272
274
|
background-color: var(--bg-color);
|
273
275
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
274
276
|
}
|
@@ -43,6 +43,7 @@
|
|
43
43
|
<div class="dropdown-divider" ></div>
|
44
44
|
<a class="dropdown-item" href="https://clinical-genomics.github.io/scout" referrerpolicy="no-referrer" rel="noopener" target='_blank'>User guide</a>
|
45
45
|
<a class="dropdown-item" href="https://github.com/Clinical-Genomics/scout/issues" referrerpolicy="no-referrer" rel="noopener" target='_blank'>Open issues</a>
|
46
|
+
<a class="dropdown-item mb-1" href="https://github.com/Clinical-Genomics/scout/releases/tag/v{{ SCOUT_VERSION[:-2] if SCOUT_VERSION.endswith('.0') and SCOUT_VERSION.count('.') > 1 else SCOUT_VERSION }}" referrerpolicy="no-referrer" rel="noopener" target='_blank'>Release notes v{{SCOUT_VERSION}}</a>
|
46
47
|
</div>
|
47
48
|
</li>
|
48
49
|
{% block top_nav %}{% endblock %}
|
scout/server/utils.py
CHANGED
@@ -330,6 +330,11 @@ def case_append_alignments(case_obj: dict):
|
|
330
330
|
# Add sample name
|
331
331
|
sample_name = f"{case_obj.get('display_name', '')} - {individual.get('display_name', '')}"
|
332
332
|
append_safe(case_obj, "sample_names", sample_name)
|
333
|
+
append_safe(
|
334
|
+
case_obj,
|
335
|
+
"track_items_soft_clips_settings",
|
336
|
+
individual.get("analysis_type", "") not in ["wes", "panel"],
|
337
|
+
)
|
333
338
|
|
334
339
|
# Process all file settings
|
335
340
|
for setting in unwrap_settings:
|
scout/utils/acmg.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding=UTF-8
|
2
2
|
|
3
|
-
from typing import Optional
|
3
|
+
from typing import List, Optional
|
4
4
|
|
5
5
|
from scout.constants import ACMG_COMPLETE_MAP
|
6
6
|
from scout.constants.acmg import ACMG_POTENTIAL_CONFLICTS
|
@@ -362,12 +362,12 @@ def get_acmg_temperature(acmg_terms: set) -> Optional[dict]:
|
|
362
362
|
}
|
363
363
|
|
364
364
|
|
365
|
-
def get_acmg_conflicts(acmg_terms:
|
366
|
-
"""Check potential
|
365
|
+
def get_acmg_conflicts(acmg_terms: List[str]) -> List[str]:
|
366
|
+
"""Check for potential conflicting terms, return a list of references as strings."""
|
367
367
|
|
368
368
|
conflicts = []
|
369
|
-
for
|
370
|
-
if
|
369
|
+
for conflict_set, reference in ACMG_POTENTIAL_CONFLICTS:
|
370
|
+
if conflict_set.issubset(set(acmg_terms)):
|
371
371
|
conflicts.append(reference)
|
372
372
|
|
373
373
|
return conflicts
|
@@ -4,7 +4,7 @@ from typing import Dict, Iterator
|
|
4
4
|
import requests
|
5
5
|
|
6
6
|
LOG = logging.getLogger(__name__)
|
7
|
-
SCHUG_BASE = "https://schug.scilifelab.se"
|
7
|
+
SCHUG_BASE = "https://schug-stage.scilifelab.se"
|
8
8
|
|
9
9
|
BUILDS: Dict[str, str] = {"37": "GRCh37", "38": "GRCh38"}
|
10
10
|
|
@@ -29,15 +29,6 @@ class EnsemblBiomartHandler:
|
|
29
29
|
def stream_resource(self, interval_type: str) -> Iterator[str]:
|
30
30
|
"""Use schug web to fetch genes, transcripts or exons from a remote Ensembl biomart in the right genome build and save them to file."""
|
31
31
|
|
32
|
-
def yield_resource_lines(iterable) -> str:
|
33
|
-
"""Removes the last element from an iterator."""
|
34
|
-
it = iter(iterable)
|
35
|
-
current = next(it)
|
36
|
-
for i in it:
|
37
|
-
yield current
|
38
|
-
current = i
|
39
|
-
|
40
32
|
shug_url: str = f"{SCHUG_BASE}{SCHUG_RESOURCE_URL[interval_type]}{self.build}"
|
41
33
|
|
42
|
-
|
43
|
-
return yield_resource_lines(self.stream_get(shug_url))
|
34
|
+
return self.stream_get(shug_url)
|
scout/utils/scout_requests.py
CHANGED
@@ -324,7 +324,7 @@ def fetch_constraint():
|
|
324
324
|
Returns:
|
325
325
|
exac_lines(iterable(str))
|
326
326
|
"""
|
327
|
-
path = "/release/
|
327
|
+
path = "/release/4.1/constraint/gnomad.v4.1.constraint_metrics.tsv"
|
328
328
|
mirror_urls = [
|
329
329
|
f"https://storage.googleapis.com/gcp-public-data--gnomad{path}",
|
330
330
|
f"https://gnomad-public-us-east-1.s3.amazonaws.com{path}",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: scout-browser
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.97.0
|
4
4
|
Summary: Clinical DNA variant visualizer and browser
|
5
5
|
Project-URL: Repository, https://github.com/Clinical-Genomics/scout
|
6
6
|
Project-URL: Changelog, https://github.com/Clinical-Genomics/scout/blob/main/CHANGELOG.md
|