11import os , io , sys
2+ import re
23import sqlite3
34import pathlib
45import zipfile
2930# | ENSG00000261456.5 | rs11252546 | chr10_58487_T_C_b38 | T | C | -0.0335449590056556 |
3031
3132
32- pmid = 26258848
33+ pmid = 32913098
34+ ds_name = '- sQTL - Enet -'
3335
34- dbs_location = '/Users/lg10/Workspace/datafiles/OmicsPred/GTEx_V8/elastic_net_models/'
35- scores_root_dir = '/Users/lg10/Workspace/datafiles/OmicsPred/GTEx_V8/genetic_scores'
36+ # Enet eQTL
37+ # dbs_location = '/Users/lg10/Workspace/datafiles/OmicsPred/GTEx_V8/elastic_net_models/'
38+ # scores_root_dir = '/Users/lg10/Workspace/datafiles/OmicsPred/GTEx_V8/genetic_scores'
3639
40+ # Enet sQTL
41+ dbs_location = '/Users/lg10/Workspace/datafiles/OmicsPred/GTEx_V8/elastic_net_models_splicing/'
42+ scores_root_dir = '/Users/lg10/Workspace/datafiles/OmicsPred/GTEx_V8/genetic_scores_enet_splicing'
43+
44+ # datasets_list = {
45+ # 'Adipose_Subcutaneous': {'tissue_id': 'UBERON_0002190', 'db':'gtex_splicing_v8_eur_Adipose_Subcutaneous_signif.db'}
46+ # }
3747
3848datasets_list = {
39- 'Adipose_Subcutaneous' : {'tissue_id' : 'UBERON_0002190' , 'db' :'en_Adipose_Subcutaneous .db' },
40- 'Adipose_Visceral_Omentum' : {'tissue_id' : 'UBERON_0010414' , 'db' :'en_Adipose_Visceral_Omentum .db' },
41- 'Adrenal_Gland' : {'tissue_id' : 'UBERON_0002369' , 'db' :'en_Adrenal_Gland .db' },
42- 'Artery_Aorta' : {'tissue_id' : 'UBERON_0001496' , 'db' :'en_Artery_Aorta .db' },
43- 'Artery_Coronary' : {'tissue_id' : 'UBERON_0001621' , 'db' :'en_Artery_Coronary .db' },
44- 'Artery_Tibial' : {'tissue_id' : 'UBERON_0007610' , 'db' :'en_Artery_Tibial .db' },
45- 'Brain_Amygdala' : {'tissue_id' : 'UBERON_0001876' , 'db' :'en_Brain_Amygdala .db' },
46- 'Brain_Anterior_cingulate_cortex_BA24' : {'tissue_id' : 'UBERON_0009835' , 'db' :'en_Brain_Anterior_cingulate_cortex_BA24 .db' },
47- 'Brain_Caudate_basal_ganglia' : {'tissue_id' : 'UBERON_0001873' , 'db' :'en_Brain_Caudate_basal_ganglia .db' },
48- 'Brain_Cerebellar_Hemisphere' : {'tissue_id' : 'UBERON_0002245' , 'db' :'en_Brain_Cerebellar_Hemisphere .db' },
49- 'Brain_Cerebellum' : {'tissue_id' : 'UBERON_0002037' , 'db' :'en_Brain_Cerebellum .db' },
50- 'Brain_Cortex' : {'tissue_id' : 'UBERON_0001870' , 'db' :'en_Brain_Cortex .db' },
51- 'Brain_Frontal_Cortex_BA9' : {'tissue_id' : 'UBERON_0009834' , 'db' :'en_Brain_Frontal_Cortex_BA9 .db' },
52- 'Brain_Hippocampus' : {'tissue_id' : 'UBERON_0001954' , 'db' :'en_Brain_Hippocampus .db' },
53- 'Brain_Hypothalamus' : {'tissue_id' : 'UBERON_0001898' , 'db' :'en_Brain_Hypothalamus .db' },
54- 'Brain_Nucleus_accumbens_basal_ganglia' : {'tissue_id' : 'UBERON_0001882' , 'db' :'en_Brain_Nucleus_accumbens_basal_ganglia .db' },
55- 'Brain_Putamen_basal_ganglia' : {'tissue_id' : 'UBERON_0001874' , 'db' :'en_Brain_Putamen_basal_ganglia .db' },
56- 'Brain_Spinal_cord_cervical_c-1' : {'tissue_id' : 'UBERON_0006469' , 'db' :'en_Brain_Spinal_cord_cervical_c-1 .db' },
57- 'Brain_Substantia_nigra' : {'tissue_id' : 'UBERON_0002038' , 'db' :'en_Brain_Substantia_nigra .db' },
58- 'Breast_Mammary_Tissue' : {'tissue_id' : 'UBERON_0008367' , 'db' :'en_Breast_Mammary_Tissue .db' },
59- 'Cells_Cultured_fibroblasts' : {'tissue_id' : 'EFO_0002009' , 'db' :'en_Cells_Cultured_fibroblasts .db' },
60- 'Cells_EBV-transformed_lymphocytes' : {'tissue_id' : 'EFO_0000572' , 'db' :'en_Cells_EBV-transformed_lymphocytes .db' },
61- 'Colon_Sigmoid' : {'tissue_id' : 'UBERON_0001159' , 'db' :'en_Colon_Sigmoid .db' },
62- 'Colon_Transverse' : {'tissue_id' : 'UBERON_0001157' , 'db' :'en_Colon_Transverse .db' },
63- 'Esophagus_Gastroesophageal_Junction' : {'tissue_id' : 'UBERON_0004550' , 'db' :'en_Esophagus_Gastroesophageal_Junction .db' },
64- 'Esophagus_Mucosa' : {'tissue_id' : 'UBERON_0006920' , 'db' :'en_Esophagus_Mucosa .db' },
65- 'Esophagus_Muscularis' : {'tissue_id' : 'UBERON_0004648' , 'db' :'en_Esophagus_Muscularis .db' },
66- 'Heart_Atrial_Appendage' : {'tissue_id' : 'UBERON_0006631' , 'db' :'en_Heart_Atrial_Appendage .db' },
67- 'Heart_Left_Ventricle' : {'tissue_id' : 'UBERON_0006566' , 'db' :'en_Heart_Left_Ventricle .db' },
68- 'Kidney_Cortex' : {'tissue_id' : 'UBERON_0001225' , 'db' :'en_Kidney_Cortex .db' },
69- 'Liver' : {'tissue_id' : 'UBERON_0001114' , 'db' :'en_Liver .db' },
70- 'Lung' : {'tissue_id' : 'UBERON_0008952' , 'db' :'en_Lung .db' },
71- 'Minor_Salivary_Gland' : {'tissue_id' : 'UBERON_0006330' , 'db' :'en_Minor_Salivary_Gland .db' },
72- 'Muscle_Skeletal' : {'tissue_id' : 'UBERON_0011907' , 'db' :'en_Muscle_Skeletal .db' },
73- 'Nerve_Tibial' : {'tissue_id' : 'UBERON_0001323' , 'db' :'en_Nerve_Tibial .db' },
74- 'Ovary' : {'tissue_id' : 'UBERON_0000992' , 'db' :'en_Ovary .db' },
75- 'Pancreas' : {'tissue_id' : 'UBERON_0001150' , 'db' :'en_Pancreas .db' },
76- 'Pituitary' : {'tissue_id' : 'UBERON_0000007' , 'db' :'en_Pituitary .db' },
77- 'Prostate' : {'tissue_id' : 'UBERON_0002367' , 'db' :'en_Prostate .db' },
78- 'Skin_Not_Sun_Exposed_Suprapubic' : {'tissue_id' : 'UBERON_0036149' , 'db' :'en_Skin_Not_Sun_Exposed_Suprapubic .db' },
79- 'Skin_Sun_Exposed_Lower_leg' : {'tissue_id' : 'UBERON_0004264' , 'db' :'en_Skin_Sun_Exposed_Lower_leg .db' },
80- 'Small_Intestine_Terminal_Ileum' : {'tissue_id' : 'UBERON_0001211' , 'db' :'en_Small_Intestine_Terminal_Ileum .db' },
81- 'Spleen' : {'tissue_id' : 'UBERON_0002106' , 'db' :'en_Spleen .db' },
82- 'Stomach' : {'tissue_id' : 'UBERON_0000945' , 'db' :'en_Stomach .db' },
83- 'Testis' : {'tissue_id' : 'UBERON_0000473' , 'db' :'en_Testis .db' },
84- 'Thyroid' : {'tissue_id' : 'UBERON_0002046' , 'db' :'en_Thyroid .db' },
85- 'Uterus' : {'tissue_id' : 'UBERON_0000995' , 'db' :'en_Uterus .db' },
86- 'Vagina' : {'tissue_id' : 'UBERON_0000996' , 'db' :'en_Vagina .db' },
87- 'Whole_Blood' : {'tissue_id' : 'UBERON_0013756' , 'db' :'en_Whole_Blood .db' }
49+ 'Adipose_Subcutaneous' : {'tissue_id' : 'UBERON_0002190' , 'db' :'gtex_splicing_v8_eur_Adipose_Subcutaneous_signif .db' },
50+ 'Adipose_Visceral_Omentum' : {'tissue_id' : 'UBERON_0010414' , 'db' :'gtex_splicing_v8_eur_Adipose_Visceral_Omentum_signif .db' },
51+ 'Adrenal_Gland' : {'tissue_id' : 'UBERON_0002369' , 'db' :'gtex_splicing_v8_eur_Adrenal_Gland_signif .db' },
52+ 'Artery_Aorta' : {'tissue_id' : 'UBERON_0001496' , 'db' :'gtex_splicing_v8_eur_Artery_Aorta_signif .db' },
53+ 'Artery_Coronary' : {'tissue_id' : 'UBERON_0001621' , 'db' :'gtex_splicing_v8_eur_Artery_Coronary_signif .db' },
54+ 'Artery_Tibial' : {'tissue_id' : 'UBERON_0007610' , 'db' :'gtex_splicing_v8_eur_Artery_Tibial_signif .db' },
55+ 'Brain_Amygdala' : {'tissue_id' : 'UBERON_0001876' , 'db' :'gtex_splicing_v8_eur_Brain_Amygdala_signif .db' },
56+ 'Brain_Anterior_cingulate_cortex_BA24' : {'tissue_id' : 'UBERON_0009835' , 'db' :'gtex_splicing_v8_eur_Brain_Anterior_cingulate_cortex_BA24_signif .db' },
57+ 'Brain_Caudate_basal_ganglia' : {'tissue_id' : 'UBERON_0001873' , 'db' :'gtex_splicing_v8_eur_Brain_Caudate_basal_ganglia_signif .db' },
58+ 'Brain_Cerebellar_Hemisphere' : {'tissue_id' : 'UBERON_0002245' , 'db' :'gtex_splicing_v8_eur_Brain_Cerebellar_Hemisphere_signif .db' },
59+ 'Brain_Cerebellum' : {'tissue_id' : 'UBERON_0002037' , 'db' :'gtex_splicing_v8_eur_Brain_Cerebellum_signif .db' },
60+ 'Brain_Cortex' : {'tissue_id' : 'UBERON_0001870' , 'db' :'gtex_splicing_v8_eur_Brain_Cortex_signif .db' },
61+ 'Brain_Frontal_Cortex_BA9' : {'tissue_id' : 'UBERON_0009834' , 'db' :'gtex_splicing_v8_eur_Brain_Frontal_Cortex_BA9_signif .db' },
62+ 'Brain_Hippocampus' : {'tissue_id' : 'UBERON_0001954' , 'db' :'gtex_splicing_v8_eur_Brain_Hippocampus_signif .db' },
63+ 'Brain_Hypothalamus' : {'tissue_id' : 'UBERON_0001898' , 'db' :'gtex_splicing_v8_eur_Brain_Hypothalamus_signif .db' },
64+ 'Brain_Nucleus_accumbens_basal_ganglia' : {'tissue_id' : 'UBERON_0001882' , 'db' :'gtex_splicing_v8_eur_Brain_Nucleus_accumbens_basal_ganglia_signif .db' },
65+ 'Brain_Putamen_basal_ganglia' : {'tissue_id' : 'UBERON_0001874' , 'db' :'gtex_splicing_v8_eur_Brain_Putamen_basal_ganglia_signif .db' },
66+ 'Brain_Spinal_cord_cervical_c-1' : {'tissue_id' : 'UBERON_0006469' , 'db' :'gtex_splicing_v8_eur_Brain_Spinal_cord_cervical_c-1_signif .db' },
67+ 'Brain_Substantia_nigra' : {'tissue_id' : 'UBERON_0002038' , 'db' :'gtex_splicing_v8_eur_Brain_Substantia_nigra_signif .db' },
68+ 'Breast_Mammary_Tissue' : {'tissue_id' : 'UBERON_0008367' , 'db' :'gtex_splicing_v8_eur_Breast_Mammary_Tissue_signif .db' },
69+ 'Cells_Cultured_fibroblasts' : {'tissue_id' : 'EFO_0002009' , 'db' :'gtex_splicing_v8_eur_Cells_Cultured_fibroblasts_signif .db' },
70+ 'Cells_EBV-transformed_lymphocytes' : {'tissue_id' : 'EFO_0000572' , 'db' :'gtex_splicing_v8_eur_Cells_EBV-transformed_lymphocytes_signif .db' },
71+ 'Colon_Sigmoid' : {'tissue_id' : 'UBERON_0001159' , 'db' :'gtex_splicing_v8_eur_Colon_Sigmoid_signif .db' },
72+ 'Colon_Transverse' : {'tissue_id' : 'UBERON_0001157' , 'db' :'gtex_splicing_v8_eur_Colon_Transverse_signif .db' },
73+ 'Esophagus_Gastroesophageal_Junction' : {'tissue_id' : 'UBERON_0004550' , 'db' :'gtex_splicing_v8_eur_Esophagus_Gastroesophageal_Junction_signif .db' },
74+ 'Esophagus_Mucosa' : {'tissue_id' : 'UBERON_0006920' , 'db' :'gtex_splicing_v8_eur_Esophagus_Mucosa_signif .db' },
75+ 'Esophagus_Muscularis' : {'tissue_id' : 'UBERON_0004648' , 'db' :'gtex_splicing_v8_eur_Esophagus_Muscularis_signif .db' },
76+ 'Heart_Atrial_Appendage' : {'tissue_id' : 'UBERON_0006631' , 'db' :'gtex_splicing_v8_eur_Heart_Atrial_Appendage_signif .db' },
77+ 'Heart_Left_Ventricle' : {'tissue_id' : 'UBERON_0006566' , 'db' :'gtex_splicing_v8_eur_Heart_Left_Ventricle_signif .db' },
78+ 'Kidney_Cortex' : {'tissue_id' : 'UBERON_0001225' , 'db' :'gtex_splicing_v8_eur_Kidney_Cortex_signif .db' },
79+ 'Liver' : {'tissue_id' : 'UBERON_0001114' , 'db' :'gtex_splicing_v8_eur_Liver_signif .db' },
80+ 'Lung' : {'tissue_id' : 'UBERON_0008952' , 'db' :'gtex_splicing_v8_eur_Lung_signif .db' },
81+ 'Minor_Salivary_Gland' : {'tissue_id' : 'UBERON_0006330' , 'db' :'gtex_splicing_v8_eur_Minor_Salivary_Gland_signif .db' },
82+ 'Muscle_Skeletal' : {'tissue_id' : 'UBERON_0011907' , 'db' :'gtex_splicing_v8_eur_Muscle_Skeletal_signif .db' },
83+ 'Nerve_Tibial' : {'tissue_id' : 'UBERON_0001323' , 'db' :'gtex_splicing_v8_eur_Nerve_Tibial_signif .db' },
84+ 'Ovary' : {'tissue_id' : 'UBERON_0000992' , 'db' :'gtex_splicing_v8_eur_Ovary_signif .db' },
85+ 'Pancreas' : {'tissue_id' : 'UBERON_0001150' , 'db' :'gtex_splicing_v8_eur_Pancreas_signif .db' },
86+ 'Pituitary' : {'tissue_id' : 'UBERON_0000007' , 'db' :'gtex_splicing_v8_eur_Pituitary_signif .db' },
87+ 'Prostate' : {'tissue_id' : 'UBERON_0002367' , 'db' :'gtex_splicing_v8_eur_Prostate_signif .db' },
88+ 'Skin_Not_Sun_Exposed_Suprapubic' : {'tissue_id' : 'UBERON_0036149' , 'db' :'gtex_splicing_v8_eur_Skin_Not_Sun_Exposed_Suprapubic_signif .db' },
89+ 'Skin_Sun_Exposed_Lower_leg' : {'tissue_id' : 'UBERON_0004264' , 'db' :'gtex_splicing_v8_eur_Skin_Sun_Exposed_Lower_leg_signif .db' },
90+ 'Small_Intestine_Terminal_Ileum' : {'tissue_id' : 'UBERON_0001211' , 'db' :'gtex_splicing_v8_eur_Small_Intestine_Terminal_Ileum_signif .db' },
91+ 'Spleen' : {'tissue_id' : 'UBERON_0002106' , 'db' :'gtex_splicing_v8_eur_Spleen_signif .db' },
92+ 'Stomach' : {'tissue_id' : 'UBERON_0000945' , 'db' :'gtex_splicing_v8_eur_Stomach_signif .db' },
93+ 'Testis' : {'tissue_id' : 'UBERON_0000473' , 'db' :'gtex_splicing_v8_eur_Testis_signif .db' },
94+ 'Thyroid' : {'tissue_id' : 'UBERON_0002046' , 'db' :'gtex_splicing_v8_eur_Thyroid_signif .db' },
95+ 'Uterus' : {'tissue_id' : 'UBERON_0000995' , 'db' :'gtex_splicing_v8_eur_Uterus_signif .db' },
96+ 'Vagina' : {'tissue_id' : 'UBERON_0000996' , 'db' :'gtex_splicing_v8_eur_Vagina_signif .db' },
97+ 'Whole_Blood' : {'tissue_id' : 'UBERON_0013756' , 'db' :'gtex_splicing_v8_eur_Whole_Blood_signif .db' }
8898}
8999
90100
91- def get_dataset (pmid :int , tissue_id :str ) -> Dataset :
101+ def get_dataset (pmid :int , tissue_id :str , name : str ) -> Dataset :
92102 ''' Fetch the corresponding Dataset from the database '''
93103 try :
94- dataset = Dataset .objects .get (publication__pmid = pmid , tissue__id = tissue_id )
104+ dataset = Dataset .objects .get (publication__pmid = pmid , tissue__id = tissue_id , name__icontains = name )
95105 return dataset
96106 except Dataset .DoesNotExist :
97107 print (f"Can't find the dataset with PMID:{ pmid } and Tissue ID '{ tissue_id } '" )
98108 exit (0 )
99109
100110
111+ def get_score_molecular_trait (score :Score ) -> str :
112+ ''' Extract the molecular trait ID associated with the score '''
113+ # intron_1_999787_999866_Vagina_GTExV8
114+ score_name = score .name
115+ if score_name .startswith ('intron_' ):
116+ intron = re .match (r'^(intron_\w+_\d+_\d+)' ,score_name )
117+ return intron .group (1 )
118+ else :
119+ return score .trait_reported_id
120+
121+
101122def get_genetic_score_data (sqlite_cursor :sqlite3 .Cursor ,reported_trait_id :str ) -> sqlite3 .Cursor :
102123 ''' Build and execute the SQL query to fetch the genetic score variant information from the SQLite database. '''
124+ # print(f"SELECT rsid, ref_allele, eff_allele, weight FROM weights WHERE gene='{reported_trait_id}';")
103125 qcursor = sqlite_cursor .execute (f"SELECT rsid, ref_allele, eff_allele, weight FROM weights WHERE gene='{ reported_trait_id } ';" )
104126 return qcursor
105127
@@ -201,7 +223,7 @@ def run():
201223
202224 # 2 - Fetch scores and dataset
203225 print (" - Get dataset" )
204- dataset = get_dataset (pmid ,datasets_list [dataset_label ]['tissue_id' ])
226+ dataset = get_dataset (pmid ,datasets_list [dataset_label ]['tissue_id' ], ds_name )
205227
206228 sqlite_file = dbs_location + datasets_list [dataset_label ]['db' ]
207229 sqlite_connection = sqlite3 .connect (sqlite_file )
@@ -216,7 +238,8 @@ def run():
216238 for score in scores :
217239 score_id = score .id
218240 genetic_scores [score_id ] = []
219- score_trait = score .trait_reported_id
241+ # score_trait = score.trait_reported_id
242+ score_trait = get_score_molecular_trait (score )
220243 scoring_file_name = f'{ dataset_dir } /{ score_id } .txt'
221244 # Scoring file
222245 file = open (scoring_file_name ,'w' )
0 commit comments