scout-browser 4.96.0__py3-none-any.whl → 4.97.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. scout/adapter/mongo/case.py +51 -47
  2. scout/adapter/mongo/filter.py +28 -11
  3. scout/adapter/mongo/institute.py +2 -0
  4. scout/adapter/mongo/omics_variant.py +20 -5
  5. scout/adapter/mongo/query.py +104 -95
  6. scout/adapter/mongo/variant.py +0 -5
  7. scout/adapter/mongo/variant_loader.py +10 -12
  8. scout/build/individual.py +3 -11
  9. scout/commands/delete/delete_command.py +87 -49
  10. scout/commands/load/research.py +4 -4
  11. scout/commands/load/variants.py +25 -8
  12. scout/commands/setup/setup_scout.py +1 -1
  13. scout/commands/update/case.py +12 -0
  14. scout/commands/update/individual.py +1 -2
  15. scout/constants/__init__.py +7 -2
  16. scout/constants/file_types.py +68 -119
  17. scout/constants/filters.py +2 -1
  18. scout/constants/gene_tags.py +3 -3
  19. scout/constants/igv_tracks.py +7 -11
  20. scout/constants/query_terms.py +2 -2
  21. scout/demo/643594.config.yaml +6 -0
  22. scout/demo/643594.peddy.ped +1 -1
  23. scout/demo/643594.somalier.ancestry.tsv +4 -0
  24. scout/demo/643594.somalier.pairs.tsv +4 -0
  25. scout/demo/643594.somalier.samples.tsv +4 -0
  26. scout/demo/cancer.load_config.yaml +1 -0
  27. scout/demo/resources/__init__.py +1 -1
  28. scout/demo/resources/gnomad.v4.1.constraint_metrics_reduced.tsv +3755 -0
  29. scout/exceptions/database.py +1 -1
  30. scout/load/all.py +8 -16
  31. scout/models/case/case.py +1 -0
  32. scout/models/case/case_loading_models.py +12 -5
  33. scout/models/managed_variant.py +3 -3
  34. scout/models/omics_variant.py +3 -3
  35. scout/parse/case.py +112 -5
  36. scout/parse/pedqc.py +127 -0
  37. scout/parse/variant/frequency.py +9 -6
  38. scout/parse/variant/variant.py +71 -39
  39. scout/server/app.py +2 -0
  40. scout/server/blueprints/alignviewers/controllers.py +2 -0
  41. scout/server/blueprints/alignviewers/templates/alignviewers/igv_viewer.html +3 -0
  42. scout/server/blueprints/alignviewers/templates/alignviewers/utils.html +1 -1
  43. scout/server/blueprints/cases/controllers.py +23 -3
  44. scout/server/blueprints/cases/templates/cases/case.html +3 -0
  45. scout/server/blueprints/cases/templates/cases/chanjo2_form.html +2 -2
  46. scout/server/blueprints/cases/templates/cases/gene_panel.html +9 -3
  47. scout/server/blueprints/cases/templates/cases/individuals_table.html +4 -1
  48. scout/server/blueprints/cases/templates/cases/utils.html +23 -19
  49. scout/server/blueprints/cases/views.py +5 -9
  50. scout/server/blueprints/clinvar/controllers.py +11 -11
  51. scout/server/blueprints/clinvar/templates/clinvar/multistep_add_variant.html +15 -7
  52. scout/server/blueprints/institutes/controllers.py +20 -1
  53. scout/server/blueprints/institutes/forms.py +5 -1
  54. scout/server/blueprints/institutes/templates/overview/institute_settings.html +7 -0
  55. scout/server/blueprints/institutes/templates/overview/utils.html +20 -1
  56. scout/server/blueprints/omics_variants/templates/omics_variants/outliers.html +9 -2
  57. scout/server/blueprints/omics_variants/views.py +8 -10
  58. scout/server/blueprints/variant/controllers.py +30 -1
  59. scout/server/blueprints/variant/templates/variant/cancer-variant.html +19 -3
  60. scout/server/blueprints/variant/templates/variant/components.html +26 -9
  61. scout/server/blueprints/variant/templates/variant/variant.html +4 -2
  62. scout/server/blueprints/variant/utils.py +2 -0
  63. scout/server/blueprints/variants/controllers.py +29 -3
  64. scout/server/blueprints/variants/forms.py +37 -10
  65. scout/server/blueprints/variants/templates/variants/components.html +12 -10
  66. scout/server/blueprints/variants/templates/variants/utils.html +59 -36
  67. scout/server/blueprints/variants/views.py +45 -60
  68. scout/server/extensions/beacon_extension.py +1 -1
  69. scout/server/extensions/bionano_extension.py +5 -5
  70. scout/server/extensions/chanjo2_extension.py +40 -1
  71. scout/server/extensions/chanjo_extension.py +1 -1
  72. scout/server/extensions/matchmaker_extension.py +1 -1
  73. scout/server/static/bs_styles.css +2 -0
  74. scout/server/templates/layout.html +1 -0
  75. scout/server/utils.py +5 -0
  76. scout/utils/ensembl_biomart_clients.py +2 -11
  77. scout/utils/scout_requests.py +1 -1
  78. {scout_browser-4.96.0.dist-info → scout_browser-4.97.0.dist-info}/METADATA +1 -1
  79. {scout_browser-4.96.0.dist-info → scout_browser-4.97.0.dist-info}/RECORD +82 -80
  80. scout/demo/resources/gnomad.v4.0.constraint_metrics_reduced.tsv +0 -3755
  81. scout/parse/peddy.py +0 -149
  82. scout/utils/sort.py +0 -21
  83. {scout_browser-4.96.0.dist-info → scout_browser-4.97.0.dist-info}/WHEEL +0 -0
  84. {scout_browser-4.96.0.dist-info → scout_browser-4.97.0.dist-info}/entry_points.txt +0 -0
  85. {scout_browser-4.96.0.dist-info → scout_browser-4.97.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,121 +1,70 @@
1
- # Collect general information about the file types used in Scout
2
- # Load priority determines load order, with lowest value loaded first.
1
+ from collections import OrderedDict
3
2
 
4
- FILE_TYPE_MAP = {
5
- "vcf_cancer": {
6
- "category": "cancer",
7
- "variant_type": "clinical",
8
- "load_priority": 10,
9
- },
10
- "vcf_cancer_research": {
11
- "category": "cancer",
12
- "variant_type": "research",
13
- "load_priority": 110,
14
- },
15
- "vcf_cancer_sv": {
16
- "category": "cancer_sv",
17
- "variant_type": "clinical",
18
- "load_priority": 20,
19
- },
20
- "vcf_cancer_sv_research": {
21
- "category": "cancer_sv",
22
- "variant_type": "research",
23
- "load_priority": 120,
24
- },
25
- "vcf_fusion": {
26
- "category": "fusion",
27
- "variant_type": "clinical",
28
- "load_priority": 70,
29
- },
30
- "vcf_fusion_research": {
31
- "category": "fusion",
32
- "variant_type": "research",
33
- "load_priority": 170,
34
- },
35
- "vcf_mei": {
36
- "category": "mei",
37
- "variant_type": "clinical",
38
- "load_priority": 60,
39
- },
40
- "vcf_mei_research": {
41
- "category": "mei",
42
- "variant_type": "research",
43
- "load_priority": 160,
44
- },
45
- "vcf_snv": {
46
- "category": "snv",
47
- "variant_type": "clinical",
48
- "load_priority": 35,
49
- },
50
- "vcf_snv_mt": {
51
- "category": "snv",
52
- "variant_type": "clinical",
53
- "load_priority": 30,
54
- },
55
- "vcf_snv_research": {
56
- "category": "snv",
57
- "variant_type": "research",
58
- "load_priority": 135,
59
- },
60
- "vcf_snv_research_mt": {
61
- "category": "snv",
62
- "variant_type": "research",
63
- "load_priority": 130,
64
- },
65
- "vcf_sv": {
66
- "category": "sv",
67
- "variant_type": "clinical",
68
- "load_priority": 45,
69
- },
70
- "vcf_sv_mt": {
71
- "category": "sv",
72
- "variant_type": "clinical",
73
- "load_priority": 40,
74
- },
75
- "vcf_sv_research": {
76
- "category": "sv",
77
- "variant_type": "research",
78
- "load_priority": 145,
79
- },
80
- "vcf_sv_research_mt": {
81
- "category": "sv",
82
- "variant_type": "research",
83
- "load_priority": 140,
84
- },
85
- "vcf_str": {
86
- "category": "str",
87
- "variant_type": "clinical",
88
- "load_priority": 50,
89
- },
90
- }
3
+ # Variants in Scout will be loadedfor a case in the same order as these ordered dictionaries
4
+ ORDERED_FILE_TYPE_MAP = OrderedDict(
5
+ [
6
+ ("vcf_cancer", {"category": "cancer", "variant_type": "clinical"}),
7
+ ("vcf_cancer_sv", {"category": "cancer_sv", "variant_type": "clinical"}),
8
+ ("vcf_snv_mt", {"category": "snv", "variant_type": "clinical"}),
9
+ ("vcf_snv", {"category": "snv", "variant_type": "clinical"}),
10
+ ("vcf_sv_mt", {"category": "sv", "variant_type": "clinical"}),
11
+ ("vcf_sv", {"category": "sv", "variant_type": "clinical"}),
12
+ ("vcf_str", {"category": "str", "variant_type": "clinical"}),
13
+ ("vcf_mei", {"category": "mei", "variant_type": "clinical"}),
14
+ ("vcf_fusion", {"category": "fusion", "variant_type": "clinical"}),
15
+ ("vcf_cancer_research", {"category": "cancer", "variant_type": "research"}),
16
+ ("vcf_cancer_sv_research", {"category": "cancer_sv", "variant_type": "research"}),
17
+ ("vcf_snv_research_mt", {"category": "snv", "variant_type": "research"}),
18
+ ("vcf_snv_research", {"category": "snv", "variant_type": "research"}),
19
+ ("vcf_sv_research_mt", {"category": "sv", "variant_type": "research"}),
20
+ ("vcf_sv_research", {"category": "sv", "variant_type": "research"}),
21
+ ("vcf_mei_research", {"category": "mei", "variant_type": "research"}),
22
+ ("vcf_fusion_research", {"category": "fusion", "variant_type": "research"}),
23
+ ]
24
+ )
91
25
 
92
- OMICS_FILE_TYPE_MAP = {
93
- "fraser": {
94
- "format": "tsv",
95
- "analysis_type": "wts",
96
- "category": "outlier",
97
- "sub_category": "splicing",
98
- "variant_type": "clinical",
99
- },
100
- "outrider": {
101
- "format": "tsv",
102
- "analysis_type": "wts",
103
- "category": "outlier",
104
- "sub_category": "expression",
105
- "variant_type": "clinical",
106
- },
107
- "fraser_research": {
108
- "format": "tsv",
109
- "analysis_type": "wts",
110
- "category": "outlier",
111
- "sub_category": "splicing",
112
- "variant_type": "research",
113
- },
114
- "outrider_research": {
115
- "format": "tsv",
116
- "analysis_type": "wts",
117
- "category": "outlier",
118
- "sub_category": "expression",
119
- "variant_type": "research",
120
- },
121
- }
26
+
27
+ ORDERED_OMICS_FILE_TYPE_MAP = OrderedDict(
28
+ [
29
+ (
30
+ "fraser",
31
+ {
32
+ "format": "tsv",
33
+ "analysis_type": "wts",
34
+ "category": "outlier",
35
+ "sub_category": "splicing",
36
+ "variant_type": "clinical",
37
+ },
38
+ ),
39
+ (
40
+ "outrider",
41
+ {
42
+ "format": "tsv",
43
+ "analysis_type": "wts",
44
+ "category": "outlier",
45
+ "sub_category": "expression",
46
+ "variant_type": "clinical",
47
+ },
48
+ ),
49
+ (
50
+ "fraser_research",
51
+ {
52
+ "format": "tsv",
53
+ "analysis_type": "wts",
54
+ "category": "outlier",
55
+ "sub_category": "splicing",
56
+ "variant_type": "research",
57
+ },
58
+ ),
59
+ (
60
+ "outrider_research",
61
+ {
62
+ "format": "tsv",
63
+ "analysis_type": "wts",
64
+ "category": "outlier",
65
+ "sub_category": "expression",
66
+ "variant_type": "research",
67
+ },
68
+ ),
69
+ ]
70
+ )
@@ -6,7 +6,8 @@ CLINICAL_FILTER_BASE = {
6
6
  "region_annotations": ["exonic", "splicing"],
7
7
  "functional_annotations": SEVERE_SO_TERMS,
8
8
  "clinsig": [4, 5],
9
- "clinsig_confident_always_returned": True,
9
+ "clinvar_trusted_revstat": True,
10
+ "prioritise_clinvar": True,
10
11
  }
11
12
 
12
13
  CLINICAL_FILTER_BASE_SV = {
@@ -79,8 +79,8 @@ UPDATE_GENES_RESOURCES = {
79
79
  "hpo_genes": ["genes_to_phenotype.txt", "genes_to_phenotype_reduced.txt"],
80
80
  "hgnc_lines": ["hgnc.txt", "hgnc_reduced_set.txt"],
81
81
  "exac_lines": [
82
- "gnomad.v4.0.constraint_metrics.tsv",
83
- "gnomad.v4.0.constraint_metrics_reduced.tsv",
82
+ "gnomad.v4.1.constraint_metrics.tsv",
83
+ "gnomad.v4.1.constraint_metrics_reduced.tsv",
84
84
  ],
85
85
  "ensembl_genes_37": ["ensembl_genes_37.txt", "ensembl_genes_37_reduced.txt"],
86
86
  "ensembl_genes_38": ["ensembl_genes_38.txt", "ensembl_genes_38_reduced.txt"],
@@ -94,7 +94,7 @@ UPDATE_GENES_RESOURCES = {
94
94
  ],
95
95
  }
96
96
 
97
- GNOMAD_CONSTRAINT_FILENAME = "gnomad.v4.0.constraint_metrics.tsv"
97
+ GNOMAD_CONSTRAINT_FILENAME = "gnomad.v4.1.constraint_metrics.tsv"
98
98
 
99
99
  GENE_CONSTRAINT_LABELS = {
100
100
  "pli_score": "lof.pLI",
@@ -3,22 +3,20 @@ HG19REF_URL = (
3
3
  "https://s3.amazonaws.com/igv.broadinstitute.org/genomes/seq/1kg_v37/human_g1k_v37_decoy.fasta"
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
- HG19CYTOBAND_URL = "https://s3.amazonaws.com/igv.broadinstitute.org/genomes/seq/hg19/cytoBand.txt"
6
+ HG19CYTOBAND_URL = "https://raw.githubusercontent.com/Clinical-Genomics/reference-files/refs/heads/master/rare-disease/region/grch37_cytoband.bed"
7
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
11
  HG38ALIAS_URL = "https://igv.org/genomes/data/hg38/hg38_alias.tab"
12
- HG38CYTOBAND_URL = (
13
- "https://s3.amazonaws.com/igv.broadinstitute.org/annotations/hg38/cytoBandIdeo.txt"
14
- )
12
+ HG38CYTOBAND_URL = "https://igv-genepattern-org.s3.amazonaws.com/genomes/hg38/cytoBandIdeo.txt.gz"
13
+
14
+ HG38GENES_URL = "https://s3.amazonaws.com/igv.org.genomes/hg38/refGene.txt.gz"
15
+ HG38GENES_FORMAT = "refgene"
15
16
 
16
- HG38GENES_FORMAT = "gtf"
17
- HG38GENES_URL = "https://s3.amazonaws.com/igv.broadinstitute.org/annotations/hg38/genes/Homo_sapiens.GRCh38.80.sorted.gtf.gz"
18
- HG38GENES_INDEX_URL = "https://s3.amazonaws.com/igv.broadinstitute.org/annotations/hg38/genes/Homo_sapiens.GRCh38.80.sorted.gtf.gz.tbi"
19
- HG19GENES_FORMAT = "refgene"
20
17
  HG19GENES_URL = "https://s3.amazonaws.com/igv.org.genomes/hg19/ncbiRefSeq.sorted.txt.gz"
21
18
  HG19GENES_INDEX_URL = "https://s3.amazonaws.com/igv.org.genomes/hg19/ncbiRefSeq.sorted.txt.gz.tbi"
19
+ HG19GENES_FORMAT = "refgene"
22
20
 
23
21
  HG38CLINVAR_URL = "https://hgdownload.soe.ucsc.edu/gbdb/hg38/bbi/clinvar/clinvarMain.bb"
24
22
  HG19CLINVAR_URL = "https://hgdownload.soe.ucsc.edu/gbdb/hg19/bbi/clinvar/clinvarMain.bb"
@@ -104,7 +102,6 @@ CLINVAR_SV_38 = {
104
102
  # Human genes track, build 37
105
103
  HUMAN_GENES_37 = {
106
104
  "name": "Genes",
107
- "track_name": "genes_track",
108
105
  "type": "annotation",
109
106
  "sourceType": "file",
110
107
  "displayMode": "EXPANDED",
@@ -117,14 +114,13 @@ HUMAN_GENES_37 = {
117
114
  # Human genes track, build 38
118
115
  HUMAN_GENES_38 = {
119
116
  "name": "Genes",
120
- "track_name": "genes_track",
121
117
  "type": "annotation",
122
118
  "sourceType": "file",
123
119
  "displayMode": "EXPANDED",
124
120
  "visibilityWindow": 300000000,
125
121
  "format": HG38GENES_FORMAT,
126
122
  "url": HG38GENES_URL,
127
- "indexURL": HG38GENES_INDEX_URL,
123
+ "order": 1000000,
128
124
  }
129
125
 
130
126
  CASE_SPECIFIC_TRACKS = {
@@ -18,13 +18,14 @@ FUNDAMENTAL_CRITERIA = [
18
18
  "variant_ids",
19
19
  "hide_dismissed",
20
20
  "show_unaffected",
21
+ "show_soft_filtered",
21
22
  ]
22
23
 
23
24
  # If there is only one primary criterion given without any secondary, it will also be
24
25
  # added as a top level '$and'.
25
26
  # Otherwise, primary criteria are added as a high level '$or' and all secondary criteria
26
27
  # are joined together with them as a single lower level '$and'.
27
- PRIMARY_CRITERIA = ["clinsig"]
28
+ PRIMARY_CRITERIA = ["clinsig", "clinvar_tag"]
28
29
 
29
30
  # Secondary, excluding filter criteria will hide variants in general,
30
31
  # but can be overridden by an including, major filter criteria
@@ -53,7 +54,6 @@ SECONDARY_CRITERIA = [
53
54
  "somatic_score",
54
55
  "control_frequency",
55
56
  "mvl_tag",
56
- "clinvar_tag",
57
57
  "cosmic_tag",
58
58
  "tumor_frequency",
59
59
  "fusion_score",
@@ -131,6 +131,8 @@ vcf_mei_research: scout/demo/643594.research.mei.vcf.gz
131
131
  omics_files:
132
132
  fraser: scout/demo/drop/fraser_top_hits_clinical.tsv
133
133
  outrider: scout/demo/drop/outrider_top_hits_clinical.tsv
134
+ fraser_research: scout/demo/drop/fraser_top_hits_clinical.tsv
135
+ outrider_research: scout/demo/drop/outrider_top_hits_clinical.tsv
134
136
 
135
137
  smn_tsv: scout/demo/643594.solo.smn.tsv
136
138
 
@@ -140,6 +142,10 @@ peddy_ped: scout/demo/643594.peddy.ped
140
142
  peddy_check: scout/demo/643594.ped_check.csv
141
143
  peddy_sex: scout/demo/643594.sex_check.csv
142
144
 
145
+ somalier_ancestry: scout/demo/643594.somalier.ancestry.tsv
146
+ somalier_pairs: scout/demo/643594.somalier.pairs.tsv
147
+ somalier_samples: scout/demo/643594.somalier.samples.tsv
148
+
143
149
  delivery_report: scout/demo/delivery_report.html
144
150
  gene_fusion_report: scout/demo/draw-fusions-example.pdf
145
151
  rna_delivery_report: scout/demo/delivery_report.html
@@ -1,4 +1,4 @@
1
1
  #family_id sample_id paternal_id maternal_id sex phenotype het_call_rate het_ratio het_mean_depth het_idr_baf ancestry-prediction PC1 PC2 PC3 sex_het_ratio
2
- 643594-300M ADM1059A2 ADM1059A1 ADM1059A3 1 1 1 0.4899 23.7 0.2871 EUR -0.2145 -1.629 -0.4117 0.03289
2
+ 643594-300M ADM1059A2 ADM1059A1 ADM1059A3 1 2 1 0.4899 23.7 0.2871 EUR -0.2145 -1.629 -0.4117 0.03289
3
3
  643594-300M ADM1059A1 0 0 1 1 1 0.4815 24 0.2802 EUR -0.1179 -1.482 -0.62 0.0328
4
4
  643594-300M ADM1059A3 0 0 2 1 1 0.475 21.95 0.2941 EUR -0.3578 -1.546 -0.4366 1.7
@@ -0,0 +1,4 @@
1
+ #sample_id predicted_ancestry given_ancestry
2
+ ADM1059A2 EUR EUR
3
+ ADM1059A1 EUR EUR
4
+ ADM1059A3 EUR EUR
@@ -0,0 +1,4 @@
1
+ #sample_a sample_b relatedness ibs0 ibs2 hom_concordance hets_a hets_b hets_ab shared_hets hom_alts_a hom_alts_b shared_hom_alts n x_ibs0 x_ibs2 expected_relatedness
2
+ ADM1059A2 ADM1059A1 0.5051 7 8452 1 8019 7882 1 3995 1 1 1 16370 7 8452 0.5
3
+ ADM1059A2 ADM1059A3 0.5012 5 8384 1 8019 7776 1 3907 1 1 1 16370 5 8384 0.5
4
+ ADM1059A1 ADM1059A3 -0.01492 1539 5097 1 7882 7776 1 2962 1 1 1 16370 1539 5097 0
@@ -0,0 +1,4 @@
1
+ #family_id sample_id paternal_id maternal_id sex phenotype original_pedigree_sex gt_depth_mean gt_depth_sd depth_mean depth_sd ab_mean ab_std n_hom_ref n_het n_hom_alt n_unknown p_middling_ab X_depth_mean X_n X_hom_ref X_het X_hom_alt Y_depth_mean Y_n
2
+ 643594-300M ADM1059A2 ADM1059A1 ADM1059A3 1 2 male 31.6 8.0 31.6 8.0 0.53 0.39 4569 6770 5632 413 0.009 16.45 347 164 0 183 18.38 16
3
+ 643594-300M ADM1059A1 0 0 1 1 male 31.6 8.0 31.6 8.0 0.53 0.39 4569 6770 5632 413 0.009 16.45 347 164 0 183 18.38 16
4
+ 643594-300M ADM1059A3 0 0 2 1 female 31.6 8.0 31.6 8.0 0.53 0.39 4569 6770 5632 413 0.009 16.45 347 164 0 183 18.38 16
@@ -17,6 +17,7 @@ samples:
17
17
  vcf2cytosure: scout/demo/999-99.test.cgh
18
18
  tmb: 7
19
19
  msi: 15
20
+ hrd: 93
20
21
  tumor_purity: 0.1
21
22
 
22
23
  - analysis_type: panel
@@ -10,7 +10,7 @@ BASE_PATH = "scout.demo.resources"
10
10
  reduced_resources_path = str(files(BASE_PATH))
11
11
  hgnc_reduced_path = str(files(BASE_PATH).joinpath("hgnc_reduced_set.txt"))
12
12
  constraint_reduced_path = str(
13
- files(BASE_PATH).joinpath("gnomad.v4.0.constraint_metrics_reduced.tsv")
13
+ files(BASE_PATH).joinpath("gnomad.v4.1.constraint_metrics_reduced.tsv")
14
14
  )
15
15
  transcripts37_reduced_path = str(files(BASE_PATH).joinpath("ensembl_transcripts_37_reduced.txt"))
16
16
  transcripts38_reduced_path = str(files(BASE_PATH).joinpath("ensembl_transcripts_38_reduced.txt"))