scout-browser 4.86.1__py3-none-any.whl → 4.87.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
scout/__version__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "4.86.1"
1
+ __version__ = "4.87.1"
scout/build/case.py CHANGED
@@ -211,6 +211,8 @@ def build_case(case_data, adapter):
211
211
 
212
212
  case_obj["genome_build"] = genome_build
213
213
 
214
+ case_obj["rna_genome_build"] = case_data.get("rna_genome_build", "38")
215
+
214
216
  if case_data.get("rank_model_version"):
215
217
  case_obj["rank_model_version"] = str(case_data["rank_model_version"])
216
218
 
@@ -4,8 +4,11 @@ HG19REF_URL = (
4
4
  )
5
5
  HG19REF_INDEX_URL = "https://s3.amazonaws.com/igv.broadinstitute.org/genomes/seq/1kg_v37/human_g1k_v37_decoy.fasta.fai"
6
6
  HG19CYTOBAND_URL = "https://s3.amazonaws.com/igv.broadinstitute.org/genomes/seq/hg19/cytoBand.txt"
7
+ HG19ALIAS_URL = "https://s3.amazonaws.com/igv.org.genomes/hg19/hg19_alias.tab"
8
+
7
9
  HG38REF_URL = "https://s3.amazonaws.com/igv.broadinstitute.org/genomes/seq/hg38/hg38.fa"
8
10
  HG38REF_INDEX_URL = "https://s3.amazonaws.com/igv.broadinstitute.org/genomes/seq/hg38/hg38.fa.fai"
11
+ HG38ALIAS_URL = "https://s3.amazonaws.com/igv.org.genomes/hg38/hg38_alias.tab"
9
12
  HG38CYTOBAND_URL = (
10
13
  "https://s3.amazonaws.com/igv.broadinstitute.org/annotations/hg38/cytoBandIdeo.txt"
11
14
  )
@@ -33,6 +36,7 @@ HUMAN_REFERENCE_37 = {
33
36
  "fastaURL": HG19REF_URL,
34
37
  "indexURL": HG19REF_INDEX_URL,
35
38
  "cytobandURL": HG19CYTOBAND_URL,
39
+ "aliasURL": HG19ALIAS_URL,
36
40
  }
37
41
 
38
42
  # Human genome reference genome build 38. Always displayed
@@ -41,6 +45,7 @@ HUMAN_REFERENCE_38 = {
41
45
  "fastaURL": HG38REF_URL,
42
46
  "indexURL": HG38REF_INDEX_URL,
43
47
  "cytobandURL": HG38CYTOBAND_URL,
48
+ "aliasURL": HG38ALIAS_URL,
44
49
  }
45
50
 
46
51
  # igv.js track settings common for all users and all cases. Selectable by users
@@ -151,3 +151,4 @@ sv_rank_model_version: '1.5'
151
151
  rank_score_threshold: -100
152
152
  analysis_date: 2016-10-12 14:00:46
153
153
  human_genome_build: '37'
154
+ rna_human_genome_build: '38'
@@ -409,6 +409,7 @@ class CaseLoader(BaseModel):
409
409
  gene_fusion_report_research: Optional[str] = None
410
410
  gene_panels: Optional[List[str]] = []
411
411
  genome_build: str
412
+ rna_genome_build: Optional[str] = "38"
412
413
  individuals: Union[List[SampleLoader]] = Field([], alias="samples")
413
414
  lims_id: Optional[str] = None
414
415
  madeline_info: Optional[str] = Field(None, alias="madeline")
@@ -499,15 +500,17 @@ class CaseLoader(BaseModel):
499
500
  @model_validator(mode="before")
500
501
  @classmethod
501
502
  def format_build(cls, values) -> "CaseLoader":
502
- """Format the genome build collected from genome_build or human_genome_build keys, so it will be saved as either '37' or '38'."""
503
- str_build = str(values.get("genome_build") or values.get("human_genome_build", ""))
504
- if "37" in str_build:
505
- str_build = "37"
506
- elif "38" in str_build:
507
- str_build = "38"
508
- if str_build not in GENOME_BUILDS:
509
- raise ValueError("Genome build must be either '37' or '38'.")
510
- values["genome_build"] = str_build
503
+ """Format the RNA genome build collected from RNA_human_genome_build key."""
504
+ rna_str_build = str(values.get("rna_human_genome_build", "38"))
505
+ values["rna_genome_build"] = _get_str_build(rna_str_build)
506
+ return values
507
+
508
+ @model_validator(mode="before")
509
+ @classmethod
510
+ def format_rna_build(cls, values) -> "CaseLoader":
511
+ """Format the genome build collected from genome_build or human_genome_build keys."""
512
+ dna_str_build = str(values.get("genome_build") or values.get("human_genome_build", ""))
513
+ values["genome_build"] = _get_str_build(dna_str_build)
511
514
  return values
512
515
 
513
516
  @field_validator("individuals", mode="after")
@@ -567,3 +570,14 @@ class CaseLoader(BaseModel):
567
570
  raise ValueError("Case owner is missing.")
568
571
  values["collaborators"] = [values["owner"]]
569
572
  return values
573
+
574
+
575
+ def _get_str_build(str_build):
576
+ """Get genome build, as either '37' or '38'."""
577
+ if "37" in str_build:
578
+ str_build = "37"
579
+ elif "38" in str_build:
580
+ str_build = "38"
581
+ if str_build not in GENOME_BUILDS:
582
+ raise ValueError("Genome build must be either '37' or '38'.")
583
+ return str_build
@@ -131,7 +131,6 @@ def make_sashimi_tracks(
131
131
  Returns:
132
132
  display_obj(dict): A display object containing case name, list of genes, locus and tracks
133
133
  """
134
- build = "38" # This feature is only available for RNA tracks in build 38
135
134
 
136
135
  locus = "All"
137
136
  variant_obj = None
@@ -141,6 +140,10 @@ def make_sashimi_tracks(
141
140
  if omics_variant_id:
142
141
  variant_obj = store.omics_variant(variant_id=omics_variant_id)
143
142
 
143
+ build = "38"
144
+ if "37" in str(case_obj.get("rna_genome_build", "38")):
145
+ build = "37"
146
+
144
147
  if variant_obj:
145
148
  locus = make_locus_from_variant(variant_obj, case_obj, build)
146
149
 
@@ -151,19 +154,7 @@ def make_sashimi_tracks(
151
154
  # Populate tracks for each individual with splice junction track data
152
155
  for ind in case_obj.get("individuals", []):
153
156
  if all([ind.get("splice_junctions_bed"), ind.get("rna_coverage_bigwig")]):
154
- coverage_wig = ind["rna_coverage_bigwig"]
155
- splicej_bed = ind["splice_junctions_bed"]
156
- splicej_bed_index = (
157
- f"{splicej_bed}.tbi" if os.path.isfile(f"{splicej_bed}.tbi") else None
158
- )
159
- if splicej_bed_index is None:
160
- flash(f"Missing bed file index for individual {ind['display_name']}")
161
- track = {
162
- "name": ind["display_name"],
163
- "coverage_wig": coverage_wig,
164
- "splicej_bed": splicej_bed,
165
- "splicej_bed_index": splicej_bed_index,
166
- }
157
+ track = make_merged_splice_track(ind)
167
158
  display_obj["tracks"].append(track)
168
159
  if ind.get("rna_alignment_path"):
169
160
  rna_aln = ind["rna_alignment_path"]
@@ -180,6 +171,30 @@ def make_sashimi_tracks(
180
171
  return display_obj
181
172
 
182
173
 
174
+ def make_merged_splice_track(ind: dict) -> dict:
175
+ """
176
+ Retrieve individual splice track component and store in a dict for use when generating an IGV.js config.
177
+
178
+ Args:
179
+ ind: dict individual (sample)
180
+
181
+ Returns:
182
+ track: dict with merged track data for igv configuration
183
+ """
184
+ coverage_wig = ind["rna_coverage_bigwig"]
185
+ splicej_bed = ind["splice_junctions_bed"]
186
+ splicej_bed_index = f"{splicej_bed}.tbi" if os.path.isfile(f"{splicej_bed}.tbi") else None
187
+ if splicej_bed_index is None:
188
+ flash(f"Missing bed file index for individual {ind['display_name']}")
189
+ track = {
190
+ "name": ind["display_name"],
191
+ "coverage_wig": coverage_wig,
192
+ "splicej_bed": splicej_bed,
193
+ "splicej_bed_index": splicej_bed_index,
194
+ }
195
+ return track
196
+
197
+
183
198
  def make_locus_from_variant(variant_obj: Dict, case_obj: Dict, build: str) -> str:
184
199
  """Given a variant obj, construct a locus string across any gene touched for IGV to display.
185
200
 
@@ -46,10 +46,11 @@
46
46
  // Example of fully specifying a reference GRCh38. Scout is supporting only this for now
47
47
  reference:
48
48
  {
49
- id: "hg38",
49
+ id: "{{ reference_track.id }}",
50
50
  fastaURL: "{{ reference_track.fastaURL }}",
51
51
  indexURL: "{{ reference_track.indexURL }}",
52
- cytobandURL: "{{ reference_track.cytobandURL }}"
52
+ cytobandURL: "{{ reference_track.cytobandURL }}",
53
+ aliasURL: "{{ reference_track.aliasURL }}"
53
54
  },
54
55
  locus: '{{ locus }}',
55
56
  tracks:
@@ -93,8 +94,9 @@
93
94
  height: 500,
94
95
  },
95
96
  ]
96
- }, // end of sashimi track with data
97
- {% if custom_tracks|selectattr("name","equalto", "Genes")|list|length > 0 %}
97
+ },
98
+ {% endif %}
99
+ {% if custom_tracks|selectattr("name","equalto", "Genes")|list|length > 0 %}
98
100
  { // genes track
99
101
  name: geneTrack.name,
100
102
  type: geneTrack.type,
@@ -109,9 +111,8 @@
109
111
  order: {{counter.loop}},
110
112
  infoURL: "https://www.ncbi.nlm.nih.gov/gene/?term=$$"
111
113
  }, // end of genes track
112
- {% endif %}
113
- {% endif %}
114
- {% endfor %}
114
+ {% endif %}
115
+ {% endfor %}
115
116
  ] // end of tracks
116
117
  };
117
118
  var igvDiv = document.getElementById("igvDiv");
@@ -46,7 +46,8 @@
46
46
  id: "{{ reference_track.id }}",
47
47
  fastaURL: "{{ reference_track.fastaURL }}",
48
48
  indexURL: "{{ reference_track.indexURL }}",
49
- cytobandURL: "{{ reference_track.cytobandURL }}"
49
+ cytobandURL: "{{ reference_track.cytobandURL }}",
50
+ aliasURL: "{{ reference_track.aliasURL }}"
50
51
  },
51
52
  locus: "{{locus}}",
52
53
  tracks: [
@@ -1,5 +1,5 @@
1
1
  {% macro igv_script() %}
2
2
  <link rel="shortcut icon" href="//igv.org/web/img/favicon.ico">
3
3
  <!-- IGV JS-->
4
- <script src="https://cdn.jsdelivr.net/npm/igv@3.0.1/dist/igv.min.js"></script>
4
+ <script src="https://cdn.jsdelivr.net/npm/igv@3.0.4/dist/igv.min.js" integrity="sha512-iczcEXdlX8PdVb/x5TKY6PntdhIbzWaPicz3ZIeZ41EM2MfFboJKXinNzfcVL+SgEv2dOxezH7GAY5V+rQ9jMQ==" crossorigin="anonymous"></script>
5
5
  {% endmacro %}
@@ -201,7 +201,7 @@
201
201
  {% if has_rna_tracks %}
202
202
  <div href="#" class="bg-dark list-group-item d-inline-block text-white">
203
203
  <form action="{{url_for('alignviewers.sashimi_igv', institute_id=case['owner'], case_name=case['display_name']) }}" target="_blank" rel="noopener">
204
- <button role="submit" data-bs-toggle="tooltip" data-bs-placement="top" title="Only available in build GRCh38" class="btn btn-xs form-control btn-secondary">R<span class="menu-collapsed">NA splicing</span></button>
204
+ <button role="submit" data-bs-toggle="tooltip" data-bs-placement="top" title="Available in build GRCh{{ case.rna_genome_build or '38' }}" class="btn btn-xs form-control btn-secondary">R<span class="menu-collapsed">NA splicing</span></button>
205
205
  </form>
206
206
  </div>
207
207
  {% endif %}
@@ -70,27 +70,29 @@
70
70
  {% for variant in variants %}
71
71
  <tr>
72
72
  <td class="text-end">
73
- <div class="d-flex flex-row justify-content-between align-items-baseline">
73
+ <div class="d-flex flex-row justify-content-between">
74
74
  {% if variant.genes %}
75
75
  {{ gene_cell(variant) }}
76
76
  {% else %}
77
77
  {{ variant.gene_name_orig }}
78
78
  {% endif %}
79
- {% if case.vcf_files.vcf_snv %}
80
- <form action="{{url_for('variants.variants', institute_id=institute._id, case_name=case.display_name) }}">
81
- <input type="hidden" id="hgnc_symbols" name="hgnc_symbols" value="{% for gene in variant.genes %}{{gene.hgnc_symbol}}{{ ", " if not loop.last else "" }}{% endfor %}"></input>
82
- <input type="hidden" id="gene_panels" name="gene_panels" value="['']"></input>
83
- <button type="submit" class="btn btn-secondary btn-sm" target="_blank" rel="noopener" data-bs-toggle="tooltip" title="SNV and INDEL variants view filtered for the gene(s) {% for gene in variant.genes %}{{gene.hgnc_symbol}}{{ ", " if not loop.last else "" }}{% endfor %} ">SNVs</button>
84
- </form>
85
- {% endif %}
86
- {% if case.vcf_files.vcf_sv %}
87
- <form action="{{url_for('variants.sv_variants', institute_id=institute._id, case_name=case.display_name) }}">
88
- <input type="hidden" id="hgnc_symbols" name="hgnc_symbols" value="{% for gene in variant.genes %}{{gene.hgnc_symbol}}{{ ", " if not loop.last else "" }}{% endfor %}"></input>
89
- <input type="hidden" id="gene_panels" name="gene_panels" value="['']"></input>
90
- <button type="submit" class="btn btn-secondary btn-sm" target="_blank" rel="noopener" data-bs-toggle="tooltip" title="SV variants view filtered for the gene(s) {% for gene in variant.genes %}{{gene.hgnc_symbol}}{{ ", " if not loop.last else "" }}{% endfor %} ">SVs</button>
91
- </form>
92
- {% endif %}
93
- </div>
79
+ <div class="d-flex justify-content-center">
80
+ {% if case.vcf_files.vcf_snv %}
81
+ <form action="{{url_for('variants.variants', institute_id=institute._id, case_name=case.display_name) }}">
82
+ <input type="hidden" id="hgnc_symbols" name="hgnc_symbols" value="{% for gene in variant.genes %}{{gene.hgnc_symbol}}{{ ", " if not loop.last else "" }}{% endfor %}"></input>
83
+ <input type="hidden" id="gene_panels" name="gene_panels" value="['']"></input>
84
+ <span><button type="submit" class="btn btn-secondary btn-sm" style="float: right;" target="_blank" rel="noopener" data-bs-toggle="tooltip" title="SNV and INDEL variants view filtered for the gene(s) {% for gene in variant.genes %}{{gene.hgnc_symbol}}{{ ", " if not loop.last else "" }}{% endfor %} ">SNVs</button></span>
85
+ </form>
86
+ {% endif %}
87
+ {% if case.vcf_files.vcf_sv %}
88
+ <form action="{{url_for('variants.sv_variants', institute_id=institute._id, case_name=case.display_name) }}">
89
+ <input type="hidden" id="hgnc_symbols" name="hgnc_symbols" value="{% for gene in variant.genes %}{{gene.hgnc_symbol}}{{ ", " if not loop.last else "" }}{% endfor %}"></input>
90
+ <input type="hidden" id="gene_panels" name="gene_panels" value="['']"></input>
91
+ <button type="submit" class="btn btn-secondary btn-sm" target="_blank" rel="noopener" data-bs-toggle="tooltip" title="SV variants view filtered for the gene(s) {% for gene in variant.genes %}{{gene.hgnc_symbol}}{{ ", " if not loop.last else "" }}{% endfor %} ">SVs</button></span>
92
+ </form>
93
+ {% endif %}
94
+ </div>
95
+ </div>
94
96
  </td>
95
97
  <td>{{ variant.sub_category }}</td>
96
98
  <td class="text-end"> {% if variant.sub_category == "splicing" %}
@@ -111,7 +113,7 @@
111
113
  <td class="text-end">{{ variant.chromosome }}</td>
112
114
  <td class="text-end"><span style="white-space: nowrap;">{{ variant.position|human_longint|safe }}</span>-<span style="white-space: nowrap;">{{ variant.end|human_longint|safe }}</span>
113
115
  {% if case.has_rna_tracks %}
114
- {{ splice_junctions_button(institute._id, case.display_name, None, variant.omics_variant_id) }}
116
+ {{ splice_junctions_button(institute._id, case, None, variant.omics_variant_id) }}
115
117
  {% endif %}
116
118
  </tr>
117
119
  {% else %}
@@ -33,13 +33,13 @@
33
33
  </div>
34
34
  {% endmacro %}
35
35
 
36
- {% macro splice_junctions_button(institute_id, case_name, variant_id, omics_variant_id) %}
36
+ {% macro splice_junctions_button(institute_id, case, variant_id, omics_variant_id) %}
37
37
  {% if omics_variant_id %}
38
- <a class="btn btn-sm btn-secondary text-white" href="{{url_for('alignviewers.sashimi_igv', institute_id=institute_id, case_name=case_name, omics_variant_id=omics_variant_id)}}" target="_blank"
39
- data-bs-toggle="tooltip" data-bs-placement="top" title="Only available in build GRCh38">RNA splicing</a>
38
+ <a class="btn btn-sm btn-secondary text-white" href="{{url_for('alignviewers.sashimi_igv', institute_id=institute_id, case_name=case.display_name, omics_variant_id=omics_variant_id)}}" target="_blank"
39
+ data-bs-toggle="tooltip" data-bs-placement="top" title="Only available in build GRCh{{ case.rna_genome_build or '38' }}">RNA splicing</a>
40
40
  {% else %}
41
- <a class="btn btn-sm btn-secondary text-white" href="{{url_for('alignviewers.sashimi_igv', institute_id=institute_id, case_name=case_name, variant_id=variant_id)}}" target="_blank"
42
- data-bs-toggle="tooltip" data-bs-placement="top" title="Only available in build GRCh38">RNA splicing</a>
41
+ <a class="btn btn-sm btn-secondary text-white" href="{{url_for('alignviewers.sashimi_igv', institute_id=institute_id, case_name=case.display_name, variant_id=variant_id)}}" target="_blank"
42
+ data-bs-toggle="tooltip" data-bs-placement="top" title="Only available in build GRCh{{ case.rna_genome_build or '38' }}">RNA splicing</a>
43
43
  {% endif %}
44
44
  {% endmacro %}
45
45
 
@@ -80,7 +80,7 @@
80
80
  {% endif %}
81
81
  {% if has_rna_tracks %}
82
82
  <div class="ms-1">
83
- {{ splice_junctions_button(institute._id, case.display_name, variant._id) }}
83
+ {{ splice_junctions_button(institute._id, case, variant._id) }}
84
84
  </div>
85
85
  {% endif %}
86
86
  {% if variant.alamut_link %}
@@ -274,7 +274,7 @@
274
274
  {% endif %}
275
275
  {% if rna_tracks %}
276
276
  <li class="list-group-item">
277
- {{ splice_junctions_button(institute._id, case.display_name, variant._id) }}
277
+ {{ splice_junctions_button(institute._id, case, variant._id) }}
278
278
  </li>
279
279
  {% endif %}
280
280
  </ul>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scout-browser
3
- Version: 4.86.1
3
+ Version: 4.87.1
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=Bv6pkrw-9AgvxM3NeIK6_fIwVSVxwIL91re4O83Ec0k,23
2
+ scout/__version__.py,sha256=MxHqxpgLxeUC52jVG4Mguf7K9WGCBPbPaPSGhP8EEXE,23
3
3
  scout/adapter/__init__.py,sha256=-iX_hx2NI1EMAqX0pMd5_90Nnd9uvIMxv9EbefYBzsc,86
4
4
  scout/adapter/client.py,sha256=IuajRsEwTG41ZP14X09Q1Cj94zIgmIvUtlXfcAFn0EA,1513
5
5
  scout/adapter/mongo/__init__.py,sha256=NdHYCUXWUAuX5cUS3-6HCws2hW9uoGep8i0SC-oJd3k,31
@@ -31,7 +31,7 @@ scout/adapter/mongo/variant_events.py,sha256=LjUtxJLo3wGBjMI55wPs7sNPeDLq9POw6fg
31
31
  scout/adapter/mongo/variant_loader.py,sha256=C05StRMFVChopcolPYXFIbh_S-FhYHu4NvBCpiBLOeE,28327
32
32
  scout/build/__init__.py,sha256=GUWEaXTpwsJil_KtrXBQJpZIwCQFSgo8NlK49R9IkA8,521
33
33
  scout/build/acmg.py,sha256=M21MrrP_dtEyOuu6t-jBDdaqYcHPMLcwJlt9fHG2ycE,1523
34
- scout/build/case.py,sha256=RK-FR7Vt1-350xF4UOfAVCdJi74SaMBMV4BmjdtJ2WU,11253
34
+ scout/build/case.py,sha256=wJR3d1n3GMhfQudhSRJM0tust84MuOpOvRcGfx7H6sI,11329
35
35
  scout/build/disease.py,sha256=Zew9AF_z1NbbKcO3uJZ2wgni501SkfnYRgnaCZ4m8FY,2020
36
36
  scout/build/hpo.py,sha256=LJBCTq-x09D0CSKcUHB8a6ynuUrVh_7Ia0ooA1BxMys,1207
37
37
  scout/build/individual.py,sha256=tWK8iKVujuCoZz-rhBVj-RCnlkU19vCSyJtXhlENwS4,5117
@@ -133,7 +133,7 @@ scout/constants/disease_parsing.py,sha256=m10iPVzdTsdx7v9ZWvdLjlBrQKR_uyMeJwPbok
133
133
  scout/constants/file_types.py,sha256=3BU2cw40cHMT5IzEGEF_SsIhgYUbnIlUCRmwmB01fzI,3046
134
134
  scout/constants/filters.py,sha256=1bcj-z7__yv5eQpjB60wqSHZ3U5U0CVyNbcYT-Wn-vc,957
135
135
  scout/constants/gene_tags.py,sha256=tdzDh6ukJRtHiC8X5YkldijZCS0KrEeXj95sLNlqxuc,3852
136
- scout/constants/igv_tracks.py,sha256=3-3VzFpCTfuhbEBAitbpY2lQRYXYf-poya3DXs0g9yE,4500
136
+ scout/constants/igv_tracks.py,sha256=lrDPCkCjDrTDu80A8wuPjGm6zT_FBrDWv-g9nN_HCsI,4721
137
137
  scout/constants/indexes.py,sha256=954b9H72rKI8qSSQbeQDjSl9gYBFGFq0Jd1mTH3Lkmk,5351
138
138
  scout/constants/phenotype.py,sha256=MrbXirisR_7GPnxV3NOj3-BoM9CvtGgFZj7PfJu85RM,2331
139
139
  scout/constants/query_terms.py,sha256=RrHSBde-UNfdD2D5r1ViHcLfDD-q_sEkLZsPKOE91x4,1556
@@ -154,7 +154,7 @@ scout/demo/643594.clinical.str.vcf.gz,sha256=ElvicUseKkN-DiZOQrFXstxy2jo9lhVMn58
154
154
  scout/demo/643594.clinical.str.vcf.gz.tbi,sha256=pyWRI8-DlfGw08S66nYqLOthbaRaNMpAhUACm48iM5A,1695
155
155
  scout/demo/643594.clinical.vcf.gz,sha256=ukJjOeF1VuIej02garL_U6aq4Ef8WuO6qOknzK46HPg,408818
156
156
  scout/demo/643594.clinical.vcf.gz.tbi,sha256=G4RJMk1GYIDS1IVfXPVkGFtmPN_m0jwwqltdWWuk1A8,7721
157
- scout/demo/643594.config.yaml,sha256=wHeyFLGiGBViu0RQeELt4IDValaXpqUVfVRSSa1rhEk,5344
157
+ scout/demo/643594.config.yaml,sha256=mxuX82stt0EyTITI18earZyVagdgEP3OHjqd-o-1r9Q,5373
158
158
  scout/demo/643594.ped,sha256=P-k5eZY78ZRtajMDQ_rr7Xv5oFhBO-vDc7whg36Jnw4,154
159
159
  scout/demo/643594.ped_check.csv,sha256=36HoP13haqQerTEHuJF4R2r6Vh2AQilS1NTr7X6aoZs,444
160
160
  scout/demo/643594.peddy.ped,sha256=msfhM3u_5hK_zjHhMas5Ns_KREllRyHN3kdTIVl5J-c,421
@@ -392,7 +392,7 @@ scout/models/phenotype_term.py,sha256=jY7dbfPzgE14M1gWqifm5YKkwMlrtfFa_WBHMT1_og
392
392
  scout/models/user.py,sha256=oercrjpf9fLomqAcN0Fv1BL_XPjOrS_vchURo0RP7es,1134
393
393
  scout/models/case/__init__.py,sha256=Sqczn7Wm9KYZtPGAHCvwX_6j9vlaK-0myJtSDlS-448,121
394
394
  scout/models/case/case.py,sha256=7r-lR5jr3hNyM0jo-KxQDY7CLjtgtzu26PHOalx1s68,5213
395
- scout/models/case/case_loading_models.py,sha256=RHUZa71PkWUMu1tLm7cw2JhxQ8jnW1D-_4oF2WMAAmg,20939
395
+ scout/models/case/case_loading_models.py,sha256=mIJ8saxKuskNoXhwlVdlHu90p4CPBvRWtk-l6iK3YLk,21399
396
396
  scout/models/variant/__init__.py,sha256=H-IZ2hSTSVS28S8FZzA8j2Cyu1PHQFXyMWJFtCucPAk,40
397
397
  scout/models/variant/gene.py,sha256=98CG_JcAklGGFIrUulf1_olQalV65kXQO-gOf7VQZ0A,1095
398
398
  scout/models/variant/transcript.py,sha256=rfflEbTs7Bn4HDENqrxtGopQ_0HKnrVLLyBcrj4NpwM,1720
@@ -443,12 +443,12 @@ scout/server/links.py,sha256=WWHQ7CcJxemwR7Cm0n7CvZOfV0dG-_xEAfVff_m_x6U,27013
443
443
  scout/server/utils.py,sha256=lhFJI6UkNDD1OPnC53SYG2vjfMNmjp4BBf1tcO8R-ZM,12634
444
444
  scout/server/blueprints/__init__.py,sha256=iwhKnzeBJLKxpRVjvzwiRE63_zNpIBfaKLITauVph-0,24
445
445
  scout/server/blueprints/alignviewers/__init__.py,sha256=XMVed2ekVUAvroqENDHSr2pwM8otqau8ZA-rbH1T2U8,59
446
- scout/server/blueprints/alignviewers/controllers.py,sha256=SDTmb4TreWWa1E1SLnQNOfyb-5dcdibpr_t2V9v82rY,12603
446
+ scout/server/blueprints/alignviewers/controllers.py,sha256=Em4YNyQ-MoPFtP2H36KnGFEaNXcRZdUW60iRoqlRluY,12875
447
447
  scout/server/blueprints/alignviewers/partial.py,sha256=9hpI00yhvZZCcPVUHlVDp488r1j7vYU5YDXYA6OkWQM,2005
448
448
  scout/server/blueprints/alignviewers/views.py,sha256=yQmWqzjdYmqs4e2nzDPLNjgpsNzKhBv1LJGaJi8bnyc,4963
449
- scout/server/blueprints/alignviewers/templates/alignviewers/igv_sashimi_viewer.html,sha256=ZIbW6e-K2jKWK5WAGK9NkxVywruxm7kxIKRI1w5PaWg,5495
450
- scout/server/blueprints/alignviewers/templates/alignviewers/igv_viewer.html,sha256=uTJkmnoWfrhZQVRq8fDd4eGBxfrlU7GswvEHCrX-NMk,8496
451
- scout/server/blueprints/alignviewers/templates/alignviewers/utils.html,sha256=ZGVv4-mCn63QxJ0YfWx_RjgXJaAWfBjM-90i4IinXUY,204
449
+ scout/server/blueprints/alignviewers/templates/alignviewers/igv_sashimi_viewer.html,sha256=37ArJCraTajqWlCvyQYVfSvWCg94pRDIMvf2Y7Oe_j4,5545
450
+ scout/server/blueprints/alignviewers/templates/alignviewers/igv_viewer.html,sha256=u7_OUfcGt-S6BFhwleE4mNprshO870CnzhgLpe4tocg,8564
451
+ scout/server/blueprints/alignviewers/templates/alignviewers/utils.html,sha256=1AhvT-D-dpGvI5MAK6UvK7tkSRi0ybb4mTKD1sTKKQU,336
452
452
  scout/server/blueprints/api/__init__.py,sha256=HR6HjS7ot1K_8Lt5eQdNT154z_FCdHGSigy8r2LpNCI,26
453
453
  scout/server/blueprints/api/views.py,sha256=pbl78wfhrm1T8JmiJDYF3BbTbfFrlF-hQRbuv2GWI0s,3729
454
454
  scout/server/blueprints/cases/__init__.py,sha256=_c17kPFITFYcIVphF4V9bf0PZBer8bU3rtVWQnljKDU,52
@@ -464,7 +464,7 @@ scout/server/blueprints/cases/templates/cases/case_report.html,sha256=5vGSFpFdZN
464
464
  scout/server/blueprints/cases/templates/cases/case_sma.html,sha256=SAcElb4kH05mkPdEdaEbed-vbgQQGfxioCoNZsHljDc,4962
465
465
  scout/server/blueprints/cases/templates/cases/case_tabular_view.html,sha256=ko-LDUKmIoTazMZ2nFWvPEZsgObU07RwqIkDYFjokoY,4317
466
466
  scout/server/blueprints/cases/templates/cases/chanjo2_form.html,sha256=5Wmk7DM8LI3MynqzxeTzAr_EoEBwVVo31djcI5ZlTdo,2164
467
- scout/server/blueprints/cases/templates/cases/collapsible_actionbar.html,sha256=Az8Oq9ldGtT9snzeDxt1xC68Yp7fp4qZ1eDN7Gr9Wf4,29246
467
+ scout/server/blueprints/cases/templates/cases/collapsible_actionbar.html,sha256=6xWkg0sc1BLQJZXiK-gohVQhUrdwITQ0yWsF61b29qc,29274
468
468
  scout/server/blueprints/cases/templates/cases/diseases.html,sha256=ETTQI0Nrl_v86NoX9mFZcvWD-qM1IJoqPmHPWn__Grw,1677
469
469
  scout/server/blueprints/cases/templates/cases/gene_panel.html,sha256=lkC_Piqaq-paYr4GUCwQaR8EgGOUXDMoW5sPLDW7yzg,11628
470
470
  scout/server/blueprints/cases/templates/cases/index.html,sha256=oUmjFyUvwP4yo21CxcWy-6eepMFI65hpznMEpSEqKfM,1207
@@ -538,7 +538,7 @@ scout/server/blueprints/managed_variants/templates/managed_variants/managed_vari
538
538
  scout/server/blueprints/omics_variants/__init__.py,sha256=8UVXrChArhIvMxtgUcG-udvmlTn56q41iy-naOZw5us,37
539
539
  scout/server/blueprints/omics_variants/controllers.py,sha256=AnM70stvLniJIU3pFUX-InNjuT-7K0RpuAEYa7vM-jw,3912
540
540
  scout/server/blueprints/omics_variants/views.py,sha256=4_wOqAhu_Zl6heqm7ilE8y8xOfy3PU532rkp_H0KZFg,3724
541
- scout/server/blueprints/omics_variants/templates/omics_variants/outliers.html,sha256=R76aX5qDsSrrUOvfIaGswc7NRwojwFeyK5zcpNXmD6M,12960
541
+ scout/server/blueprints/omics_variants/templates/omics_variants/outliers.html,sha256=lVDXMcY-ukF6GYtJrHvXtw9rISNhkUfrX4nfgPyU_dw,13088
542
542
  scout/server/blueprints/panels/__init__.py,sha256=usxBF0O7zNX1d9jt-8DRoFZwcfHHS96Gv87LDr1AgG4,53
543
543
  scout/server/blueprints/panels/controllers.py,sha256=apNwdE8gphRTViChoL_yfBJP-H1BfpyAyrIJMv88d9c,12659
544
544
  scout/server/blueprints/panels/forms.py,sha256=DYlhYpnpv7ehf9JlY3HRFwy-TZ5QDHB0RIRaNTAW1jQ,696
@@ -601,14 +601,14 @@ scout/server/blueprints/variant/utils.py,sha256=PpIWFiMgtEUIS8A8wD9-5yf_SB42tb1U
601
601
  scout/server/blueprints/variant/verification_controllers.py,sha256=eKzP222e7xuFOaQaI9MLOrD9RWtI8uGB1cJYbcXLzF0,10972
602
602
  scout/server/blueprints/variant/views.py,sha256=jz5kFRCLhEVRQKFJtKmG0Nq4TX6ofEeyA9zPHE7b1FQ,14768
603
603
  scout/server/blueprints/variant/templates/variant/acmg.html,sha256=ubitRnQoADLLOptwMgsPLb1AXhwZgV1YlN504VaC2lY,7754
604
- scout/server/blueprints/variant/templates/variant/buttons.html,sha256=lQ4inmrlpkb_SHm0KGM8kf7GCUH7TrtyI-yY78THsmE,7180
604
+ scout/server/blueprints/variant/templates/variant/buttons.html,sha256=SnSQhCYiW3lYuZrT22J27OtDaxiVCfWpueOr4jQBOg0,7257
605
605
  scout/server/blueprints/variant/templates/variant/cancer-variant.html,sha256=1D9uLIgb06qfhcbl0wB5mRrgARVgfCJfRZhf4wEA2tc,13971
606
- scout/server/blueprints/variant/templates/variant/components.html,sha256=8sL51D-XR_XRrknZLfZLM4KWz9pHj1CpYsyR9EaAlw4,20863
606
+ scout/server/blueprints/variant/templates/variant/components.html,sha256=hDxXLJkHDTwHApugNcvZkorUR0x10xnFMl256p2DCKA,20850
607
607
  scout/server/blueprints/variant/templates/variant/gene_disease_relations.html,sha256=mvw7773Gww3AAOtASL61W5e5cYTc4uB8gJ2zr19NIXw,7283
608
608
  scout/server/blueprints/variant/templates/variant/rank_score_results.html,sha256=32RfBrpZ_J-1WYE01Bdd5IC9i1MAzXT7GF27OlElk94,2040
609
609
  scout/server/blueprints/variant/templates/variant/sanger.html,sha256=0kVnscTw3KUwjR4QOEuNJMOK9eADGEn9qGNtGx2ST7Y,4507
610
610
  scout/server/blueprints/variant/templates/variant/str-variant-reviewer.html,sha256=QETzTkzXhFBd7-20OrLMCd1QSgzOxeE7Lv_Iged5BB0,2220
611
- scout/server/blueprints/variant/templates/variant/sv-variant.html,sha256=Rn6lAteE2SR8omRRXWVrajcppghoF-tSR23mY4_6Sto,17184
611
+ scout/server/blueprints/variant/templates/variant/sv-variant.html,sha256=Ss1MaXyJngWNry9-eb3EwbUzzsC0RBv0EVvOoS77d1M,17171
612
612
  scout/server/blueprints/variant/templates/variant/tx_overview.html,sha256=turyCoOCCd_N80FakxXfIl7q_WViysz1fwx3j312_Lg,6737
613
613
  scout/server/blueprints/variant/templates/variant/utils.html,sha256=wstxdK36MtW81MqsQtxbDQFDR7gmPba-kqVNFTVYfpo,21588
614
614
  scout/server/blueprints/variant/templates/variant/variant.html,sha256=bgO3kb4u45IrgCPUJrHT4paNDOQzcKx5dw0ZYbBmCsc,18914
@@ -671,9 +671,9 @@ scout/utils/md5.py,sha256=KkgdxOf7xbF9AF40ZjQKCgWaxFWJ9tp9RKjd8SU6IoA,649
671
671
  scout/utils/scout_requests.py,sha256=JjHOJW1XmenG05mNQ33kvOKq_IicveIfQMcPZeRcQdo,12856
672
672
  scout/utils/sort.py,sha256=1AcbeZ6vdt_UXM3BLDBa3aQmN4qxrqtskxwD19oBhvw,756
673
673
  scout/utils/track_resources.py,sha256=eUjSEe-Ff8BIb4BHPC_COkJocQO2PaWueiPz1GAuiwY,2614
674
- scout_browser-4.86.1.dist-info/LICENSE,sha256=TM1Y9Cqbwk55JVfxD-_bpGLtZQAeN9RovQlqHK6eOTY,1485
675
- scout_browser-4.86.1.dist-info/METADATA,sha256=mQw8mIrZPRWvJexXxlV4DL3-tNw3gL_XJQy38ROnv20,14262
676
- scout_browser-4.86.1.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
677
- scout_browser-4.86.1.dist-info/entry_points.txt,sha256=q_mxFwbMFTwXRDDIRVcqKram2ubMVmvs3CSNvZri1nY,45
678
- scout_browser-4.86.1.dist-info/top_level.txt,sha256=qM75h71bztMaLYsxn1up4c_n2rjc_ZnyaW6Q0K5uOXc,6
679
- scout_browser-4.86.1.dist-info/RECORD,,
674
+ scout_browser-4.87.1.dist-info/LICENSE,sha256=TM1Y9Cqbwk55JVfxD-_bpGLtZQAeN9RovQlqHK6eOTY,1485
675
+ scout_browser-4.87.1.dist-info/METADATA,sha256=Ygf0lrKBYutSNTzqoDPQ2Lg-5r7435UjpcxeGIv1gYI,14262
676
+ scout_browser-4.87.1.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
677
+ scout_browser-4.87.1.dist-info/entry_points.txt,sha256=q_mxFwbMFTwXRDDIRVcqKram2ubMVmvs3CSNvZri1nY,45
678
+ scout_browser-4.87.1.dist-info/top_level.txt,sha256=qM75h71bztMaLYsxn1up4c_n2rjc_ZnyaW6Q0K5uOXc,6
679
+ scout_browser-4.87.1.dist-info/RECORD,,