diff options
Diffstat (limited to 'gn3')
-rw-r--r-- | gn3/computations/biweight.R | 15 | ||||
-rw-r--r-- | gn3/computations/biweight.py | 22 | ||||
-rw-r--r-- | gn3/computations/correlations.py | 10 |
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, |