aboutsummaryrefslogtreecommitdiff
path: root/gn3/computations/rqtl.py
diff options
context:
space:
mode:
Diffstat (limited to 'gn3/computations/rqtl.py')
-rw-r--r--gn3/computations/rqtl.py45
1 files changed, 24 insertions, 21 deletions
diff --git a/gn3/computations/rqtl.py b/gn3/computations/rqtl.py
index 7b1a35c..0433b3f 100644
--- a/gn3/computations/rqtl.py
+++ b/gn3/computations/rqtl.py
@@ -1,8 +1,9 @@
"""Procedures related rqtl computations"""
import os
-import numpy as np
from typing import Dict, List, Union
+import numpy as np
+
from flask import current_app
from gn3.commands import compose_rqtl_cmd
@@ -54,27 +55,28 @@ def process_rqtl_output(file_name: str) -> List:
marker_obs = []
# Later I should probably redo this using csv.read to avoid the
# awkwardness with removing quotes with [1:-1]
- with open(os.path.join(current_app.config.get("TMPDIR", "/tmp"), "output", file_name), "r") as the_file:
+ with open(os.path.join(current_app.config.get("TMPDIR", "/tmp"),
+ "output", file_name), "r") as the_file:
for line in the_file:
line_items = line.split(",")
if line_items[1][1:-1] == "chr" or not line_items:
# Skip header line
continue
- else:
- # Convert chr to int if possible
- the_chr: Union[int, str]
- try:
- the_chr = int(line_items[1][1:-1])
- except:
- the_chr = line_items[1][1:-1]
- this_marker = {
- "name": line_items[0][1:-1],
- "chr": the_chr,
- "cM": float(line_items[2]),
- "Mb": float(line_items[2]),
- "lod_score": float(line_items[3])
- }
- marker_obs.append(this_marker)
+
+ # Convert chr to int if possible
+ the_chr: Union[int, str]
+ try:
+ the_chr = int(line_items[1][1:-1])
+ except ValueError:
+ the_chr = line_items[1][1:-1]
+ this_marker = {
+ "name": line_items[0][1:-1],
+ "chr": the_chr,
+ "cM": float(line_items[2]),
+ "Mb": float(line_items[2]),
+ "lod_score": float(line_items[3])
+ }
+ marker_obs.append(this_marker)
return marker_obs
@@ -85,14 +87,15 @@ def process_perm_output(file_name: str):
"""
perm_results = []
- with open(os.path.join(current_app.config.get("TMPDIR", "/tmp"), "output", "PERM_" + file_name), "r") as the_file:
+ with open(os.path.join(current_app.config.get("TMPDIR", "/tmp"),
+ "output", "PERM_" + file_name), "r") as the_file:
for i, line in enumerate(the_file):
if i == 0:
# Skip header line
continue
- else:
- line_items = line.split(",")
- perm_results.append(float(line_items[1]))
+
+ line_items = line.split(",")
+ perm_results.append(float(line_items[1]))
suggestive = np.percentile(np.array(perm_results), 67)
significant = np.percentile(np.array(perm_results), 95)