aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzsloan2022-08-31 19:15:37 +0000
committerzsloan2022-08-31 19:15:37 +0000
commit0d0eed3f37ed31e51ba56773002a9802ee72f306 (patch)
treef65f148bfa1b9579a18deded736de4e7de2b1252
parent72c01fe48285725b24b76d7c6e82eee3148ad59e (diff)
downloadgenenetwork2-0d0eed3f37ed31e51ba56773002a9802ee72f306.tar.gz
Add qnorm option to mapping api
-rw-r--r--wqflask/wqflask/api/mapping.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/wqflask/wqflask/api/mapping.py b/wqflask/wqflask/api/mapping.py
index 25643b4e..42de6bb7 100644
--- a/wqflask/wqflask/api/mapping.py
+++ b/wqflask/wqflask/api/mapping.py
@@ -2,6 +2,7 @@ from base import data_set
from base.trait import create_trait, retrieve_sample_data
from wqflask.marker_regression import gemma_mapping, rqtl_mapping
+from wqflask.show_trait.show_trait import normf
def do_mapping_for_api(start_vars):
assert('db' in start_vars)
@@ -23,7 +24,8 @@ def do_mapping_for_api(start_vars):
genofile_samplelist = get_genofile_samplelist(dataset)
if (len(genofile_samplelist) > 0):
- for sample in genofile_samplelist:
+ samplelist = genofile_samplelist
+ for sample in samplelist:
in_trait_data = False
for item in this_trait.data:
if this_trait.data[item].name == sample:
@@ -35,7 +37,8 @@ def do_mapping_for_api(start_vars):
if not in_trait_data:
vals.append("x")
else:
- for sample in dataset.group.samplelist:
+ samplelist = dataset.group.samplelist
+ for sample in samplelist:
in_trait_data = False
for item in this_trait.data:
if this_trait.data[item].name == sample:
@@ -47,6 +50,20 @@ def do_mapping_for_api(start_vars):
if not in_trait_data:
vals.append("x")
+ if mapping_params['qnorm']:
+ vals_minus_x = [float(val) for val in vals if val != "x"]
+ qnorm_vals = normf(vals_minus_x)
+ qnorm_vals_with_x = []
+ counter = 0
+ for val in vals:
+ if val == "x":
+ qnorm_vals_with_x.append("x")
+ else:
+ qnorm_vals_with_x.append(qnorm_vals[counter])
+ counter += 1
+
+ vals = qnorm_vals_with_x
+
# It seems to take an empty string as default. This should probably be changed.
covariates = ""
@@ -148,6 +165,10 @@ def initialize_parameters(start_vars, dataset, this_trait):
except:
mapping_params['perm_check'] = False
+ mapping_params['qnorm'] = False
+ if 'qnorm' in start_vars:
+ mapping_params['qnorm'] = True
+
mapping_params['genofile'] = False
if 'genofile' in start_vars:
mapping_params['genofile'] = start_vars['genofile']