about summary refs log tree commit diff
path: root/gn3/computations
diff options
context:
space:
mode:
Diffstat (limited to 'gn3/computations')
-rw-r--r--gn3/computations/ctl.py8
-rw-r--r--gn3/computations/partial_correlations.py14
-rw-r--r--gn3/computations/qtlreaper.py9
-rw-r--r--gn3/computations/rust_correlation.py19
-rw-r--r--gn3/computations/wgcna.py11
5 files changed, 34 insertions, 27 deletions
diff --git a/gn3/computations/ctl.py b/gn3/computations/ctl.py
index f881410..5c004ea 100644
--- a/gn3/computations/ctl.py
+++ b/gn3/computations/ctl.py
@@ -6,13 +6,11 @@ from gn3.computations.wgcna import dump_wgcna_data
 from gn3.computations.wgcna import compose_wgcna_cmd
 from gn3.computations.wgcna import process_image
 
-from gn3.settings import TMPDIR
 
-
-def call_ctl_script(data):
+def call_ctl_script(data, tmpdir):
     """function to call ctl script"""
-    data["imgDir"] = TMPDIR
-    temp_file_name = dump_wgcna_data(data)
+    data["imgDir"] = tmpdir
+    temp_file_name = dump_wgcna_data(data, tmpdir)
     cmd = compose_wgcna_cmd("ctl_analysis.R", temp_file_name)
 
     cmd_results = run_cmd(cmd)
diff --git a/gn3/computations/partial_correlations.py b/gn3/computations/partial_correlations.py
index 6eb6c2f..8674910 100644
--- a/gn3/computations/partial_correlations.py
+++ b/gn3/computations/partial_correlations.py
@@ -16,7 +16,6 @@ import pandas
 import pingouin
 from scipy.stats import pearsonr, spearmanr
 
-from gn3.settings import TEXTDIR
 from gn3.chancy import random_string
 from gn3.function_helpers import  compose
 from gn3.data_helpers import parse_csv_line
@@ -668,9 +667,14 @@ def check_for_common_errors(# pylint: disable=[R0914]
     return non_error_result
 
 def partial_correlations_with_target_db(# pylint: disable=[R0913, R0914, R0911 too-many-positional-arguments]
-        conn: Any, primary_trait_name: str,
-        control_trait_names: Tuple[str, ...], method: str,
-        criteria: int, target_db_name: str) -> dict:
+        conn: Any,
+        primary_trait_name: str,
+        control_trait_names: Tuple[str, ...],
+        method: str,
+        criteria: int,
+        target_db_name: str,
+        textdir: str
+) -> dict:
     """
     This is the 'ochestration' function for the partial-correlation feature.
 
@@ -755,7 +759,7 @@ def partial_correlations_with_target_db(# pylint: disable=[R0913, R0914, R0911 t
         threshold,
         conn)
 
-    database_filename = get_filename(conn, target_db_name, TEXTDIR)
+    database_filename = get_filename(conn, target_db_name, textdir)
     all_correlations = partial_corrs(
         conn, check_res["common_primary_control_samples"],
         check_res["fixed_primary_values"], check_res["fixed_control_values"],
diff --git a/gn3/computations/qtlreaper.py b/gn3/computations/qtlreaper.py
index e0d9d0b..ff83b33 100644
--- a/gn3/computations/qtlreaper.py
+++ b/gn3/computations/qtlreaper.py
@@ -7,7 +7,6 @@ import subprocess
 from typing import Union
 
 from gn3.chancy import random_string
-from gn3.settings import TMPDIR
 
 def generate_traits_file(samples, trait_values, traits_filename):
     """
@@ -41,10 +40,12 @@ def create_output_directory(path: str):
 # pylint: disable=[too-many-arguments, too-many-positional-arguments]
 def run_reaper(
         reaper_cmd: str,
-        genotype_filename: str, traits_filename: str,
+        genotype_filename: str,
+        traits_filename: str,
+        output_dir: str,
         other_options: tuple = ("--n_permutations", "1000"),
-        separate_nperm_output: bool = False,
-        output_dir: str = TMPDIR):
+        separate_nperm_output: bool = False
+):
     """
     Run the QTLReaper command to compute the QTLs.
 
diff --git a/gn3/computations/rust_correlation.py b/gn3/computations/rust_correlation.py
index d1ad3bc..359b73a 100644
--- a/gn3/computations/rust_correlation.py
+++ b/gn3/computations/rust_correlation.py
@@ -13,11 +13,10 @@ from flask import current_app
 
 from gn3.computations.qtlreaper import create_output_directory
 from gn3.chancy import random_string
-from gn3.settings import TMPDIR
 
 
-def generate_input_files(dataset: list[str],
-                         output_dir: str = TMPDIR) -> tuple[str, str]:
+def generate_input_files(
+        dataset: list[str], output_dir: str) -> tuple[str, str]:
     """function generates outputfiles and inputfiles"""
     tmp_dir = f"{output_dir}/correlation"
     create_output_directory(tmp_dir)
@@ -50,17 +49,23 @@ def generate_json_file(
 
 
 def run_correlation(
-        dataset, trait_vals: str, method: str, delimiter: str,
-        corr_type: str = "sample", top_n: int = 500):
+        dataset,
+        trait_vals: str,
+        method: str,
+        delimiter: str,
+        tmpdir: str,
+        corr_type: str = "sample",
+        top_n: int = 500
+):
     """entry function to call rust correlation"""
 
     # pylint: disable=[too-many-arguments, too-many-positional-arguments]
     correlation_command = current_app.config["CORRELATION_COMMAND"] # make arg?
-    (tmp_dir, tmp_file) = generate_input_files(dataset)
+    (tmp_dir, tmp_file) = generate_input_files(dataset, tmpdir)
     (output_file, json_file) = generate_json_file(
         tmp_dir=tmp_dir, tmp_file=tmp_file, method=method, delimiter=delimiter,
         x_vals=trait_vals)
-    command_list = [correlation_command, json_file, TMPDIR]
+    command_list = [correlation_command, json_file, tmpdir]
     try:
         subprocess.run(command_list, check=True, capture_output=True)
     except subprocess.CalledProcessError as cpe:
diff --git a/gn3/computations/wgcna.py b/gn3/computations/wgcna.py
index d1f7b32..3229a0e 100644
--- a/gn3/computations/wgcna.py
+++ b/gn3/computations/wgcna.py
@@ -7,17 +7,16 @@ import subprocess
 from pathlib import Path
 
 
-from gn3.settings import TMPDIR
 from gn3.commands import run_cmd
 
 
-def dump_wgcna_data(request_data: dict):
+def dump_wgcna_data(request_data: dict, tmpdir: str):
     """function to dump request data to json file"""
     filename = f"{str(uuid.uuid4())}.json"
 
-    temp_file_path = os.path.join(TMPDIR, filename)
+    temp_file_path = os.path.join(tmpdir, filename)
 
-    request_data["TMPDIR"] = TMPDIR
+    request_data["TMPDIR"] = tmpdir
 
     with open(temp_file_path, "w", encoding="utf-8") as output_file:
         json.dump(request_data, output_file)
@@ -65,9 +64,9 @@ def compose_wgcna_cmd(rscript_path: str, temp_file_path: str):
     return cmd
 
 
-def call_wgcna_script(rscript_path: str, request_data: dict):
+def call_wgcna_script(rscript_path: str, request_data: dict, tmpdir: str):
     """function to call wgcna script"""
-    generated_file = dump_wgcna_data(request_data)
+    generated_file = dump_wgcna_data(request_data, tmpdir)
     cmd = compose_wgcna_cmd(rscript_path, generated_file)
 
     # stream_cmd_output(request_data, cmd)  disable streaming of data