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.
Files changed (99) hide show
  1. scout/adapter/mongo/case.py +75 -70
  2. scout/adapter/mongo/filter.py +28 -11
  3. scout/adapter/mongo/institute.py +2 -0
  4. scout/adapter/mongo/omics_variant.py +20 -5
  5. scout/adapter/mongo/query.py +104 -95
  6. scout/adapter/mongo/variant.py +0 -5
  7. scout/adapter/mongo/variant_loader.py +10 -12
  8. scout/build/case.py +3 -1
  9. scout/build/individual.py +3 -11
  10. scout/commands/delete/delete_command.py +87 -49
  11. scout/commands/load/research.py +4 -4
  12. scout/commands/load/variants.py +25 -8
  13. scout/commands/setup/setup_scout.py +1 -1
  14. scout/commands/update/case.py +12 -0
  15. scout/commands/update/individual.py +1 -2
  16. scout/constants/__init__.py +7 -2
  17. scout/constants/acmg.py +25 -18
  18. scout/constants/file_types.py +68 -119
  19. scout/constants/filters.py +2 -1
  20. scout/constants/gene_tags.py +3 -3
  21. scout/constants/igv_tracks.py +7 -11
  22. scout/constants/query_terms.py +2 -2
  23. scout/demo/643594.config.yaml +6 -0
  24. scout/demo/643594.peddy.ped +1 -1
  25. scout/demo/643594.somalier.ancestry.tsv +4 -0
  26. scout/demo/643594.somalier.pairs.tsv +4 -0
  27. scout/demo/643594.somalier.samples.tsv +4 -0
  28. scout/demo/cancer.load_config.yaml +2 -3
  29. scout/demo/resources/__init__.py +1 -1
  30. scout/demo/resources/gnomad.v4.1.constraint_metrics_reduced.tsv +3755 -0
  31. scout/demo/rnafusion.load_config.yaml +1 -0
  32. scout/exceptions/database.py +1 -1
  33. scout/load/all.py +8 -16
  34. scout/models/case/case.py +1 -0
  35. scout/models/case/case_loading_models.py +15 -5
  36. scout/models/managed_variant.py +3 -3
  37. scout/models/omics_variant.py +3 -3
  38. scout/parse/case.py +113 -5
  39. scout/parse/pedqc.py +127 -0
  40. scout/parse/variant/frequency.py +9 -6
  41. scout/parse/variant/variant.py +71 -39
  42. scout/server/app.py +14 -0
  43. scout/server/blueprints/alignviewers/controllers.py +2 -0
  44. scout/server/blueprints/alignviewers/templates/alignviewers/igv_viewer.html +3 -0
  45. scout/server/blueprints/alignviewers/templates/alignviewers/utils.html +1 -1
  46. scout/server/blueprints/cases/controllers.py +25 -3
  47. scout/server/blueprints/cases/templates/cases/case.html +3 -0
  48. scout/server/blueprints/cases/templates/cases/case_report.html +28 -2
  49. scout/server/blueprints/cases/templates/cases/chanjo2_form.html +2 -2
  50. scout/server/blueprints/cases/templates/cases/collapsible_actionbar.html +12 -0
  51. scout/server/blueprints/cases/templates/cases/gene_panel.html +9 -3
  52. scout/server/blueprints/cases/templates/cases/individuals_table.html +4 -1
  53. scout/server/blueprints/cases/templates/cases/utils.html +23 -19
  54. scout/server/blueprints/cases/views.py +5 -9
  55. scout/server/blueprints/clinvar/controllers.py +12 -11
  56. scout/server/blueprints/clinvar/templates/clinvar/clinvar_submissions.html +10 -14
  57. scout/server/blueprints/clinvar/templates/clinvar/multistep_add_variant.html +15 -7
  58. scout/server/blueprints/clinvar/views.py +18 -31
  59. scout/server/blueprints/institutes/controllers.py +20 -1
  60. scout/server/blueprints/institutes/forms.py +5 -1
  61. scout/server/blueprints/institutes/templates/overview/institute_settings.html +7 -0
  62. scout/server/blueprints/institutes/templates/overview/utils.html +20 -1
  63. scout/server/blueprints/omics_variants/templates/omics_variants/outliers.html +9 -2
  64. scout/server/blueprints/omics_variants/views.py +8 -10
  65. scout/server/blueprints/variant/controllers.py +30 -1
  66. scout/server/blueprints/variant/templates/variant/cancer-variant.html +21 -5
  67. scout/server/blueprints/variant/templates/variant/components.html +26 -9
  68. scout/server/blueprints/variant/templates/variant/variant.html +4 -2
  69. scout/server/blueprints/variant/templates/variant/variant_details.html +1 -1
  70. scout/server/blueprints/variant/utils.py +2 -0
  71. scout/server/blueprints/variant/views.py +10 -3
  72. scout/server/blueprints/variants/controllers.py +29 -3
  73. scout/server/blueprints/variants/forms.py +37 -10
  74. scout/server/blueprints/variants/templates/variants/cancer-variants.html +5 -4
  75. scout/server/blueprints/variants/templates/variants/components.html +12 -10
  76. scout/server/blueprints/variants/templates/variants/str-variants.html +13 -9
  77. scout/server/blueprints/variants/templates/variants/utils.html +59 -36
  78. scout/server/blueprints/variants/views.py +45 -60
  79. scout/server/extensions/beacon_extension.py +1 -1
  80. scout/server/extensions/bionano_extension.py +5 -5
  81. scout/server/extensions/chanjo2_extension.py +40 -1
  82. scout/server/extensions/chanjo_extension.py +1 -1
  83. scout/server/extensions/clinvar_extension.py +56 -2
  84. scout/server/extensions/matchmaker_extension.py +1 -1
  85. scout/server/links.py +0 -14
  86. scout/server/static/bs_styles.css +2 -0
  87. scout/server/templates/layout.html +1 -0
  88. scout/server/utils.py +5 -0
  89. scout/utils/acmg.py +5 -5
  90. scout/utils/ensembl_biomart_clients.py +2 -11
  91. scout/utils/scout_requests.py +1 -1
  92. {scout_browser-4.95.0.dist-info → scout_browser-4.97.0.dist-info}/METADATA +1 -1
  93. {scout_browser-4.95.0.dist-info → scout_browser-4.97.0.dist-info}/RECORD +96 -94
  94. scout/demo/resources/gnomad.v4.0.constraint_metrics_reduced.tsv +0 -3755
  95. scout/parse/peddy.py +0 -149
  96. scout/utils/sort.py +0 -21
  97. {scout_browser-4.95.0.dist-info → scout_browser-4.97.0.dist-info}/WHEEL +0 -0
  98. {scout_browser-4.95.0.dist-info → scout_browser-4.97.0.dist-info}/entry_points.txt +0 -0
  99. {scout_browser-4.95.0.dist-info → scout_browser-4.97.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,5 @@
1
1
  """Code for MatchMaker Exchange integration
2
- Tested with PatientMatcher: https://github.com/Clinical-Genomics/patientMatcher
2
+ Tested with PatientMatcher: https://github.com/Clinical-Genomics/patientMatcher
3
3
  """
4
4
 
5
5
  import datetime
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: set) -> list:
366
- """Check potential conflict paris, return list of reference strings."""
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 t1, t2, reference in ACMG_POTENTIAL_CONFLICTS:
370
- if t1 in acmg_terms and t2 in acmg_terms:
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
- # return all lines except the last, which contains the "[success]" string
43
- return yield_resource_lines(self.stream_get(shug_url))
34
+ return self.stream_get(shug_url)
@@ -324,7 +324,7 @@ def fetch_constraint():
324
324
  Returns:
325
325
  exac_lines(iterable(str))
326
326
  """
327
- path = "/release/v4.0/constraint/gnomad.v4.0.constraint_metrics.tsv"
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.95.0
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