about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/auwerx/phewas_analysis.py34
-rw-r--r--wqflask/wqflask/templates/phewas_analysis.html12
2 files changed, 39 insertions, 7 deletions
diff --git a/wqflask/wqflask/auwerx/phewas_analysis.py b/wqflask/wqflask/auwerx/phewas_analysis.py
index a745b12d..ed2df01f 100644
--- a/wqflask/wqflask/auwerx/phewas_analysis.py
+++ b/wqflask/wqflask/auwerx/phewas_analysis.py
@@ -5,6 +5,7 @@ from numpy import *
 import scipy as sp                            # SciPy
 import rpy2.robjects as ro                    # R Objects
 import rpy2.rinterface as ri
+from pprint import pprint
 
 from base.webqtlConfig import GENERATED_IMAGE_DIR
 from utility import webqtlUtil                # Random number for the image
@@ -17,6 +18,7 @@ import itertools
 
 from base import data_set
 from base import trait as TRAIT
+from base.trait import GeneralTrait
 
 from utility import helper_functions
 from utility.tools import locate
@@ -29,6 +31,7 @@ r_load          = ro.r["load"]                # Map the head function
 r_colnames      = ro.r["colnames"]            # Map the colnames function
 r_list          = ro.r["list"]                # Map the list function
 r_c             = ro.r["c"]                   # Map the c (combine) function
+r_print         = ro.r["print"]               # Map the c (combine) function
 r_seq           = ro.r["seq"]                 # Map the rep (repeat) function
 
 class PheWAS(object):
@@ -46,8 +49,30 @@ class PheWAS(object):
     def run_analysis(self, requestform):
         print("Starting PheWAS analysis on dataset")
         genofilelocation = locate("BXD.geno", "genotype")                                  # Get the location of the BXD genotypes
-        precompfilelocation = locate("PheWAS_pval_EMMA_norm.RData", "auwerx")              # Get the location of the pre-computed EMMA results
+        precompfile = locate("PheWAS_pval_EMMA_norm.RData", "auwerx")              # Get the location of the pre-computed EMMA results
 
+        # Get user parameters, trait_id and dataset, and store/update them in self
+        self.trait_id = requestform["trait_id"]
+        self.datasetname = requestform["dataset"]
+        self.dataset = data_set.create_dataset(self.datasetname)
+
+        # Print some debug
+        print "self.trait_id:" + self.trait_id + "\n"
+        print "self.datasetname:" + self.datasetname + "\n"
+        print "self.dataset.type:" + self.dataset.type + "\n"
+
+        # GN Magic ?
+        self.this_trait = GeneralTrait(dataset=self.dataset, name = self.trait_id, get_qtl_info = False, get_sample_info=False) 
+        pprint(vars(self.this_trait))
+
+        # Set the values we need
+        self.chr = str(self.this_trait.chr);
+        self.mb = int(self.this_trait.mb);
+
+        # print some debug
+        print "location:" + self.chr + ":" + str(self.mb) + "\n"
+
+        # Load in the genotypes file *sigh* to make the markermap
         parser = genofile_parser.ConvertGenoFile(genofilelocation)
         parser.process_csv()
         snpinfo = []
@@ -71,10 +96,11 @@ class PheWAS(object):
         print("IMAGE AT:", self.results['imgloc1'] )
         # Create the PheWAS plot (The gene/probe name, chromosome and gene/probe positions should come from the user input)
         # TODO: generate the PDF in the temp folder, with a unique name
-        phewasres = self.r_PheWASManhattan("Test", precompfilelocation, phenoaligner, snpaligner, "None", 1, 25, 25, self.results['imgloc1'] )
+        phewasres = self.r_PheWASManhattan("Test", precompfile, phenoaligner, snpaligner, "None", self.chr, self.mb, self.mb, self.results['imgloc1'] )
         self.results['phewas1'] = phewasres[0]
         self.results['phewas2'] = phewasres[1]
-        self.results['phewas3'] = phewasres[2]
+        self.results['tabulardata'] = phewasres[2]
+        self.results['R_debuglog'] = phewasres[3]
 
         #self.r_PheWASManhattan(allpvalues)
         #self.r_Stop()
@@ -98,5 +124,7 @@ class PheWAS(object):
         template_vars = {}
         template_vars["results"] = self.results
         self.render_image(self.results)
+        template_vars["R_debuglog"] = self.results['R_debuglog']
+
         return(dict(template_vars))
 
diff --git a/wqflask/wqflask/templates/phewas_analysis.html b/wqflask/wqflask/templates/phewas_analysis.html
index fbe7c364..4dbc071f 100644
--- a/wqflask/wqflask/templates/phewas_analysis.html
+++ b/wqflask/wqflask/templates/phewas_analysis.html
@@ -4,17 +4,21 @@
 {% block content %} <!-- Start of body -->
 <div class="container">
   <h1>PheWAS analysis results</h1>
+  <h3>R debug log</h3>
+    {% for i in range(results['R_debuglog']|length) %}
+      {{ results['R_debuglog'][i]}}<br>
+    {%- endfor %}
   <h2>Top 5 PheWAS hits</h2>
   <table width="100%">
   <tr><th>GN ID</th><th>Phenotype</th><th>Phenosome</th><th>LOD</th></tr>
   {% for r in range(5) %}
     <tr>
-    {% for c in range(results['phewas3']|length) %}
+    {% for c in range(results['tabulardata']|length) %}
       <td>
-      {% if c == 4 %}
-      {{results['phewas3'][c][r]|float|round(2)}}
+      {% if c == 3 %}
+      {{results['tabulardata'][c][r]|float|round(2)}}
       {% else %}
-      {{results['phewas3'][c][r]}}
+      {{results['tabulardata'][c][r]}}
       {% endif %}
       </td>
     {%- endfor %}