scout-browser 4.88.1__py3-none-any.whl → 4.89__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 (59) hide show
  1. scout/__version__.py +1 -1
  2. scout/adapter/mongo/base.py +1 -1
  3. scout/adapter/mongo/case.py +185 -117
  4. scout/adapter/mongo/omics_variant.py +19 -0
  5. scout/build/case.py +1 -0
  6. scout/commands/load/variants.py +121 -40
  7. scout/commands/update/case.py +56 -10
  8. scout/constants/case_tags.py +5 -0
  9. scout/constants/disease_parsing.py +2 -2
  10. scout/constants/igv_tracks.py +2 -2
  11. scout/constants/indexes.py +8 -1
  12. scout/demo/643594.config.yaml +1 -0
  13. scout/demo/panel_1.txt +2 -0
  14. scout/demo/resources/ensembl_exons_37_reduced.txt +135 -0
  15. scout/demo/resources/ensembl_exons_38_reduced.txt +166 -0
  16. scout/demo/resources/ensembl_genes_37_reduced.txt +2 -0
  17. scout/demo/resources/ensembl_genes_38_reduced.txt +2 -0
  18. scout/demo/resources/ensembl_transcripts_37_reduced.txt +27 -0
  19. scout/demo/resources/ensembl_transcripts_38_reduced.txt +36 -0
  20. scout/demo/resources/hgnc_reduced_set.txt +2 -0
  21. scout/log/handlers.py +2 -1
  22. scout/log/log.py +48 -61
  23. scout/models/case/case_loading_models.py +2 -0
  24. scout/parse/omim.py +2 -2
  25. scout/server/app.py +23 -7
  26. scout/server/blueprints/alignviewers/controllers.py +46 -23
  27. scout/server/blueprints/cases/controllers.py +21 -47
  28. scout/server/blueprints/cases/templates/cases/case_report.html +4 -1
  29. scout/server/blueprints/cases/templates/cases/case_sma.html +19 -0
  30. scout/server/blueprints/cases/templates/cases/collapsible_actionbar.html +7 -7
  31. scout/server/blueprints/cases/templates/cases/individuals_table.html +1 -1
  32. scout/server/blueprints/clinvar/form.py +1 -1
  33. scout/server/blueprints/clinvar/templates/clinvar/clinvar_submissions.html +2 -2
  34. scout/server/blueprints/clinvar/templates/clinvar/multistep_add_variant.html +9 -3
  35. scout/server/blueprints/institutes/controllers.py +11 -38
  36. scout/server/blueprints/institutes/forms.py +18 -4
  37. scout/server/blueprints/institutes/templates/overview/cases.html +137 -46
  38. scout/server/blueprints/login/views.py +16 -12
  39. scout/server/blueprints/panels/controllers.py +4 -1
  40. scout/server/blueprints/panels/templates/panels/panel.html +1 -1
  41. scout/server/blueprints/panels/templates/panels/panels.html +5 -5
  42. scout/server/blueprints/public/templates/public/index.html +18 -10
  43. scout/server/blueprints/variant/templates/variant/components.html +0 -1
  44. scout/server/blueprints/variant/templates/variant/gene_disease_relations.html +1 -1
  45. scout/server/config.py +3 -0
  46. scout/server/extensions/__init__.py +2 -0
  47. scout/server/extensions/chanjo2_extension.py +46 -0
  48. scout/server/extensions/chanjo_extension.py +44 -1
  49. scout/server/extensions/matchmaker_extension.py +0 -1
  50. scout/server/links.py +11 -2
  51. scout/server/templates/report_base.html +1 -0
  52. scout/utils/convert.py +1 -1
  53. scout/utils/date.py +1 -1
  54. {scout_browser-4.88.1.dist-info → scout_browser-4.89.dist-info}/METADATA +1 -1
  55. {scout_browser-4.88.1.dist-info → scout_browser-4.89.dist-info}/RECORD +59 -58
  56. {scout_browser-4.88.1.dist-info → scout_browser-4.89.dist-info}/LICENSE +0 -0
  57. {scout_browser-4.88.1.dist-info → scout_browser-4.89.dist-info}/WHEEL +0 -0
  58. {scout_browser-4.88.1.dist-info → scout_browser-4.89.dist-info}/entry_points.txt +0 -0
  59. {scout_browser-4.88.1.dist-info → scout_browser-4.89.dist-info}/top_level.txt +0 -0
@@ -1,8 +1,10 @@
1
1
  import logging
2
+ from typing import Dict, List, Optional
2
3
 
3
4
  import click
4
5
  from flask.cli import with_appcontext
5
6
 
7
+ from scout.constants import OMICS_FILE_TYPE_MAP
6
8
  from scout.server.extensions import store
7
9
 
8
10
  LOG = logging.getLogger(__name__)
@@ -21,6 +23,7 @@ LOG = logging.getLogger(__name__)
21
23
  )
22
24
  @click.option("--mei", is_flag=True, help="Upload clinical MEI variants")
23
25
  @click.option("--mei-research", is_flag=True, help="Upload research MEI variants")
26
+ @click.option("--outlier", is_flag=True, help="Upload clinical OMICS outlier variants")
24
27
  @click.option("--sv", is_flag=True, help="Upload clinical structural variants")
25
28
  @click.option("--sv-research", is_flag=True, help="Upload research structural variants")
26
29
  @click.option("--snv", is_flag=True, help="Upload clinical SNV variants")
@@ -34,7 +37,7 @@ LOG = logging.getLogger(__name__)
34
37
  @click.option(
35
38
  "--rank-treshold",
36
39
  default=5,
37
- help="Specify the rank score treshold",
40
+ help="Specify the rank score threshold. Deprecation warning: this parameter name will change in a later release.",
38
41
  show_default=True,
39
42
  )
40
43
  @click.option("-f", "--force", is_flag=True, help="upload without request")
@@ -53,6 +56,7 @@ def variants(
53
56
  cancer_sv_research,
54
57
  mei,
55
58
  mei_research,
59
+ outlier,
56
60
  sv,
57
61
  sv_research,
58
62
  snv,
@@ -69,7 +73,7 @@ def variants(
69
73
  ):
70
74
  """Upload variants to a case
71
75
 
72
- Note that the files has to be linked with the case,
76
+ Note that the files have to be linked with the case,
73
77
  if they are not use 'scout update case'.
74
78
  """
75
79
  LOG.info("Running scout load variants")
@@ -108,6 +112,14 @@ def variants(
108
112
  {"category": "str", "variant_type": "clinical", "upload": str_clinical},
109
113
  ]
110
114
 
115
+ omics_files = [
116
+ {
117
+ "category": "outlier",
118
+ "variant_type": "clinical",
119
+ "upload": outlier,
120
+ },
121
+ ]
122
+
111
123
  gene_obj = None
112
124
  if hgnc_id or hgnc_symbol:
113
125
  if hgnc_id:
@@ -125,55 +137,124 @@ def variants(
125
137
  if keep_actions: # collect all variants with user actions for this case
126
138
  old_evaluated_variants = list(adapter.evaluated_variants(case_id, institute_id))
127
139
 
128
- i = 0
129
- for file_type in files:
130
- variant_type = file_type["variant_type"]
131
- category = file_type["category"]
140
+ def load_variant_files(
141
+ case_obj: dict, files: List[Dict], rank_threshold: int, force: bool
142
+ ) -> int:
143
+ """Load variants from indicated VCF files. Keep count of files used for logging blank commands."""
144
+ i = 0
145
+ for file_type in files:
146
+ variant_type = file_type["variant_type"]
147
+ category = file_type["category"]
132
148
 
133
- if not file_type["upload"]:
134
- continue
149
+ if not file_type["upload"]:
150
+ continue
151
+
152
+ i += 1
153
+ if variant_type == "research":
154
+ if not (force or case_obj["research_requested"]):
155
+ LOG.warning("research not requested, use '--force'")
156
+ raise click.Abort()
157
+
158
+ LOG.info(
159
+ "Delete {0} {1} variants for case {2}".format(
160
+ variant_type, category, case_obj["_id"]
161
+ )
162
+ )
135
163
 
136
- i += 1
137
- if variant_type == "research":
138
- if not (force or case_obj["research_requested"]):
139
- LOG.warning("research not requested, use '--force'")
164
+ adapter.delete_variants(
165
+ case_id=case_obj["_id"], variant_type=variant_type, category=category
166
+ )
167
+
168
+ LOG.info(
169
+ "Load {0} {1} variants for case {2}".format(variant_type, category, case_obj["_id"])
170
+ )
171
+
172
+ try:
173
+ adapter.load_variants(
174
+ case_obj=case_obj,
175
+ variant_type=variant_type,
176
+ category=category,
177
+ rank_threshold=rank_threshold,
178
+ chrom=chrom,
179
+ start=start,
180
+ end=end,
181
+ gene_obj=gene_obj,
182
+ build=case_obj["genome_build"],
183
+ )
184
+ # Update case variants count
185
+ adapter.case_variants_count(case_obj["_id"], institute_id, force_update_case=True)
186
+
187
+ except Exception as e:
188
+ LOG.warning(e)
140
189
  raise click.Abort()
141
190
 
142
- LOG.info("Delete {0} {1} variants for case {2}".format(variant_type, category, case_id))
143
-
144
- adapter.delete_variants(
145
- case_id=case_obj["_id"], variant_type=variant_type, category=category
146
- )
147
-
148
- LOG.info("Load {0} {1} variants for case {2}".format(variant_type, category, case_id))
149
-
150
- try:
151
- adapter.load_variants(
152
- case_obj=case_obj,
153
- variant_type=variant_type,
154
- category=category,
155
- rank_threshold=rank_treshold,
156
- chrom=chrom,
157
- start=start,
158
- end=end,
159
- gene_obj=gene_obj,
160
- build=case_obj["genome_build"],
191
+ return i
192
+
193
+ def load_omics_variant_files(case_obj: dict, omics_files: List[Dict]) -> int:
194
+ """Load variants from indicated VCF files. Keep count of files used for logging blank commands."""
195
+ i = 0
196
+ for file_type in omics_files:
197
+ variant_type = file_type["variant_type"]
198
+ category = file_type["category"]
199
+
200
+ if not file_type["upload"]:
201
+ continue
202
+
203
+ i += 1
204
+ LOG.info(
205
+ "Delete {0} {1} OMICS variants for case {2}".format(
206
+ variant_type, category, case_obj["_id"]
207
+ )
161
208
  )
162
- # Update case variants count
163
- adapter.case_variants_count(case_obj["_id"], institute_id, force_update_case=True)
164
209
 
165
- except Exception as e:
166
- LOG.warning(e)
167
- raise click.Abort()
210
+ adapter.delete_omics_variants_by_category(
211
+ case_id=case_obj["_id"], variant_type=variant_type, category=category
212
+ )
213
+
214
+ for file_type, omics_file_type in OMICS_FILE_TYPE_MAP.items():
215
+ if (
216
+ omics_file_type["variant_type"] != variant_type
217
+ or omics_file_type["category"] != category
218
+ ):
219
+ continue
220
+
221
+ i += 1
222
+ LOG.info(
223
+ "Load {0} {1} variants for case {2}".format(
224
+ variant_type, category, case_obj["_id"]
225
+ )
226
+ )
227
+
228
+ build = case_obj.get("rna_genome_build", case_obj.get("genome_build", "38"))
229
+
230
+ try:
231
+ adapter.load_omics_variants(
232
+ case_obj=case_obj,
233
+ file_type=file_type,
234
+ build=build,
235
+ )
236
+ # Update case variants count
237
+ adapter.case_variants_count(
238
+ case_obj["_id"], institute_id, force_update_case=True
239
+ )
240
+
241
+ except Exception as e:
242
+ LOG.warning(e)
243
+ raise click.Abort()
244
+
245
+ return i
246
+
247
+ i = load_variant_files(case_obj, files, rank_treshold, force)
248
+ i += load_omics_variant_files(
249
+ case_obj,
250
+ omics_files,
251
+ )
168
252
 
169
253
  if i == 0:
170
254
  LOG.info("No files where specified to upload variants from")
171
- return
172
255
 
173
256
  # update Sanger status for the new inserted variants
174
- sanger_updated = adapter.update_case_sanger_variants(
175
- institute_obj, case_obj, old_sanger_variants
176
- )
257
+ adapter.update_case_sanger_variants(institute_obj, case_obj, old_sanger_variants)
177
258
 
178
259
  if keep_actions and old_evaluated_variants:
179
260
  adapter.update_variant_actions(institute_obj, case_obj, old_evaluated_variants)
@@ -17,51 +17,73 @@ LOG = logging.getLogger(__name__)
17
17
  "--institute", "-i", help="Case institute ID (case display name should also be provided)"
18
18
  )
19
19
  @click.option("--collaborator", "-c", help="Add a collaborator to the case")
20
- @click.option("--vcf", type=click.Path(exists=True), help="path to clinical VCF file to be added")
20
+ @click.option(
21
+ "--fraser",
22
+ help="Path to clinical WTS OMICS outlier FRASER TSV file to be added - NB variants are NOT loaded",
23
+ )
24
+ @click.option(
25
+ "--outrider",
26
+ help="Path to clinical WTS OMICS outlier OUTRIDER TSV file to be added - NB variants are NOT loaded",
27
+ )
28
+ @click.option(
29
+ "--rna-genome-build",
30
+ type=click.Choice(["37", "38"]),
31
+ help="RNA human genome build - should match RNA alignment files and IGV tracks",
32
+ )
33
+ @click.option(
34
+ "--vcf",
35
+ type=click.Path(exists=True),
36
+ help="Path to clinical VCF file to be added - NB variants are NOT loaded",
37
+ )
21
38
  @click.option(
22
39
  "--vcf-sv",
23
40
  type=click.Path(exists=True),
24
41
  help="path to clinical SV VCF file to be added",
25
42
  )
43
+ @click.option(
44
+ "--vcf-str",
45
+ type=click.Path(exists=True),
46
+ help="Path to clinical STR VCF file to be added - NB variants are NOT loaded",
47
+ )
26
48
  @click.option(
27
49
  "--vcf-cancer",
28
50
  type=click.Path(exists=True),
29
- help="path to clinical cancer VCF file to be added",
51
+ help="Path to clinical cancer VCF file to be added - NB variants are NOT loaded",
30
52
  )
31
53
  @click.option(
32
54
  "--vcf-cancer-sv",
33
55
  type=click.Path(exists=True),
34
- help="path to clinical cancer structural VCF file to be added",
56
+ help="Path to clinical cancer structural VCF file to be added - NB variants are NOT loaded",
35
57
  )
36
58
  @click.option(
37
59
  "--vcf-research",
38
60
  type=click.Path(exists=True),
39
- help="path to research VCF file to be added",
61
+ help="Path to research VCF file to be added - NB variants are NOT loaded",
40
62
  )
41
63
  @click.option(
42
64
  "--vcf-sv-research",
43
65
  type=click.Path(exists=True),
44
- help="path to research VCF with SV variants to be added",
66
+ help="Path to research VCF with SV variants to be added",
45
67
  )
46
68
  @click.option(
47
69
  "--vcf-cancer-research",
48
70
  type=click.Path(exists=True),
49
- help="path to research VCF with cancer variants to be added",
71
+ help="Path to research VCF with cancer variants to be added - NB variants are NOT loaded",
50
72
  )
51
73
  @click.option(
52
74
  "--vcf-cancer-sv-research",
53
75
  type=click.Path(exists=True),
54
- help="path to research VCF with cancer structural variants to be added",
76
+ help="Path to research VCF with cancer structural variants to be added - NB variants are NOT loaded",
55
77
  )
56
78
  @click.option(
57
79
  "--vcf-mei",
58
80
  type=click.Path(exists=True),
59
- help="path to clinical mei variants to be added",
81
+ help="Path to clinical mei variants to be added - NB variants are NOT loaded",
60
82
  )
61
83
  @click.option(
62
84
  "--vcf-mei-research",
63
85
  type=click.Path(exists=True),
64
- help="path to research mei variants to be added",
86
+ help="Path to research mei variants to be added - NB variants are NOT loaded",
65
87
  )
66
88
  @click.option(
67
89
  "--reupload-sv",
@@ -77,8 +99,11 @@ def case(
77
99
  case_name,
78
100
  institute,
79
101
  collaborator,
102
+ fraser,
103
+ outrider,
80
104
  vcf,
81
105
  vcf_sv,
106
+ vcf_str,
82
107
  vcf_cancer,
83
108
  vcf_cancer_sv,
84
109
  vcf_research,
@@ -89,6 +114,7 @@ def case(
89
114
  vcf_mei_research,
90
115
  reupload_sv,
91
116
  rankscore_treshold,
117
+ rna_genome_build,
92
118
  sv_rankmodel_version,
93
119
  ):
94
120
  """
@@ -122,6 +148,7 @@ def case(
122
148
  for key_name, key in [
123
149
  ("vcf_snv", vcf),
124
150
  ("vcf_sv", vcf_sv),
151
+ ("vcf_str", vcf_str),
125
152
  ("vcf_cancer", vcf_cancer),
126
153
  ("vcf_cancer_sv", vcf_cancer_sv),
127
154
  ("vcf_research", vcf_research),
@@ -137,6 +164,25 @@ def case(
137
164
  case_obj["vcf_files"][key_name] = key
138
165
  case_changed = True
139
166
 
167
+ for key_name, key in [
168
+ ("fraser", fraser),
169
+ ("outrider", outrider),
170
+ ]:
171
+ if key is None:
172
+ continue
173
+ LOG.info(f"Updating '{key_name}' to {key}")
174
+
175
+ if "omics_files" not in case_obj or case_obj["omics_files"] is None:
176
+ case_obj["omics_files"] = {}
177
+
178
+ case_obj["omics_files"][key_name] = key
179
+ case_obj["has_outliers"] = True
180
+ case_changed = True
181
+
182
+ if rna_genome_build:
183
+ case_obj["rna_genome_build"] = rna_genome_build
184
+ case_changed = True
185
+
140
186
  if case_changed:
141
187
  institute_obj = store.institute(case_obj["owner"])
142
188
  store.update_case_cli(case_obj, institute_obj)
@@ -148,7 +194,7 @@ def case(
148
194
  updates["sv_rank_model_version"] = str(sv_rankmodel_version)
149
195
  if vcf_sv:
150
196
  updates["vcf_files.vcf_sv"] = vcf_sv
151
- if vcf_sv:
197
+ if vcf_sv_research:
152
198
  updates["vcf_files.vcf_sv_research"] = vcf_sv_research
153
199
 
154
200
  updated_case = store.case_collection.find_one_and_update(
@@ -3,6 +3,11 @@ ANALYSIS_TYPES = ("external", "mixed", "ogm", "panel", "panel-umi", "unknown", "
3
3
  # keys are used in the load report cli, while key_name is saved in case database documents
4
4
  CUSTOM_CASE_REPORTS = {
5
5
  "delivery": {"key_name": "delivery_report", "format": "HTML", "pdf_export": True},
6
+ "rna_delivery_report": {
7
+ "key_name": "rna_delivery_report",
8
+ "format": "HTML",
9
+ "pdf_export": True,
10
+ },
6
11
  "cnv": {"key_name": "cnv_report", "format": "PDF", "pdf_export": False},
7
12
  "cov_qc": {"key_name": "coverage_qc_report", "format": "HTML", "pdf_export": True},
8
13
  "exe_ver": {"key_name": "pipeline_version", "format": "YAML", "pdf_export": True},
@@ -1,7 +1,7 @@
1
1
  import re
2
2
 
3
- MIMNR_PATTERN = re.compile("[0-9]{6,6}")
4
- ENTRY_PATTERN = re.compile("\([1,2,3,4]\)")
3
+ MIMNR_PATTERN = re.compile(r"[0-9]{6,6}")
4
+ ENTRY_PATTERN = re.compile(r"\([1-4]\)")
5
5
 
6
6
  DISEASE_INHERITANCE_TERMS = [
7
7
  "Autosomal recessive",
@@ -4,11 +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"
7
+ HG19ALIAS_URL = "https://igv.org/genomes/data/hg19/hg19_alias.tab"
8
8
 
9
9
  HG38REF_URL = "https://s3.amazonaws.com/igv.broadinstitute.org/genomes/seq/hg38/hg38.fa"
10
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"
11
+ HG38ALIAS_URL = "https://igv.org/genomes/data/hg38/hg38_alias.tab"
12
12
  HG38CYTOBAND_URL = (
13
13
  "https://s3.amazonaws.com/igv.broadinstitute.org/annotations/hg38/cytoBandIdeo.txt"
14
14
  )
@@ -145,11 +145,18 @@ INDEXES = {
145
145
  "case": [
146
146
  IndexModel([("synopsis", TEXT)], default_language="english", name="synopsis_text"),
147
147
  IndexModel([("causatives", ASCENDING)], name="causatives"),
148
+ IndexModel([("suspects", ASCENDING)], name="suspects"),
148
149
  IndexModel(
149
150
  [("collaborators", ASCENDING), ("status", ASCENDING), ("updated_at", ASCENDING)],
150
151
  name="collaborators_status_updated_at",
151
152
  ),
152
- IndexModel([("owner", ASCENDING), ("display_name", ASCENDING)], name="owner_display_name"),
153
+ IndexModel(
154
+ [
155
+ ("owner", ASCENDING),
156
+ ("display_name", ASCENDING),
157
+ ],
158
+ name="owner_display_name",
159
+ ),
153
160
  ],
154
161
  "managed_variant": [
155
162
  IndexModel(
@@ -142,6 +142,7 @@ peddy_sex: scout/demo/643594.sex_check.csv
142
142
 
143
143
  delivery_report: scout/demo/delivery_report.html
144
144
  gene_fusion_report: scout/demo/draw-fusions-example.pdf
145
+ rna_delivery_report: scout/demo/delivery_report.html
145
146
  exe_ver: scout/demo/exe_ver.yaml
146
147
  reference_info: scout/demo/reference_info.yaml
147
148
 
scout/demo/panel_1.txt CHANGED
@@ -267,3 +267,5 @@
267
267
  10542 SBF1 SBF1
268
268
  10604 SCO2 SCO2
269
269
  713 ARSA ARSA
270
+ 11117 SMN1 SMN1
271
+ 11118 SMN2 SMN2
@@ -15570,6 +15570,141 @@ Chromosome/scaffold name Gene stable ID Transcript stable ID Exon stable ID Exon
15570
15570
  5 ENSG00000170458 ENST00000401743 ENSE00001862834 140011313 140012565 140011313 140011440 -1 3
15571
15571
  5 ENSG00000170458 ENST00000401743 ENSE00001429397 140012654 140012877 140012657 140012877 -1 2
15572
15572
  5 ENSG00000170458 ENST00000401743 ENSE00001554029 140013116 140013286 140013116 140013286 -1 1
15573
+ 5 ENSG00000172062 ENST00000503079 ENSE00001922009 70220857 70221011 70220857 70220930 1 1
15574
+ 5 ENSG00000172062 ENST00000503079 ENSE00001688516 70234666 70234737 1 2
15575
+ 5 ENSG00000172062 ENST00000503079 ENSE00001638255 70237216 70237335 1 3
15576
+ 5 ENSG00000172062 ENST00000503079 ENSE00001766361 70238185 70238385 1 4
15577
+ 5 ENSG00000172062 ENST00000503079 ENSE00003576392 70238545 70238697 1 5
15578
+ 5 ENSG00000172062 ENST00000503079 ENSE00001593733 70241893 70242003 1 6
15579
+ 5 ENSG00000172062 ENST00000503079 ENSE00002062475 70247768 70248174 70247819 70248174 1 7
15580
+ 5 ENSG00000172062 ENST00000380707 ENSE00001922009 70220857 70221011 70220857 70220930 1 1
15581
+ 5 ENSG00000172062 ENST00000380707 ENSE00001688516 70234666 70234737 1 2
15582
+ 5 ENSG00000172062 ENST00000380707 ENSE00001638255 70237216 70237335 1 3
15583
+ 5 ENSG00000172062 ENST00000380707 ENSE00001766361 70238185 70238385 1 4
15584
+ 5 ENSG00000172062 ENST00000380707 ENSE00003576392 70238545 70238697 1 5
15585
+ 5 ENSG00000172062 ENST00000380707 ENSE00003611930 70240485 70240580 1 6
15586
+ 5 ENSG00000172062 ENST00000380707 ENSE00001593733 70241893 70242003 1 7
15587
+ 5 ENSG00000172062 ENST00000380707 ENSE00003693452 70247768 70247821 70247819 70247821 1 8
15588
+ 5 ENSG00000172062 ENST00000380707 ENSE00001885073 70248266 70248839 70248266 70248839 1 9
15589
+ 5 ENSG00000172062 ENST00000514951 ENSE00002034950 70220883 70221011 70220883 70220930 1 1
15590
+ 5 ENSG00000172062 ENST00000514951 ENSE00001688516 70234666 70234737 1 2
15591
+ 5 ENSG00000172062 ENST00000514951 ENSE00001638255 70237216 70237335 1 3
15592
+ 5 ENSG00000172062 ENST00000514951 ENSE00003576392 70238545 70238697 1 4
15593
+ 5 ENSG00000172062 ENST00000514951 ENSE00003611930 70240485 70240580 1 5
15594
+ 5 ENSG00000172062 ENST00000514951 ENSE00001593733 70241893 70242003 1 6
15595
+ 5 ENSG00000172062 ENST00000514951 ENSE00002045198 70247768 70248394 70247819 70248394 1 7
15596
+ 5 ENSG00000172062 ENST00000506239 ENSE00002073998 70220902 70221011 70220902 70220930 1 1
15597
+ 5 ENSG00000172062 ENST00000506239 ENSE00001688516 70234666 70234737 1 2
15598
+ 5 ENSG00000172062 ENST00000506239 ENSE00001638255 70237216 70237335 1 3
15599
+ 5 ENSG00000172062 ENST00000506239 ENSE00001766361 70238185 70238385 1 4
15600
+ 5 ENSG00000172062 ENST00000506239 ENSE00003576392 70238545 70238697 1 5
15601
+ 5 ENSG00000172062 ENST00000506239 ENSE00003611930 70240485 70240580 1 6
15602
+ 5 ENSG00000172062 ENST00000506239 ENSE00001593733 70241893 70242003 1 7
15603
+ 5 ENSG00000172062 ENST00000506239 ENSE00002042046 70242534 70242642 70242585 70242642 1 8
15604
+ 5 ENSG00000172062 ENST00000506239 ENSE00002052357 70248266 70248843 70248266 70248843 1 9
15605
+ 5 ENSG00000172062 ENST00000506163 ENSE00002033586 70220922 70221011 70220922 70220930 1 1
15606
+ 5 ENSG00000172062 ENST00000506163 ENSE00001688516 70234666 70234737 1 2
15607
+ 5 ENSG00000172062 ENST00000506163 ENSE00001638255 70237216 70237335 1 3
15608
+ 5 ENSG00000172062 ENST00000506163 ENSE00001766361 70238185 70238385 1 4
15609
+ 5 ENSG00000172062 ENST00000506163 ENSE00003576392 70238545 70238697 1 5
15610
+ 5 ENSG00000172062 ENST00000506163 ENSE00003611930 70240485 70240580 1 6
15611
+ 5 ENSG00000172062 ENST00000506163 ENSE00001593733 70241893 70242003 1 7
15612
+ 5 ENSG00000172062 ENST00000506163 ENSE00002025434 70248266 70248867 70248281 70248867 1 8
15613
+ 5 ENSG00000172062 ENST00000518504 ENSE00002115234 70238299 70238385 1 1
15614
+ 5 ENSG00000172062 ENST00000518504 ENSE00003586477 70238545 70238697 1 2
15615
+ 5 ENSG00000172062 ENST00000518504 ENSE00002067240 70241893 70242105 1 3
15616
+ 5 ENSG00000172062 ENST00000507905 ENSE00002065935 70238335 70238385 1 1
15617
+ 5 ENSG00000172062 ENST00000507905 ENSE00003576392 70238545 70238697 1 2
15618
+ 5 ENSG00000172062 ENST00000507905 ENSE00002019326 70240276 70240392 70240312 70240392 1 3
15619
+ 5 ENSG00000172062 ENST00000507905 ENSE00003477349 70240485 70240580 70240485 70240580 1 4
15620
+ 5 ENSG00000172062 ENST00000507905 ENSE00002110817 70241893 70241906 70241893 70241906 1 5
15621
+ 5 ENSG00000172062 ENST00000513228 ENSE00002053468 70238345 70238385 1 1
15622
+ 5 ENSG00000172062 ENST00000513228 ENSE00003586477 70238545 70238697 1 2
15623
+ 5 ENSG00000172062 ENST00000513228 ENSE00003477349 70240485 70240580 1 3
15624
+ 5 ENSG00000172062 ENST00000513228 ENSE00002065580 70241893 70242101 1 4
15625
+ 5 ENSG00000172062 ENST00000510679 ENSE00002063740 70241916 70242003 1 1
15626
+ 5 ENSG00000172062 ENST00000510679 ENSE00003581587 70247768 70247821 1 2
15627
+ 5 ENSG00000172062 ENST00000510679 ENSE00002068209 70248266 70248407 1 3
15628
+ 5 ENSG00000172062 ENST00000510679 ENSE00002084907 70249009 70249769 1 4
15629
+ 5 ENSG00000172062 ENST00000351205 ENSE00001695536 70220768 70221011 70220768 70220930 1 1
15630
+ 5 ENSG00000172062 ENST00000351205 ENSE00001688516 70234666 70234737 1 2
15631
+ 5 ENSG00000172062 ENST00000351205 ENSE00001638255 70237216 70237335 1 3
15632
+ 5 ENSG00000172062 ENST00000351205 ENSE00001766361 70238185 70238385 1 4
15633
+ 5 ENSG00000172062 ENST00000351205 ENSE00003576392 70238545 70238697 1 5
15634
+ 5 ENSG00000172062 ENST00000351205 ENSE00001593733 70241893 70242003 1 6
15635
+ 5 ENSG00000172062 ENST00000351205 ENSE00003693452 70247768 70247821 70247819 70247821 1 7
15636
+ 5 ENSG00000172062 ENST00000351205 ENSE00001731510 70248266 70248841 70248266 70248841 1 8
15637
+ 5 ENSG00000205571 ENST00000380743 ENSE00001904512 69345439 69345593 69345439 69345512 1 1
15638
+ 5 ENSG00000205571 ENST00000380743 ENSE00001725187 69359242 69359313 1 2
15639
+ 5 ENSG00000205571 ENST00000380743 ENSE00003668426 69361792 69361911 1 3
15640
+ 5 ENSG00000205571 ENST00000380743 ENSE00003579743 69362761 69362961 1 4
15641
+ 5 ENSG00000205571 ENST00000380743 ENSE00003698225 69363121 69363273 1 5
15642
+ 5 ENSG00000205571 ENST00000380743 ENSE00003550962 69365062 69365157 1 6
15643
+ 5 ENSG00000205571 ENST00000380743 ENSE00003620900 69366468 69366578 1 7
15644
+ 5 ENSG00000205571 ENST00000380743 ENSE00003698693 69372348 69372401 69372399 69372401 1 8
15645
+ 5 ENSG00000205571 ENST00000380743 ENSE00001812360 69372846 69373419 69372846 69373419 1 9
15646
+ 5 ENSG00000205571 ENST00000511812 ENSE00002054021 69345465 69345593 69345465 69345512 1 1
15647
+ 5 ENSG00000205571 ENST00000511812 ENSE00001725187 69359242 69359313 1 2
15648
+ 5 ENSG00000205571 ENST00000511812 ENSE00003668426 69361792 69361911 1 3
15649
+ 5 ENSG00000205571 ENST00000511812 ENSE00003698225 69363121 69363273 1 4
15650
+ 5 ENSG00000205571 ENST00000511812 ENSE00003550962 69365062 69365157 1 5
15651
+ 5 ENSG00000205571 ENST00000511812 ENSE00003620900 69366468 69366578 1 6
15652
+ 5 ENSG00000205571 ENST00000511812 ENSE00002055618 69372348 69372533 69372399 69372533 1 7
15653
+ 5 ENSG00000205571 ENST00000506734 ENSE00002041070 69345484 69345593 69345484 69345512 1 1
15654
+ 5 ENSG00000205571 ENST00000506734 ENSE00001725187 69359242 69359313 1 2
15655
+ 5 ENSG00000205571 ENST00000506734 ENSE00003668426 69361792 69361911 1 3
15656
+ 5 ENSG00000205571 ENST00000506734 ENSE00003579743 69362761 69362961 1 4
15657
+ 5 ENSG00000205571 ENST00000506734 ENSE00003698225 69363121 69363273 1 5
15658
+ 5 ENSG00000205571 ENST00000506734 ENSE00003550962 69365062 69365157 1 6
15659
+ 5 ENSG00000205571 ENST00000506734 ENSE00003620900 69366468 69366578 1 7
15660
+ 5 ENSG00000205571 ENST00000506734 ENSE00002038304 69367109 69367217 69367160 69367217 1 8
15661
+ 5 ENSG00000205571 ENST00000506734 ENSE00002033350 69372846 69373423 69372846 69373423 1 9
15662
+ 5 ENSG00000205571 ENST00000380742 ENSE00001897950 69345491 69345593 69345491 69345512 1 1
15663
+ 5 ENSG00000205571 ENST00000380742 ENSE00001725187 69359242 69359313 1 2
15664
+ 5 ENSG00000205571 ENST00000380742 ENSE00003668426 69361792 69361911 1 3
15665
+ 5 ENSG00000205571 ENST00000380742 ENSE00003579743 69362761 69362961 1 4
15666
+ 5 ENSG00000205571 ENST00000380742 ENSE00003698225 69363121 69363273 1 5
15667
+ 5 ENSG00000205571 ENST00000380742 ENSE00003620900 69366468 69366578 1 6
15668
+ 5 ENSG00000205571 ENST00000380742 ENSE00003698693 69372348 69372401 69372399 69372401 1 7
15669
+ 5 ENSG00000205571 ENST00000380742 ENSE00001812360 69372846 69373419 69372846 69373419 1 8
15670
+ 5 ENSG00000205571 ENST00000503678 ENSE00002056052 69359238 69359313 1 1
15671
+ 5 ENSG00000205571 ENST00000503678 ENSE00003685383 69361792 69361911 1 2
15672
+ 5 ENSG00000205571 ENST00000503678 ENSE00003650356 69362761 69362961 1 3
15673
+ 5 ENSG00000205571 ENST00000503678 ENSE00003700892 69363121 69363273 1 4
15674
+ 5 ENSG00000205571 ENST00000503678 ENSE00003668557 69365062 69365157 1 5
15675
+ 5 ENSG00000205571 ENST00000503678 ENSE00002064131 69366468 69366582 1 6
15676
+ 5 ENSG00000205571 ENST00000511873 ENSE00002038537 69362911 69362961 1 1
15677
+ 5 ENSG00000205571 ENST00000511873 ENSE00003698225 69363121 69363273 1 2
15678
+ 5 ENSG00000205571 ENST00000511873 ENSE00002050020 69364853 69364969 69364889 69364969 1 3
15679
+ 5 ENSG00000205571 ENST00000511873 ENSE00003668557 69365062 69365157 69365062 69365157 1 4
15680
+ 5 ENSG00000205571 ENST00000511873 ENSE00003697649 69366468 69366481 69366468 69366481 1 5
15681
+ 5 ENSG00000205571 ENST00000509805 ENSE00002036057 69362921 69362961 1 1
15682
+ 5 ENSG00000205571 ENST00000509805 ENSE00003700892 69363121 69363273 1 2
15683
+ 5 ENSG00000205571 ENST00000509805 ENSE00003668557 69365062 69365157 1 3
15684
+ 5 ENSG00000205571 ENST00000509805 ENSE00002062850 69366468 69366676 1 4
15685
+ 5 ENSG00000205571 ENST00000505346 ENSE00002067458 69362926 69362961 1 1
15686
+ 5 ENSG00000205571 ENST00000505346 ENSE00003700892 69363121 69363273 1 2
15687
+ 5 ENSG00000205571 ENST00000505346 ENSE00003529016 69366468 69366578 1 3
15688
+ 5 ENSG00000205571 ENST00000505346 ENSE00002073006 69372348 69372754 1 4
15689
+ 5 ENSG00000205571 ENST00000514914 ENSE00002051731 69363106 69363273 1 1
15690
+ 5 ENSG00000205571 ENST00000514914 ENSE00003668557 69365062 69365157 1 2
15691
+ 5 ENSG00000205571 ENST00000514914 ENSE00003529016 69366468 69366578 1 3
15692
+ 5 ENSG00000205571 ENST00000514914 ENSE00003696722 69372348 69372401 1 4
15693
+ 5 ENSG00000205571 ENST00000514914 ENSE00002023398 69372846 69373078 1 5
15694
+ 5 ENSG00000205571 ENST00000508258 ENSE00002032527 69365060 69365157 1 1
15695
+ 5 ENSG00000205571 ENST00000508258 ENSE00002041684 69366468 69366580 1 2
15696
+ 5 ENSG00000205571 ENST00000507458 ENSE00002036578 69366491 69366578 1 1
15697
+ 5 ENSG00000205571 ENST00000507458 ENSE00003698693 69372348 69372401 69372399 69372401 1 2
15698
+ 5 ENSG00000205571 ENST00000507458 ENSE00002067548 69372846 69372987 69372846 69372987 1 3
15699
+ 5 ENSG00000205571 ENST00000507458 ENSE00002085226 69373589 69374349 69373589 69374349 1 4
15700
+ 5 ENSG00000205571 ENST00000380741 ENSE00001792916 69345350 69345593 69345350 69345512 1 1
15701
+ 5 ENSG00000205571 ENST00000380741 ENSE00001725187 69359242 69359313 1 2
15702
+ 5 ENSG00000205571 ENST00000380741 ENSE00003668426 69361792 69361911 1 3
15703
+ 5 ENSG00000205571 ENST00000380741 ENSE00003579743 69362761 69362961 1 4
15704
+ 5 ENSG00000205571 ENST00000380741 ENSE00003698225 69363121 69363273 1 5
15705
+ 5 ENSG00000205571 ENST00000380741 ENSE00003550962 69365062 69365157 1 6
15706
+ 5 ENSG00000205571 ENST00000380741 ENSE00003620900 69366468 69366578 1 7
15707
+ 5 ENSG00000205571 ENST00000380741 ENSE00002235176 69372846 69373421 69372861 69373421 1 8
15573
15708
  6 ENSG00000118503 ENST00000421450 ENSE00001636894 138188351 138188679 138188351 138188679 1 1
15574
15709
  6 ENSG00000118503 ENST00000421450 ENSE00001724607 138192350 138192441 138192350 138192364 1 2
15575
15710
  6 ENSG00000118503 ENST00000420009 ENSE00001680250 138188459 138188655 138188459 138188655 1 1