From 469e5bfa39c0a5b02a57a1870a78ef992dfa7c1c Mon Sep 17 00:00:00 2001
From: bay9355 <bay9355@studium.uni-hamburg.de>
Date: Tue, 16 May 2023 14:00:00 +0200
Subject: [PATCH] added ruegen branch

---
 cami_src/cami_suite.py                        | 29 +++++++-----------
 .../seed_variation_script.py                  | 30 +++++++++----------
 2 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/cami_src/cami_suite.py b/cami_src/cami_suite.py
index ac95c15..70c1391 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 c3d41e9..0ae2af9 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
-- 
GitLab