about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gn3/api/rqtl.py3
-rw-r--r--gn3/computations/rqtl.py17
2 files changed, 9 insertions, 11 deletions
diff --git a/gn3/api/rqtl.py b/gn3/api/rqtl.py
index e9ea1b9..eb49f8b 100644
--- a/gn3/api/rqtl.py
+++ b/gn3/api/rqtl.py
@@ -83,9 +83,10 @@ def compute(stream_output_file):
 
     if int(rqtl_kwargs["nperm"]) > 0:
         # pylint: disable=C0301
+        perm_output_file = f"PERM_{rqtl_cmd.get('output_file')}"
         (
             rqtl_output["perm_results"],
             rqtl_output["suggestive"],
             rqtl_output["significant"],
-        ) = process_perm_output(rqtl_cmd.get("output_file"))
+        ) = process_perm_output(perm_output_file)
     return jsonify(rqtl_output)
diff --git a/gn3/computations/rqtl.py b/gn3/computations/rqtl.py
index c8a828d..941a19b 100644
--- a/gn3/computations/rqtl.py
+++ b/gn3/computations/rqtl.py
@@ -1,5 +1,6 @@
 """Procedures related to R/qtl computations"""
 import os
+import csv
 from bisect import bisect
 from typing import Dict, List, Tuple, Union
 
@@ -317,14 +318,10 @@ def process_perm_output(file_name: str) -> Tuple[List, float, float]:
     outdir = os.path.join(get_tmpdir(), "gn3")
 
     with open(os.path.join(outdir, file_name),
-              "r", encoding="utf-8") as the_file:
-
-        for i, line in enumerate(the_file):
-            if i == 0:
-                # Skip header line
-                continue
-            _snp, _chromosome, _position, lod_score = line.split(",")
-            perm_results.append(float(lod_score))
-    suggestive = np.percentile(np.array(perm_results), 67)
-    significant = np.percentile(np.array(perm_results), 95)
+              "r", encoding="utf-8") as file_handler:
+        reader = csv.reader(file_handler)
+        next(reader)
+        perm_results = [float(row[1]) for row in reader]  # Extract LOD values
+        suggestive = np.percentile(np.array(perm_results), 67)
+        significant = np.percentile(np.array(perm_results), 95)
     return perm_results, suggestive, significant