about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBonfaceKilz2021-05-17 09:15:04 +0300
committerGitHub2021-05-17 09:15:04 +0300
commit7884948a77ca352a16879e3c9d0bb6e6ffb7408e (patch)
treed5dd5bf9233c326166177981f458b2e33bb5b17f
parent46a96ec0b89620eed4874ada565a9643ac19a042 (diff)
parent72dbf91c9f053aa1eb5fa7fc52103b4b8ac71a58 (diff)
downloadgenenetwork3-7884948a77ca352a16879e3c9d0bb6e6ffb7408e.tar.gz
Merge pull request #11 from genenetwork/feature/minor-fixes
Feature/minor fixes
-rw-r--r--gn3/computations/correlations.py51
-rw-r--r--tests/unit/computations/test_correlation.py45
2 files changed, 30 insertions, 66 deletions
diff --git a/gn3/computations/correlations.py b/gn3/computations/correlations.py
index cd7d604..25dd26d 100644
--- a/gn3/computations/correlations.py
+++ b/gn3/computations/correlations.py
@@ -89,8 +89,6 @@ def compute_sample_r_correlation(trait_name, corr_method, trait_vals,
                                        target_values=sanitized_target_vals,
                                        corr_method=corr_method)
 
-        # xtodo check if corr_coefficient is None
-        # should use numpy.isNan scipy.isNan is deprecated
         if corr_coeffient is not None:
             return (trait_name, corr_coeffient, p_value, num_overlap)
     return None
@@ -189,27 +187,7 @@ def benchmark_compute_all_sample(this_trait,
     return corr_results
 
 
-def tissue_lit_corr_for_probe_type(corr_type: str, top_corr_results):
-    """Function that does either lit_corr_for_trait_list or tissue_corr _for_trait
-list depending on whether both dataset and target_dataset are both set to
-probet
-
-    """
-    corr_results = {"lit": 1}
-    if corr_type not in ("lit", "literature"):
-        corr_results["top_corr_results"] = top_corr_results
-        # run lit_correlation for  the given  top_corr_results
-    if corr_type == "tissue":
-        # run lit correlation the given top corr results
-        pass
-    if corr_type == "sample":
-        pass
-        # run sample r correlation for the given top  results
-
-    return corr_results
-
-
-def tissue_correlation_for_trait_list(
+def tissue_correlation_for_trait(
         primary_tissue_vals: List,
         target_tissues_values: List,
         corr_method: str,
@@ -232,7 +210,7 @@ def tissue_correlation_for_trait_list(
     tiss_corr_result = {trait_id: {
         "tissue_corr": tissue_corr_coeffient,
         "tissue_number": len(primary_tissue_vals),
-        "p_value": p_value}}
+        "tissue_p_val": p_value}}
 
     return tiss_corr_result
 
@@ -269,13 +247,13 @@ def fetch_lit_correlation_data(
             cursor.execute(query_formatter(query,
                                            *tuple(reversed(query_values))))
             lit_corr_results = cursor.fetchone()
-        lit_results = (gene_id, lit_corr_results.val)\
+        lit_results = (gene_id, lit_corr_results[1])\
             if lit_corr_results else (gene_id, 0)
         return lit_results
     return (gene_id, 0)
 
 
-def lit_correlation_for_trait_list(
+def lit_correlation_for_trait(
         conn,
         target_trait_lists: List,
         species: Optional[str] = None,
@@ -319,8 +297,6 @@ def map_to_mouse_gene_id(conn, species: Optional[str],
                          gene_id: Optional[str]) -> Optional[str]:
     """Given a species which is not mouse map the gene_id\
     to respective mouse gene id"""
-    # AK:xtodo move the code for checking nullity out of thing functions bug
-    # while method for string
     if None in (species, gene_id):
         return None
     if species == "mouse":
@@ -339,11 +315,10 @@ def map_to_mouse_gene_id(conn, species: Optional[str],
 
 def compute_all_lit_correlation(conn, trait_lists: List,
                                 species: str, gene_id):
-    """Function that acts as an abstraction for lit_correlation_for_trait_list
-
-    """
+    """Function that acts as an abstraction for
+    lit_correlation_for_trait"""
 
-    lit_results = lit_correlation_for_trait_list(
+    lit_results = lit_correlation_for_trait(
         conn=conn,
         target_trait_lists=trait_lists,
         species=species,
@@ -358,10 +333,9 @@ def compute_all_lit_correlation(conn, trait_lists: List,
 def compute_all_tissue_correlation(primary_tissue_dict: dict,
                                    target_tissues_data: dict,
                                    corr_method: str):
-    """Function acts as an abstraction for tissue_correlation_for_trait_list
-    required input are target tissue object and primary tissue trait target
-    tissues data contains the trait_symbol_dict and symbol_tissue_vals
-
+    """Function acts as an abstraction for tissue_correlation_for_trait\
+    required input are target tissue object and primary tissue trait\
+    target tissues data contains the trait_symbol_dict and symbol_tissue_vals
     """
     tissues_results = []
     primary_tissue_vals = primary_tissue_dict["tissue_values"]
@@ -372,7 +346,8 @@ def compute_all_tissue_correlation(primary_tissue_dict: dict,
     for target_tissue_obj in target_tissues_list:
         trait_id = target_tissue_obj.get("trait_id")
         target_tissue_vals = target_tissue_obj.get("tissue_values")
-        tissue_result = tissue_correlation_for_trait_list(
+
+        tissue_result = tissue_correlation_for_trait(
             primary_tissue_vals=primary_tissue_vals,
             target_tissues_values=target_tissue_vals,
             trait_id=trait_id,
@@ -425,7 +400,7 @@ def compute_tissue_correlation(primary_tissue_dict: dict,
 
     with multiprocessing.Pool(4) as pool:
         results = pool.starmap(
-            tissue_correlation_for_trait_list, processed_values)
+            tissue_correlation_for_trait, processed_values)
         for result in results:
             tissues_results.append(result)
 
diff --git a/tests/unit/computations/test_correlation.py b/tests/unit/computations/test_correlation.py
index 6414c3b..d264738 100644
--- a/tests/unit/computations/test_correlation.py
+++ b/tests/unit/computations/test_correlation.py
@@ -10,9 +10,8 @@ from gn3.computations.correlations import do_bicor
 from gn3.computations.correlations import compute_sample_r_correlation
 from gn3.computations.correlations import compute_all_sample_correlation
 from gn3.computations.correlations import filter_shared_sample_keys
-from gn3.computations.correlations import tissue_lit_corr_for_probe_type
-from gn3.computations.correlations import tissue_correlation_for_trait_list
-from gn3.computations.correlations import lit_correlation_for_trait_list
+from gn3.computations.correlations import tissue_correlation_for_trait
+from gn3.computations.correlations import lit_correlation_for_trait
 from gn3.computations.correlations import fetch_lit_correlation_data
 from gn3.computations.correlations import query_formatter
 from gn3.computations.correlations import map_to_mouse_gene_id
@@ -214,20 +213,8 @@ class TestCorrelation(TestCase):
         filter_shared_samples.assert_called_once_with(
             this_trait_data.get("trait_sample_data"), traits_dataset[0].get("trait_sample_data"))
 
-    @unittest.skip("not implemented")
-    def test_tissue_lit_corr_for_probe_type(self):
-        """Tests for doing tissue and lit correlation for  trait list\
-        if both the dataset and target dataset are probeset runs\
-        on after initial correlation has been done
-        """
-
-        results = tissue_lit_corr_for_probe_type(
-            corr_type="tissue", top_corr_results={})
-
-        self.assertEqual(results, (None, None))
-
     @mock.patch("gn3.computations.correlations.compute_corr_coeff_p_value")
-    def test_tissue_correlation_for_trait_list(self, mock_compute_corr_coeff):
+    def test_tissue_correlation_for_trait(self, mock_compute_corr_coeff):
         """Test given a primary tissue values for a trait  and and a list of\
         target tissues for traits  do the tissue correlation for them
         """
@@ -236,8 +223,8 @@ class TestCorrelation(TestCase):
         target_tissues_values = [1, 2, 3]
         mock_compute_corr_coeff.side_effect = [(0.4, 0.9), (-0.2, 0.91)]
         expected_tissue_results = {"1456_at": {"tissue_corr": 0.4,
-                                               "p_value": 0.9, "tissue_number": 3}}
-        tissue_results = tissue_correlation_for_trait_list(
+                                               "tissue_p_val": 0.9, "tissue_number": 3}}
+        tissue_results = tissue_correlation_for_trait(
             primary_tissue_values, target_tissues_values,
             corr_method="pearson", trait_id="1456_at",
             compute_corr_p_value=mock_compute_corr_coeff)
@@ -246,7 +233,7 @@ class TestCorrelation(TestCase):
 
     @mock.patch("gn3.computations.correlations.fetch_lit_correlation_data")
     @mock.patch("gn3.computations.correlations.map_to_mouse_gene_id")
-    def test_lit_correlation_for_trait_list(self, mock_mouse_gene_id, fetch_lit_data):
+    def test_lit_correlation_for_trait(self, mock_mouse_gene_id, fetch_lit_data):
         """Fetch results from  db call for lit correlation given a trait list\
         after doing correlation
         """
@@ -260,7 +247,7 @@ class TestCorrelation(TestCase):
 
         fetch_lit_data.side_effect = [(15, 9), (17, 8), (11, 12)]
 
-        lit_results = lit_correlation_for_trait_list(
+        lit_results = lit_correlation_for_trait(
             conn=conn, target_trait_lists=target_trait_lists,
             species="rat", trait_gene_id="12")
 
@@ -289,7 +276,7 @@ class TestCorrelation(TestCase):
          input trait mouse gene id and mouse gene id
         """
 
-        expected_db_results = [namedtuple("lit_coeff", "val")(x*0.1)
+        expected_db_results = [("val", x*0.1)
                                for x in range(1, 4)]
         conn = DataBase(expected_results=expected_db_results)
         expected_results = ("1", 0.1)
@@ -375,10 +362,10 @@ class TestCorrelation(TestCase):
 
         self.assertEqual(results, expected_results)
 
-    @mock.patch("gn3.computations.correlations.lit_correlation_for_trait_list")
+    @mock.patch("gn3.computations.correlations.lit_correlation_for_trait")
     def test_compute_all_lit_correlation(self, mock_lit_corr):
         """Test for compute all lit correlation which acts\
-        as an abstraction for lit_correlation_for_trait_list
+        as an abstraction for lit_correlation_for_trait
         and is used in the api/correlation/lit
         """
 
@@ -395,7 +382,7 @@ class TestCorrelation(TestCase):
 
         self.assertEqual(lit_correlation_results, expected_mocked_lit_results)
 
-    @mock.patch("gn3.computations.correlations.tissue_correlation_for_trait_list")
+    @mock.patch("gn3.computations.correlations.tissue_correlation_for_trait")
     @mock.patch("gn3.computations.correlations.process_trait_symbol_dict")
     def test_compute_all_tissue_correlation(self, process_trait_symbol, mock_tissue_corr):
         """Test for compute all tissue corelation which abstracts
@@ -417,13 +404,15 @@ class TestCorrelation(TestCase):
         target_tissue_data = {"trait_symbol_dict": target_trait_symbol,
                               "symbol_tissue_vals_dict": target_symbol_tissue_vals}
 
-        mock_tissue_corr.side_effect = [{"tissue_corr": -0.5, "p_value": 0.9, "tissue_number": 3},
-                                        {"tissue_corr": 1.11, "p_value": 0.2, "tissue_number": 3}]
+        mock_tissue_corr.side_effect = [{"tissue_corr": -0.5, "tissue_p_val": 0.9,
+                                         "tissue_number": 3},
+                                        {"tissue_corr": 1.11, "tissue_p_val": 0.2,
+                                         "tissue_number": 3}]
 
         expected_results = [{"1412_at":
-                             {"tissue_corr": 1.11, "p_value": 0.2, "tissue_number": 3}},
+                             {"tissue_corr": 1.11, "tissue_p_val": 0.2, "tissue_number": 3}},
                             {"1418702_a_at":
-                             {"tissue_corr": -0.5, "p_value": 0.9, "tissue_number": 3}}]
+                             {"tissue_corr": -0.5, "tissue_p_val": 0.9, "tissue_number": 3}}]
 
         results = compute_all_tissue_correlation(
             primary_tissue_dict=primary_tissue_dict,