blob: 0377bdf9ac534b321b1da797a4c10f8a88a4029c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
"""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 e:
raise e
|