about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/my_pylmm/pyLMM/lmm.py37
1 files changed, 27 insertions, 10 deletions
diff --git a/wqflask/wqflask/my_pylmm/pyLMM/lmm.py b/wqflask/wqflask/my_pylmm/pyLMM/lmm.py
index 618f8332..5b06c9ae 100644
--- a/wqflask/wqflask/my_pylmm/pyLMM/lmm.py
+++ b/wqflask/wqflask/my_pylmm/pyLMM/lmm.py
@@ -856,30 +856,47 @@ def gwas_with_redis(key,species,new_code=True):
 
     def narray(t):
         info("Type is "+t)
-        v = params[t]
+        v = params.get(t)
         if v is not None:
-            v = np.array(v).astype(np.float)
-            print(v)
+            # Note input values can be array of string or float
+            v1 = [x if x != 'NA' else 'nan' for x in v]
+            v = np.array(v1).astype(np.float)
         return v
 
-    def narrayT(t):
-        m = narray(t)
+    def marray(t):
+        info("Type is "+t)
+        v = params.get(t)
+        if v is not None:
+            m = []
+            for r in v:
+              # Note input values can be array of string or float
+              r1 = [x if x != 'NA' else 'nan' for x in r]
+              m.append(np.array(r1).astype(np.float))
+            return np.array(m)
+        return np.array(v)
+
+    def marrayT(t):
+        m = marray(t)
         if m is not None:
             return m.T
         return m
     
     # We are transposing before we enter run_gwas - this should happen on the webserver
     # side (or when reading data from file)
-    print(params)
-    k = narray('kinship_matrix')
-    g = narrayT('genotype_matrix')
+    k = marray('kinship_matrix')
+    g = marrayT('genotype_matrix')
+    mprint("geno",g)
     y = narray('pheno_vector')
     n = len(y)
-    m = params['num_genotypes']
-    ps,ts = run_gwas(species,n,m,k,y,g,narray('covariate_matrix'),params['restricted_max_likelihood'],params['refit'],params['input_file_name'],new_code)
+    m = params.get('num_genotypes')
+    if m is None:
+      m = g.shape[0]
+    info("m=%d,n=%d" % (m,n))
+    ps,ts = run_gwas(species,n,m,k,y,g,narray('covariate_matrix'),params['restricted_max_likelihood'],params['refit'],params.get('input_file_name'),new_code)
         
     results_key = "pylmm:results:" + params['temp_uuid']
 
+    # fatal(results_key)
     json_results = json.dumps(dict(p_values = ps,
                                    t_stats = ts))