diff options
Diffstat (limited to 'gn3')
-rw-r--r-- | gn3/computations/biweight.py | 25 | ||||
-rw-r--r-- | gn3/computations/correlations.py | 9 | ||||
-rw-r--r-- | gn3/settings.py | 6 |
3 files changed, 37 insertions, 3 deletions
diff --git a/gn3/computations/biweight.py b/gn3/computations/biweight.py new file mode 100644 index 0000000..f5eecb2 --- /dev/null +++ b/gn3/computations/biweight.py @@ -0,0 +1,25 @@ +"""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) + + (corr_coeff, p_val) = tuple([float(y) for y in results.split()]) + + return (corr_coeff, p_val) diff --git a/gn3/computations/correlations.py b/gn3/computations/correlations.py index 0fe46ab..bc738a7 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 calculate_biweight_corr def map_shared_keys_to_values(target_sample_keys: List, @@ -99,8 +100,12 @@ 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 = calculate_biweight_corr(x_val, y_val) + return results + except Exception as error: + raise error def filter_shared_sample_keys(this_samplelist, diff --git a/gn3/settings.py b/gn3/settings.py index ecfd502..770ba3d 100644 --- a/gn3/settings.py +++ b/gn3/settings.py @@ -14,9 +14,13 @@ TMPDIR = os.environ.get("TMPDIR", tempfile.gettempdir()) RQTL_WRAPPER = "rqtl_wrapper.R" # SQL confs -SQL_URI = os.environ.get("SQL_URI", "mysql://webqtlout:webqtlout@localhost/db_webqtl") +SQL_URI = os.environ.get( + "SQL_URI", "mysql://webqtlout:webqtlout@localhost/db_webqtl") SECRET_KEY = "password" SQLALCHEMY_TRACK_MODIFICATIONS = False # gn2 results only used in fetching dataset info GN2_BASE_URL = "http://www.genenetwork.org/" + +# biweight script +BIWEIGHT_RSCRIPT = "~/genenetwork3/script/calculate_biweight.R" |