diff options
-rw-r--r-- | wqflask/wqflask/correlation/correlation_gn3_api.py | 53 | ||||
-rw-r--r-- | wqflask/wqflask/templates/demo_correlation_page.html | 23 |
2 files changed, 44 insertions, 32 deletions
diff --git a/wqflask/wqflask/correlation/correlation_gn3_api.py b/wqflask/wqflask/correlation/correlation_gn3_api.py index 75bd5561..ba606b92 100644 --- a/wqflask/wqflask/correlation/correlation_gn3_api.py +++ b/wqflask/wqflask/correlation/correlation_gn3_api.py @@ -9,9 +9,10 @@ from base.trait import create_trait from base.trait import retrieve_sample_data # gn3 lib from gn3.computations.correlations import compute_all_sample_correlation -from gn3.computations.correlations import benchmark_compute_all_sample from gn3.computations.correlations import map_shared_keys_to_values from gn3.computations.correlations import compute_all_tissue_correlation +from gn3.computations.correlations import compute_all_lit_correlation +from gn3.db_utils import database_connector GN3_CORRELATION_API = "http://127.0.0.1:8202/api/correlation" @@ -36,10 +37,6 @@ def process_samples(start_vars, sample_names, excluded_samples=None): def create_target_this_trait(start_vars): """this function creates the required trait and target dataset for correlation""" - print("creating the dataset and trait") - import time - - initial_time = time.time() this_dataset = data_set.create_dataset(dataset_name=start_vars['dataset']) target_dataset = data_set.create_dataset( @@ -48,17 +45,10 @@ def create_target_this_trait(start_vars): this_trait = create_trait(dataset=this_dataset, name=start_vars['trait_id']) - # target_dataset.get_trait_data(list(self.sample_data.keys())) # this_trait = retrieve_sample_data(this_trait, this_dataset) - print(f"Starting to creat the target dataset ") - dataset_start_time = time.time() sample_data = () - - - - time_taken = time.time() - initial_time return (this_dataset, this_trait, target_dataset, sample_data) @@ -77,6 +67,7 @@ def compute_correlation(start_vars, method="pearson"): corr_input_data = {} if corr_type == "sample": + initial_time = time.time() # corr_input_data = { # "target_dataset": target_dataset.trait_data, # "target_samplelist": target_dataset.samplelist, @@ -85,50 +76,44 @@ def compute_correlation(start_vars, method="pearson"): # "trait_id": start_vars["trait_id"] # } # } - - sample_data = process_samples(start_vars, this_dataset.group.samplelist) + sample_data = process_samples( + start_vars, this_dataset.group.samplelist) target_dataset.get_trait_data(list(sample_data.keys())) this_trait = retrieve_sample_data(this_trait, this_dataset) - + print("Creating dataset and trait took",time.time()-initial_time) this_trait_data = { "trait_sample_data": sample_data, "trait_id": start_vars["trait_id"] } - initial_time = time.time() - print("Calling sample correlation") results = map_shared_keys_to_values( target_dataset.samplelist, target_dataset.trait_data) correlation_results = compute_all_sample_correlation(corr_method=method, this_trait=this_trait_data, target_dataset=results) - print("Time taken is>>>>",time.time()-initial_time) + print("doing sample correlation took",time.time()-initial_time) # requests_url = f"{GN3_CORRELATION_API}/sample_x/{method}" return correlation_results elif corr_type == "tissue": trait_symbol_dict = this_dataset.retrieve_genes("Symbol") - time_to_retrieve = time.time() primary_tissue_data, target_tissue_data = get_tissue_correlation_input( this_trait, trait_symbol_dict) - print("Time taken to retrieve this is",time.time()-time_to_retrieve) corr_input_data = { "primary_tissue": primary_tissue_data, "target_tissues_dict": target_tissue_data } - print("Calling tissue correlation") initial_time = time.time() correlation_results = compute_all_tissue_correlation(primary_tissue_dict=corr_input_data["primary_tissue"], target_tissues_data=corr_input_data["target_tissues_dict"], corr_method=method) + print("time taken for compute tissue is",time.time()-initial_time) - time_taken = time.time() - print("Time taken is ??????",time_taken-initial_time) # requests_url = f"{GN3_CORRELATION_API}/tissue_corr/{method}" return correlation_results @@ -137,15 +122,23 @@ def compute_correlation(start_vars, method="pearson"): (this_trait_geneid, geneid_dict, species) = do_lit_correlation( this_trait, this_dataset, target_dataset) - requests_url = f"{GN3_CORRELATION_API}/lit_corr/{species}/{this_trait_geneid}" - corr_input_data = geneid_dict + conn, _cursor_object = database_connector() + initial_time = time.time() + with conn: - print("Sending this request") - corr_results = requests.post(requests_url, json=corr_input_data) + lit_corr_results = compute_all_lit_correlation( + conn=conn, trait_lists=list(geneid_dict.items()), + species=species, gene_id=this_trait_geneid) - data = corr_results.json() + return lit_corr_results + print("the time taken is",time.time()-initial_time) + # requests_url = f"{GN3_CORRELATION_API}/lit_corr/{species}/{this_trait_geneid}" + # corr_input_data = geneid_dict + # corr_results = requests.post(requests_url, json=corr_input_data) - return data + # data = corr_results.json() + + # return data def do_lit_correlation(this_trait, this_dataset, target_dataset): @@ -164,11 +157,11 @@ def get_tissue_correlation_input(this_trait, trait_symbol_dict): """Gets tissue expression values for the primary trait and target tissues values""" primary_trait_tissue_vals_dict = correlation_functions.get_trait_symbol_and_tissue_values( symbol_list=[this_trait.symbol]) - if this_trait.symbol.lower() in primary_trait_tissue_vals_dict: primary_trait_tissue_values = primary_trait_tissue_vals_dict[this_trait.symbol.lower( )] + time_to_to_fetch_all = time.time() corr_result_tissue_vals_dict = correlation_functions.get_trait_symbol_and_tissue_values( symbol_list=list(trait_symbol_dict.values())) primary_tissue_data = { diff --git a/wqflask/wqflask/templates/demo_correlation_page.html b/wqflask/wqflask/templates/demo_correlation_page.html index d2979f9d..67e3c57c 100644 --- a/wqflask/wqflask/templates/demo_correlation_page.html +++ b/wqflask/wqflask/templates/demo_correlation_page.html @@ -22,9 +22,28 @@ {% for key,value in corr_result.items()%} <div class="container-content"> <div><p>{{key}}</p></div> - {%for o_key,o_value in value.items()%} + <!-- 'p_value': 5.909407416079734e-11, 'num_overlap': 67 --> + {% if "corr_coeffient" in value %} + <div><p>{{value["corr_coeffient"]}}</p></div> + {%elif "tissue_corr" in value %} + <div><p>{{value["tissue_corr"]}}</p></div> + {%elif "lit_corr" in value %} + {{value["lit_corr"]}} + {% endif %} + {%if "tissue_number" in value %} + <div>{{value["tissue_number"]}}</div> + {%elif "num_overlap" in value %} + <div><p>{{value["num_overlap"]}}</p></div> + {% endif %} + <div><p>{{value["p_value"]}}</p></div> + + + +<!-- {{value["num_overlap"]}} + {{value["p_value"]}} --> +<!-- {%for o_key,o_value in value.items()%} <div><p>{{o_value}}</p></div> - {%endfor%} + {%endfor%} --> {% endfor %} </div> {% endfor %} |