scout-browser 4.86__py3-none-any.whl → 4.87__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- scout/__version__.py +1 -1
- scout/adapter/mongo/hgnc.py +15 -15
- scout/build/case.py +2 -0
- scout/constants/igv_tracks.py +5 -0
- scout/demo/643594.config.yaml +1 -0
- scout/load/panel.py +33 -8
- scout/models/case/case_loading_models.py +23 -9
- scout/server/blueprints/alignviewers/controllers.py +29 -14
- scout/server/blueprints/alignviewers/templates/alignviewers/igv_sashimi_viewer.html +8 -7
- scout/server/blueprints/alignviewers/templates/alignviewers/igv_viewer.html +2 -1
- scout/server/blueprints/alignviewers/templates/alignviewers/utils.html +1 -1
- scout/server/blueprints/cases/templates/cases/collapsible_actionbar.html +1 -1
- scout/server/blueprints/omics_variants/templates/omics_variants/outliers.html +19 -17
- scout/server/blueprints/variant/templates/variant/buttons.html +5 -5
- scout/server/blueprints/variant/templates/variant/components.html +1 -1
- scout/server/blueprints/variant/templates/variant/sv-variant.html +1 -1
- scout/server/blueprints/variants/templates/variants/components.html +1 -1
- {scout_browser-4.86.dist-info → scout_browser-4.87.dist-info}/METADATA +1 -1
- {scout_browser-4.86.dist-info → scout_browser-4.87.dist-info}/RECORD +23 -23
- {scout_browser-4.86.dist-info → scout_browser-4.87.dist-info}/LICENSE +0 -0
- {scout_browser-4.86.dist-info → scout_browser-4.87.dist-info}/WHEEL +0 -0
- {scout_browser-4.86.dist-info → scout_browser-4.87.dist-info}/entry_points.txt +0 -0
- {scout_browser-4.86.dist-info → scout_browser-4.87.dist-info}/top_level.txt +0 -0
scout/__version__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "4.
|
1
|
+
__version__ = "4.87"
|
scout/adapter/mongo/hgnc.py
CHANGED
@@ -7,6 +7,7 @@ from pymongo.errors import BulkWriteError, DuplicateKeyError
|
|
7
7
|
from scout.exceptions import IntegrityError
|
8
8
|
|
9
9
|
LOG = logging.getLogger(__name__)
|
10
|
+
QUERY_FIELD_EXISTS = {"$exists": True, "$ne": None}
|
10
11
|
|
11
12
|
|
12
13
|
class GeneHandler(object):
|
@@ -364,9 +365,13 @@ class GeneHandler(object):
|
|
364
365
|
Returns:
|
365
366
|
mapping(dict): {"ENSG00000121410": 5, ...}
|
366
367
|
"""
|
367
|
-
|
368
|
-
|
369
|
-
|
368
|
+
query = {
|
369
|
+
"ensembl_id": QUERY_FIELD_EXISTS,
|
370
|
+
"hgnc_id": QUERY_FIELD_EXISTS,
|
371
|
+
}
|
372
|
+
project = {"ensembl_id": 1, "hgnc_id": 1}
|
373
|
+
result = self.hgnc_collection.find(query, project)
|
374
|
+
mapping = {res["ensembl_id"]: res["hgnc_id"] for res in result}
|
370
375
|
return mapping
|
371
376
|
|
372
377
|
def hgnc_symbol_ensembl_id_mapping(self) -> Dict[str, str]:
|
@@ -375,18 +380,13 @@ class GeneHandler(object):
|
|
375
380
|
Returns:
|
376
381
|
mapping(dict): {"A1BG": "ENSG00000121410".}
|
377
382
|
"""
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
}
|
386
|
-
}
|
387
|
-
]
|
388
|
-
result = self.hgnc_collection.aggregate(pipeline)
|
389
|
-
mapping = {res["_id"]["hgnc_symbol"]: res["_id"]["ensembl_id"] for res in result}
|
383
|
+
query = {
|
384
|
+
"ensembl_id": QUERY_FIELD_EXISTS,
|
385
|
+
"hgnc_symbol": QUERY_FIELD_EXISTS,
|
386
|
+
}
|
387
|
+
project = {"ensembl_id": 1, "hgnc_symbol": 1}
|
388
|
+
result = self.hgnc_collection.find(query, project)
|
389
|
+
mapping = {res["hgnc_symbol"]: res["ensembl_id"] for res in result}
|
390
390
|
return mapping
|
391
391
|
|
392
392
|
def ensembl_genes(self, build=None, add_transcripts=False, id_transcripts=False):
|
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
|
|
scout/constants/igv_tracks.py
CHANGED
@@ -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
|
scout/demo/643594.config.yaml
CHANGED
scout/load/panel.py
CHANGED
@@ -117,27 +117,33 @@ def _panelapp_panel_ids() -> List[str]:
|
|
117
117
|
return [panel_info["Panel_Id"] for panel_info in json_lines.get("result", [])]
|
118
118
|
|
119
119
|
|
120
|
-
def _parse_panelapp_panel(
|
120
|
+
def _parse_panelapp_panel(
|
121
|
+
panel_id: str,
|
122
|
+
institute: str,
|
123
|
+
confidence: str,
|
124
|
+
ensembl_id_to_hgnc_id_map: Dict[str, int],
|
125
|
+
hgnc_symbol_to_ensembl_id_map: Dict[str, str],
|
126
|
+
):
|
121
127
|
"""fetch and parse lines from a PanelApp panel, given its ID
|
122
128
|
|
123
129
|
Args:
|
124
130
|
adapter(scout.adapter.MongoAdapter)
|
125
131
|
panel_id(str): The panel app panel id
|
126
132
|
confidence(str enum green|amber|red): traffic light-style PanelApp level of confidence
|
133
|
+
ensembl_to_hgnc_map: dict[str, int]
|
134
|
+
hgnc_to_ensembl_map: [int, str]
|
135
|
+
|
127
136
|
|
128
137
|
Returns:
|
129
138
|
parsed_panel(dict). Example:
|
130
139
|
{'version': 3.3, 'date': datetime.datetime(2023, 1, 31, 16, 43, 37, 521719), 'display_name': 'Diabetes - neonatal onset - [GREEN]', 'institute': 'cust000', 'panel_type': 'clinical', 'genes': [list of genes], 'panel_id': '55a9041e22c1fc6711b0c6c0'}
|
131
140
|
|
132
141
|
"""
|
133
|
-
ensembl_gene_hgnc_id_map: Dict[str, int] = adapter.ensembl_to_hgnc_id_mapping()
|
134
|
-
hgnc_symbol_ensembl_gene_map: Dict[str, str] = adapter.hgnc_symbol_ensembl_id_mapping()
|
135
|
-
|
136
142
|
json_lines = fetch_resource(PANELAPP_BASE_URL.format("get_panel") + panel_id, json=True)
|
137
143
|
parsed_panel = parse_panel_app_panel(
|
138
144
|
panel_info=json_lines["result"],
|
139
|
-
ensembl_gene_hgnc_id_map=
|
140
|
-
hgnc_symbol_ensembl_gene_map=
|
145
|
+
ensembl_gene_hgnc_id_map=ensembl_id_to_hgnc_id_map,
|
146
|
+
hgnc_symbol_ensembl_gene_map=hgnc_symbol_to_ensembl_id_map,
|
141
147
|
institute=institute,
|
142
148
|
confidence=confidence,
|
143
149
|
)
|
@@ -166,8 +172,17 @@ def load_panelapp_panel(adapter, panel_id=None, institute="cust000", confidence=
|
|
166
172
|
LOG.info("Fetching all panel app panels")
|
167
173
|
panel_ids: List[str] = _panelapp_panel_ids()
|
168
174
|
|
175
|
+
ensembl_id_to_hgnc_id_map: Dict[str, int] = adapter.ensembl_to_hgnc_id_mapping()
|
176
|
+
hgnc_symbol_to_ensembl_id_map: Dict[int, str] = adapter.hgnc_symbol_ensembl_id_mapping()
|
177
|
+
|
169
178
|
for _ in panel_ids:
|
170
|
-
parsed_panel = _parse_panelapp_panel(
|
179
|
+
parsed_panel = _parse_panelapp_panel(
|
180
|
+
panel_id=_,
|
181
|
+
institute=institute,
|
182
|
+
confidence=confidence,
|
183
|
+
ensembl_id_to_hgnc_id_map=ensembl_id_to_hgnc_id_map,
|
184
|
+
hgnc_symbol_to_ensembl_id_map=hgnc_symbol_to_ensembl_id_map,
|
185
|
+
)
|
171
186
|
|
172
187
|
if len(parsed_panel["genes"]) == 0:
|
173
188
|
LOG.warning("Panel %s is missing genes. Skipping.", parsed_panel["display_name"])
|
@@ -201,9 +216,19 @@ def load_panelapp_green_panel(adapter, institute, force):
|
|
201
216
|
}
|
202
217
|
genes = set() # avoid duplicate genes from different panels
|
203
218
|
# Loop over all PanelApp panels
|
219
|
+
|
220
|
+
ensembl_id_to_hgnc_id_map: Dict[str, int] = adapter.ensembl_to_hgnc_id_mapping()
|
221
|
+
hgnc_symbol_to_ensembl_id_map: Dict[int, str] = adapter.hgnc_symbol_ensembl_id_mapping()
|
222
|
+
|
204
223
|
for _ in panel_ids:
|
205
224
|
# And collect their green genes
|
206
|
-
parsed_panel = _parse_panelapp_panel(
|
225
|
+
parsed_panel = _parse_panelapp_panel(
|
226
|
+
panel_id=_,
|
227
|
+
institute=institute,
|
228
|
+
confidence="green",
|
229
|
+
ensembl_id_to_hgnc_id_map=ensembl_id_to_hgnc_id_map,
|
230
|
+
hgnc_symbol_to_ensembl_id_map=hgnc_symbol_to_ensembl_id_map,
|
231
|
+
)
|
207
232
|
genes.update({(gene["hgnc_id"], gene["hgnc_symbol"]) for gene in parsed_panel.get("genes")})
|
208
233
|
|
209
234
|
green_panel["genes"] = [{"hgnc_id": tup[0], "hgnc_symbol": tup[1]} for tup in genes]
|
@@ -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
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
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
|
-
|
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: "
|
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
|
-
},
|
97
|
-
|
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
|
-
|
113
|
-
|
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.
|
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="
|
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
|
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
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
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
|
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,
|
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=
|
39
|
-
data-bs-toggle="tooltip" data-bs-placement="top" title="Only available in build
|
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=
|
42
|
-
data-bs-toggle="tooltip" data-bs-placement="top" title="Only available in build
|
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
|
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
|
277
|
+
{{ splice_junctions_button(institute._id, case, variant._id) }}
|
278
278
|
</li>
|
279
279
|
{% endif %}
|
280
280
|
</ul>
|
@@ -143,7 +143,7 @@
|
|
143
143
|
{% endmacro %}
|
144
144
|
|
145
145
|
{% macro gene_cell(variant) %}
|
146
|
-
<div class="align-items-center">
|
146
|
+
<div class="d-flex align-items-center">
|
147
147
|
{% if variant.category == "cancer" or variant.category == "sv_cancer" %}
|
148
148
|
<a data-bs-toggle="tooltip" data-bs-html="true" title="
|
149
149
|
<div>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
scout/__init__.py,sha256=Z4liXvmEcLkC67ElsWvYHfemPKdWgWI5O6MB6XlDM8M,232
|
2
|
-
scout/__version__.py,sha256=
|
2
|
+
scout/__version__.py,sha256=NDUHhszlscYscmJ7Y40a33-uFqtOH-9gQ_ON88XEv74,21
|
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
|
@@ -13,7 +13,7 @@ scout/adapter/mongo/cytoband.py,sha256=2NoIAoQ7RPqcipiSymD2O9qH8lXscP3T5ejquOrD7
|
|
13
13
|
scout/adapter/mongo/disease_terms.py,sha256=4qcQRLuP5xn_RkB2RlNtwCrONmDuWwdlngZrj87BUEo,5637
|
14
14
|
scout/adapter/mongo/event.py,sha256=NnURFhS5odOXk7So_gGMHmALPAJM0PWzESI4FC06azE,19842
|
15
15
|
scout/adapter/mongo/filter.py,sha256=vzBJS_6vq2z76SH8PszdRR-MNuZ7_RA4VJvnkNYUs7s,8937
|
16
|
-
scout/adapter/mongo/hgnc.py,sha256=
|
16
|
+
scout/adapter/mongo/hgnc.py,sha256=9jbrkaTtlnnuE5gsSM8ylb8Kero4lC2zCWr-90QlyAY,16420
|
17
17
|
scout/adapter/mongo/hpo.py,sha256=ps2Pix3sGeea7DenboZVP5j7Vh9WAgX3-sgpbAj0Eck,6871
|
18
18
|
scout/adapter/mongo/index.py,sha256=TZPVv6xBWsEtZpBUWp5uhjuPjQMfVss4lZZju49g1Lw,3577
|
19
19
|
scout/adapter/mongo/institute.py,sha256=GQmMKb_VzsvWwadp6gXHlSSpcG5ovF1ozdTzvpTFLpA,7025
|
@@ -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=
|
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=
|
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=
|
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
|
@@ -370,7 +370,7 @@ scout/load/exon.py,sha256=ONaWJ9EfbhGV8KGXxwlq_jYCoU-JkBpv4r9zDaCjtls,2070
|
|
370
370
|
scout/load/hgnc_gene.py,sha256=GcSQ01CioYIshAzXAv4msIGDPjTjGBBPBnLX2GvaZJ4,4507
|
371
371
|
scout/load/hpo.py,sha256=ZWYjV9j6OfpI-ZZuhTQVEs_xgLa7ST2KuvYLW6ku0PY,2474
|
372
372
|
scout/load/institute.py,sha256=etmZ0CZRHOVi3f9R-wn5BK1pZPhtZwq2QYbh2RXXxDc,625
|
373
|
-
scout/load/panel.py,sha256=
|
373
|
+
scout/load/panel.py,sha256=Zxv-ZlRyk7ZWKy1p0Cod-ATh7TzKqeMbiLu5I6-VEzs,10246
|
374
374
|
scout/load/report.py,sha256=TJvblks6Dp5-UDflWRTa8b3fe-A4bT4QnWT2yZLhfLA,820
|
375
375
|
scout/load/setup.py,sha256=0qQgfCr53oHL626hG5y0o5vwRnJ4X0IMaTFvMBMRNQE,8183
|
376
376
|
scout/load/transcript.py,sha256=mk0Da7GWwqLVRp2xRD9mlzqaomH9R-TL2aKCJx4fEA8,4632
|
@@ -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=
|
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=
|
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=
|
450
|
-
scout/server/blueprints/alignviewers/templates/alignviewers/igv_viewer.html,sha256=
|
451
|
-
scout/server/blueprints/alignviewers/templates/alignviewers/utils.html,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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
|
@@ -621,7 +621,7 @@ scout/server/blueprints/variants/views.py,sha256=r2T3eLAG_qrZ2vl3Ar2k6K1KRB7J6z5
|
|
621
621
|
scout/server/blueprints/variants/static/form_scripts.js,sha256=o3GCboaesA9Sm1HgejS_yQwt0I-NTkvcl56jiBdLqZs,8319
|
622
622
|
scout/server/blueprints/variants/templates/variants/cancer-sv-variants.html,sha256=Y7XQZjjrU_cJGU8EEGEF3QzTVvDfEVudFdygYExVxwI,7429
|
623
623
|
scout/server/blueprints/variants/templates/variants/cancer-variants.html,sha256=bX9FLoufo72PBDoWp95DVLltxUrbLeuFmZQObP1oAlw,10132
|
624
|
-
scout/server/blueprints/variants/templates/variants/components.html,sha256=
|
624
|
+
scout/server/blueprints/variants/templates/variants/components.html,sha256=pTHbNKM87AUOzjXn8zbjtweiYzow3Jsbqt9XHJ7GkAk,16697
|
625
625
|
scout/server/blueprints/variants/templates/variants/fusion-variants.html,sha256=XGaLgWobzeFHwyQLXr_Yq9THssf8tGU91VbFKdGOFBg,4801
|
626
626
|
scout/server/blueprints/variants/templates/variants/indicators.html,sha256=BX6Wg8OpsALCGGozR1eXT57D0Ixrf-OFXVg6G20Wjr0,4400
|
627
627
|
scout/server/blueprints/variants/templates/variants/mei-variants.html,sha256=0-wYjaiUByDduWMgmRS4AMg3IppPNtjZL1vvAdFuIPI,5994
|
@@ -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.
|
675
|
-
scout_browser-4.
|
676
|
-
scout_browser-4.
|
677
|
-
scout_browser-4.
|
678
|
-
scout_browser-4.
|
679
|
-
scout_browser-4.
|
674
|
+
scout_browser-4.87.dist-info/LICENSE,sha256=TM1Y9Cqbwk55JVfxD-_bpGLtZQAeN9RovQlqHK6eOTY,1485
|
675
|
+
scout_browser-4.87.dist-info/METADATA,sha256=F_tqlSzv0yKyowhxiHzjxDlBNMPncXYZ7z_AxQgqPLk,14260
|
676
|
+
scout_browser-4.87.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
677
|
+
scout_browser-4.87.dist-info/entry_points.txt,sha256=q_mxFwbMFTwXRDDIRVcqKram2ubMVmvs3CSNvZri1nY,45
|
678
|
+
scout_browser-4.87.dist-info/top_level.txt,sha256=qM75h71bztMaLYsxn1up4c_n2rjc_ZnyaW6Q0K5uOXc,6
|
679
|
+
scout_browser-4.87.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|