diff --git a/cami_src/cami_suite.py b/cami_src/cami_suite.py index ac95c15a9804d9147078540a2c557d36c6d1a7d4..70c1391e3bbe6d7fb210e1beea0bc99adafabebc 100644 --- a/cami_src/cami_suite.py +++ b/cami_src/cami_suite.py @@ -359,8 +359,8 @@ class cami(): for tool in result_sets: result_sets[tool] -= set(self.seed_lst) - params_1 = {'consens_threshold': [consens_threshold], - 'function': {'cami_v1': cami_v1.run_cami}} + #params_1 = {'consens_threshold': [consens_threshold], + # 'function': {'cami_v1': cami_v1.run_cami}} params_0 = {'function': {'union':cami_v1.make_union, 'intersection':cami_v1.make_intersection, @@ -369,22 +369,15 @@ class cami(): params_tr1 = {'hub_penalty': [0.5], 'damping_factor': [0.85], - 'confidence_level': [0.2, 0.5], + 'confidence_level': [0.2], 'ranking': ['trustrank'], 'function': {'cami_v2': cami_v2.run_cami}} params_tr2 = {'hub_penalty': [0.5], - 'damping_factor': [0.85, 0.75], - 'confidence_level': [0.2, 0.35], - 'ranking': ['trustrank'], - 'function': {'cami_v3': cami_v3.run_cami} - } - - params_tr3 = {'hub_penalty': [0.5], - 'damping_factor': [0.1, 0.25], + 'damping_factor': [0.75], 'confidence_level': [0.2], 'ranking': ['trustrank'], - 'function': {'cami_v2': cami_v2.run_cami} + 'function': {'cami_v3': cami_v3.run_cami} } # best for each disease set @@ -436,17 +429,16 @@ class cami(): # 'cami_v3':cami_v3.run_cami}} cami_setting_list = generate_param_combinations(params_0)+\ - generate_param_combinations(params_1)+\ generate_param_combinations(params_tr1)+\ - generate_param_combinations(params_tr2)+\ - generate_param_combinations(params_tr3)#+\ + generate_param_combinations(params_tr2)#+\ + # generate_param_combinations(params_tr3)#+\ # generate_param_combinations(params_tr4)#+\ # generate_param_combinations(params_tr5) #generate_param_combinations(params_b_m) camis = {} for setting in cami_setting_list: if setting[1]: - func_name = setting[0] + '_' +setting[1] + func_name = setting[0] else: func_name = setting[0] @@ -574,10 +566,11 @@ class cami(): Returns the URL of the result. """ # visualize with degradome - n_venns = len(self.result_gene_sets) + n_venn_sets = {k:self.result_gene_sets[k] for k in self.result_gene_sets if k not in ['intersection', 'union', 'first_neighbours']} + n_venns = len(n_venn_sets) if n_venns < 7: degradome_sets = {tool: self.result_gene_sets[tool] - for tool in self.result_gene_sets + for tool in n_venn_sets if len(self.result_gene_sets[tool]) > 0} url = degradome.send_request(degradome_sets) with open(f'{self.output_dir}/venn_link_{self.uid}.txt', 'w') as f: diff --git a/cami_src/evaluation_scripts/seed_variation_script.py b/cami_src/evaluation_scripts/seed_variation_script.py index c3d41e959665cae0e97484ed9e8778324a67678c..0ae2af9325b79ea1130fd23671c2e7ffafeb87ac 100644 --- a/cami_src/evaluation_scripts/seed_variation_script.py +++ b/cami_src/evaluation_scripts/seed_variation_script.py @@ -17,7 +17,7 @@ def predict_and_make_consensus(cami, vis=False): if vis: cami.use_nvenn(download=True) -def make_seedvariation(cami, n_iterations, removal_frac=0.2, vis=False, plot=False): +def make_seedvariation(cami, n_iterations, removal_frac=0.2, vis=False, plot=True): identifier = cami.uid base_seeds = cami.origin_seed_lst original_seeds = [cami.ppi_vertex2gene[seed] for seed in base_seeds] @@ -52,10 +52,10 @@ def make_seedvariation(cami, n_iterations, removal_frac=0.2, vis=False, plot=Fal for tool in prediction_tools: res_table.write(f'\t{tool}_msr_ks_pvalue') - with open(os.path.join(cami.tmp_dir, f'{used_tools[0]}_{cami.uid}_relevance_scores.tsv'), 'r') as f: - for line in f: - val_name = line.split('\t')[0] - res_table.write(f'\t{val_name}') + # with open(os.path.join(cami.tmp_dir, f'{used_tools[0]}_{cami.uid}_relevance_scores.tsv'), 'r') as f: + # for line in f: + # val_name = line.split('\t')[0] + # res_table.write(f'\t{val_name}') res_table.write('\n') #result dictionaries of the form {tool:list(value for each iteration)} @@ -138,10 +138,10 @@ def make_seedvariation(cami, n_iterations, removal_frac=0.2, vis=False, plot=Fal list(module_size_dict[pred_tool])) res_table.write(f'\t{p_val}') - with open(os.path.join(cami.tmp_dir, f'{tool}_{identifier}_relevance_scores.tsv'), 'r') as f: - for line in f: - rel_score = line.split('\t')[1].strip() - res_table.write(f'\t{rel_score}') + #with open(os.path.join(cami.tmp_dir, f'{tool}_{identifier}_relevance_scores.tsv'), 'r') as f: + # for line in f: + # rel_score = line.split('\t')[1].strip() + # res_table.write(f'\t{rel_score}') res_table.write('\n') print(f'Result tables are saved in the following locations:') @@ -168,7 +168,7 @@ def make_seedvariation(cami, n_iterations, removal_frac=0.2, vis=False, plot=Fal #PLOT # Create a figure instance #print(sys.getrecursionlimit()) - fig1, (ax1, ax5) = plt.subplots(2, 1, figsize=(20,20)) + fig1, (ax1, ax5) = plt.subplots(2, 1, figsize=(12,12)) fig1.subplots_adjust(left=0.2) # Extract Figure and Axes instance @@ -181,7 +181,7 @@ def make_seedvariation(cami, n_iterations, removal_frac=0.2, vis=False, plot=Fal for violin, tool in zip(violins1['bodies'], tools): if tool in [tw.name for tw in cami.tool_wrappers]: violin.set_facecolor('saddlebrown') - elif tool == 'first_neighbors': + elif tool == 'first_neighbours': violin.set_facecolor('orange') elif tool in ['union', 'intersection']: violin.set_facecolor('peachpuff') @@ -189,7 +189,7 @@ def make_seedvariation(cami, n_iterations, removal_frac=0.2, vis=False, plot=Fal violin.set_facecolor('red') # Add title - ax1.set_title(f'Rediscovery rate after randomly removing {nof_removals} seeds {nof_iterations} times from {identifier} seeds.', wrap=True, fontsize=14) + ax1.set_title(f'Rediscovery rate after randomly removing {nof_removals} seeds {nof_iterations} times\nfrom {identifier} seeds.', wrap=True, fontsize=14) ax1.set_xticks(list(range(1,len(tools)+1))) ax1.set_xticklabels(tool_labels) @@ -226,14 +226,14 @@ def make_seedvariation(cami, n_iterations, removal_frac=0.2, vis=False, plot=Fal for violin, tool in zip(violins3['bodies'], tools): if tool in [tw.name for tw in cami.tool_wrappers]: violin.set_facecolor('midnightblue') - elif tool == 'first_neighbors': + elif tool == 'first_neighbours': violin.set_facecolor('mediumblue') elif tool in ['union', 'intersection']: violin.set_facecolor('lightsteelblue') else: violin.set_facecolor('royalblue') - ax5.set_title(f'Ratio of number of rediscovered seeds and predicted module size after removing {nof_removals} seeds {nof_iterations} times from {identifier} seeds.', wrap=True, fontsize=14) + ax5.set_title(f'Rediscovery module size ratio after removing {nof_removals} seeds {nof_iterations} times\nfrom {identifier} seeds.', wrap=True, fontsize=14) ax5.set_xticks(list(range(1,len(tools)+1))) ax5.set_xticklabels(tool_labels) @@ -244,4 +244,4 @@ def make_seedvariation(cami, n_iterations, removal_frac=0.2, vis=False, plot=Fal fig1.savefig(f'{cami.output_dir}/00_{identifier}_seed_variation_result.png', bbox_inches="tight") plt.close(fig1) print(f'Violin plot saved under: 00_{identifier}_seed_variation_result.png') - return cami \ No newline at end of file + return cami