aboutsummaryrefslogtreecommitdiff
path: root/gn3/computations
diff options
context:
space:
mode:
Diffstat (limited to 'gn3/computations')
-rw-r--r--gn3/computations/biweight.R15
-rw-r--r--gn3/computations/biweight.py22
-rw-r--r--gn3/computations/correlations.py10
3 files changed, 45 insertions, 2 deletions
diff --git a/gn3/computations/biweight.R b/gn3/computations/biweight.R
new file mode 100644
index 0000000..d0d8de4
--- /dev/null
+++ b/gn3/computations/biweight.R
@@ -0,0 +1,15 @@
+
+library(WGCNA)
+
+
+myArgs <- commandArgs(trailingOnly = TRUE)
+trait_vals <- as.numeric(unlist(strsplit(myArgs[1], split=" ")))
+target_vals <- as.numeric(unlist(strsplit(myArgs[2], split=" ")))
+
+BiweightMidCorrelation <- function(trait_val,target_val){
+ # results <- bicorAndPvalue(x,y)
+ return (list(c(results$bicor)[1],c(results$p)[1]))
+}
+cat(BiweightMidCorrelation(trait_vals,target_vals))
+
+
diff --git a/gn3/computations/biweight.py b/gn3/computations/biweight.py
new file mode 100644
index 0000000..c17de8e
--- /dev/null
+++ b/gn3/computations/biweight.py
@@ -0,0 +1,22 @@
+
+
+"""module contains script to call biweight mid\
+correlation in R"""
+
+import subprocess
+from typing import List
+
+
+def call_biweight_script(trait_vals: List,
+ target_vals: List,
+ path_to_script: str = "./biweight_R",
+ command: str = "Rscript"
+ ):
+ '''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)
+
+ return tuple([float(y) for y in results.split()])
diff --git a/gn3/computations/correlations.py b/gn3/computations/correlations.py
index f0ce502..89d37fc 100644
--- a/gn3/computations/correlations.py
+++ b/gn3/computations/correlations.py
@@ -7,6 +7,7 @@ from typing import Optional
from typing import Callable
import scipy.stats
+from gn3.computations.biweight import call_biweight_script
def map_shared_keys_to_values(target_sample_keys: List,
@@ -99,8 +100,13 @@ def do_bicor(x_val, y_val) -> Tuple[float, float]:
package :not packaged in guix
"""
- x_val, y_val = 0, 0
- return (x_val, y_val)
+
+ try:
+ results = call_biweight_script(x_val, y_val)
+ except Exception as error:
+ raise error
+
+ return results
def filter_shared_sample_keys(this_samplelist,