about summary refs log tree commit diff
path: root/gn3
diff options
context:
space:
mode:
authorAlexander Kabui2021-10-29 09:49:28 +0300
committerGitHub2021-10-29 09:49:28 +0300
commit8f036415975d6e224e5e94277997329c0f1fa159 (patch)
treeabc1e4b8578fad0cc934b334edc5c573a4bd6d20 /gn3
parent0cfff99e22155b6b15e23cbeff596f5f8f08709c (diff)
downloadgenenetwork3-8f036415975d6e224e5e94277997329c0f1fa159.tar.gz
Feature/biweight reimplementation (#47)
* add biweight reimplementation with pingouin

* delete biweight scripts and tests

* add python-pingouin to guix file

* delete biweight paths

* mypy fix:pingouin mising imports

* pep8 formatting && pylint fixes
Diffstat (limited to 'gn3')
-rw-r--r--gn3/computations/biweight.py27
-rw-r--r--gn3/computations/correlations.py11
-rw-r--r--gn3/settings.py3
3 files changed, 5 insertions, 36 deletions
diff --git a/gn3/computations/biweight.py b/gn3/computations/biweight.py
deleted file mode 100644
index 7accd0c..0000000
--- a/gn3/computations/biweight.py
+++ /dev/null
@@ -1,27 +0,0 @@
-"""module contains script to call biweight midcorrelation in R"""
-import subprocess
-
-from typing import List
-from typing import Tuple
-
-from gn3.settings import BIWEIGHT_RSCRIPT
-
-
-def calculate_biweight_corr(trait_vals: List,
-                            target_vals: List,
-                            path_to_script: str = BIWEIGHT_RSCRIPT,
-                            command: str = "Rscript"
-                            ) -> Tuple[float, float]:
-    """biweight function"""
-
-    args_1 = ' '.join(str(trait_val) for trait_val in trait_vals)
-    args_2 = ' '.join(str(target_val) for target_val in target_vals)
-    cmd = [command, path_to_script] + [args_1] + [args_2]
-
-    results = subprocess.check_output(cmd, universal_newlines=True)
-    try:
-        (corr_coeff, p_val) = tuple(
-            [float(y.strip()) for y in results.split()])
-        return (corr_coeff, p_val)
-    except Exception as error:
-        raise error
diff --git a/gn3/computations/correlations.py b/gn3/computations/correlations.py
index bb13ff1..c930df0 100644
--- a/gn3/computations/correlations.py
+++ b/gn3/computations/correlations.py
@@ -8,7 +8,7 @@ from typing import Optional
 from typing import Callable
 
 import scipy.stats
-from gn3.computations.biweight import calculate_biweight_corr
+import pingouin as pg
 
 
 def map_shared_keys_to_values(target_sample_keys: List,
@@ -102,11 +102,10 @@ package :not packaged in guix
 
     """
 
-    try:
-        results = calculate_biweight_corr(x_val, y_val)
-        return results
-    except Exception as error:
-        raise error
+    results = pg.corr(x_val, y_val, method="bicor")
+    corr_coeff = results["r"].values[0]
+    p_val = results["p-val"].values[0]
+    return (corr_coeff, p_val)
 
 
 def filter_shared_sample_keys(this_samplelist,
diff --git a/gn3/settings.py b/gn3/settings.py
index d5f1d3c..e85eeff 100644
--- a/gn3/settings.py
+++ b/gn3/settings.py
@@ -22,9 +22,6 @@ SQLALCHEMY_TRACK_MODIFICATIONS = False
 
 GN2_BASE_URL = "http://www.genenetwork.org/"
 
-# biweight script
-BIWEIGHT_RSCRIPT = "~/genenetwork3/scripts/calculate_biweight.R"
-
 # wgcna script
 WGCNA_RSCRIPT = "wgcna_analysis.R"
 # qtlreaper command