about summary refs log tree commit diff
diff options
context:
space:
mode:
authorzsloan2015-09-08 19:28:15 +0000
committerzsloan2015-09-08 19:28:15 +0000
commit59fb44e4e79fd7343d64527d129b2192b739a13e (patch)
tree2736d34e26139039851217828f3c082b4b662bc5
parent99f56231b94583a64410a57b842f1d910c4e3f2e (diff)
downloadgenenetwork2-59fb44e4e79fd7343d64527d129b2192b739a13e.tar.gz
Fixed covariates with R/qtl mapping
A few minor GUI changes on trait page (button names, locations, etc)

Fixed "pressing enter to search" on index page
-rwxr-xr-xwqflask/wqflask/marker_regression/marker_regression.py7
-rwxr-xr-xwqflask/wqflask/show_trait/show_trait.py25
-rwxr-xr-xwqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js1
-rwxr-xr-xwqflask/wqflask/templates/index_page.html2
-rwxr-xr-xwqflask/wqflask/templates/show_trait_details.html12
-rwxr-xr-xwqflask/wqflask/templates/show_trait_mapping_tools.html54
-rwxr-xr-xwqflask/wqflask/views.py1
7 files changed, 65 insertions, 37 deletions
diff --git a/wqflask/wqflask/marker_regression/marker_regression.py b/wqflask/wqflask/marker_regression/marker_regression.py
index 757aeb72..b33efc1f 100755
--- a/wqflask/wqflask/marker_regression/marker_regression.py
+++ b/wqflask/wqflask/marker_regression/marker_regression.py
@@ -91,6 +91,7 @@ class MarkerRegression(object):
             else:
                 self.num_perm = start_vars['num_perm']
             self.control = start_vars['control_marker']
+            self.do_control = start_vars['do_control']
             print("StartVars:", start_vars)
             self.method = start_vars['mapmethod_rqtl_geno']
             self.model = start_vars['mapmodel_rqtl_geno']
@@ -352,7 +353,7 @@ class MarkerRegression(object):
         covar = self.create_covariates(cross_object)                                                    # Create the additive covariate matrix
 
         if self.pair_scan:
-            if(r_sum(covar)[0] > 0):                                                                    # If sum(covar) > 0 we have a covariate matrix
+            if self.do_control == "true":                                                # If sum(covar) > 0 we have a covariate matrix
                 print("Using covariate"); result_data_frame = scantwo(cross_object, pheno = "the_pheno", addcovar = covar, model=self.model, method=self.method, n_cluster = 16)
             else:
                 print("No covariates"); result_data_frame = scantwo(cross_object, pheno = "the_pheno", model=self.model, method=self.method, n_cluster = 16)
@@ -367,13 +368,13 @@ class MarkerRegression(object):
             return self.process_pair_scan_results(result_data_frame)
 
         else:
-            if(r_sum(covar)[0] > 0):
+            if self.do_control == "true":
                 print("Using covariate"); result_data_frame = scanone(cross_object, pheno = "the_pheno", addcovar = covar, model=self.model, method=self.method)
             else:
                 print("No covariates"); result_data_frame = scanone(cross_object, pheno = "the_pheno", model=self.model, method=self.method)
 
             if int(self.num_perm) > 0:                                                                   # Do permutation (if requested by user)
-                if(r_sum(covar)[0] > 0):
+                if self.do_control == "true":
                     perm_data_frame = scanone(cross_object, pheno_col = "the_pheno", addcovar = covar, n_perm = int(self.num_perm), model=self.model, method=self.method)
                 else:
                     perm_data_frame = scanone(cross_object, pheno_col = "the_pheno", n_perm = int(self.num_perm), model=self.model, method=self.method)
diff --git a/wqflask/wqflask/show_trait/show_trait.py b/wqflask/wqflask/show_trait/show_trait.py
index 871d1880..e83437ab 100755
--- a/wqflask/wqflask/show_trait/show_trait.py
+++ b/wqflask/wqflask/show_trait/show_trait.py
@@ -102,11 +102,13 @@ class ShowTrait(object):
 
         print("self.dataset.type:", self.dataset.type)
         if hasattr(self.this_trait, 'locus_chr') and self.this_trait.locus_chr != "" and self.dataset.type != "Geno" and self.dataset.type != "Publish":
-            self.nearest_marker1 = get_nearest_marker(self.this_trait, self.dataset)[0]
-            self.nearest_marker2 = get_nearest_marker(self.this_trait, self.dataset)[1]
+            self.nearest_marker = get_nearest_marker(self.this_trait, self.dataset)
+            #self.nearest_marker1 = get_nearest_marker(self.this_trait, self.dataset)[0]
+            #self.nearest_marker2 = get_nearest_marker(self.this_trait, self.dataset)[1]
         else:
-            self.nearest_marker1 = ""
-            self.nearest_marker2 = ""
+            self.nearest_marker = ""
+            #self.nearest_marker1 = ""
+            #self.nearest_marker2 = ""
 
         self.make_sample_lists(self.this_trait)
 
@@ -120,11 +122,13 @@ class ShowTrait(object):
         hddn['mapping_display_all'] = True
         hddn['suggestive'] = 0
         hddn['num_perm'] = 0
-        hddn['manhattan_plot'] = False
+        hddn['manhattan_plot'] = ""
         if hasattr(self.this_trait, 'locus_chr') and self.this_trait.locus_chr != "" and self.dataset.type != "Geno" and self.dataset.type != "Publish":
-            hddn['control_marker'] = self.nearest_marker1+","+self.nearest_marker2
+            hddn['control_marker'] = self.nearest_marker
+            #hddn['control_marker'] = self.nearest_marker1+","+self.nearest_marker2
         else:
             hddn['control_marker'] = ""
+        hddn['do_control'] = False
         hddn['maf'] = 0.01
         hddn['compare_traits'] = []
         hddn['export_data'] = ""
@@ -1231,21 +1235,24 @@ def get_nearest_marker(this_trait, this_db):
     print("this_chr:", this_chr)
     this_mb = this_trait.locus_mb
     print("this_mb:", this_mb)
+    #One option is to take flanking markers, another is to take the two (or one) closest
     query = """SELECT Geno.Name
                FROM Geno, GenoXRef, GenoFreeze
                WHERE Geno.Chr = '{}' AND
                      GenoXRef.GenoId = Geno.Id AND
                      GenoFreeze.Id = GenoXRef.GenoFreezeId AND
                      GenoFreeze.Name = '{}'
-               ORDER BY ABS( Geno.Mb - {}) LIMIT 2""".format(this_chr, this_db.group.name+"Geno", this_mb)
+               ORDER BY ABS( Geno.Mb - {}) LIMIT 1""".format(this_chr, this_db.group.name+"Geno", this_mb)
     print("query:", query)
 
     result = g.db.execute(query).fetchall()
     print("result:", result)
 
     if result == []:
-        return "", ""
+        return ""
+        #return "", ""
     else:
-        return result[0][0], result[1][0]
+        return result[0][0]
+        #return result[0][0], result[1][0]
     
     
diff --git a/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js b/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js
index 3be40a57..2f26d6cb 100755
--- a/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js
@@ -185,6 +185,7 @@
       $('input[name=num_perm]').val($('input[name=num_perm_rqtl_geno]').val());
       $('input[name=manhattan_plot]').val($('input[name=manhattan_plot_rqtl]:checked').val());
       $('input[name=control_marker]').val($('input[name=control_rqtl_geno]').val());
+      $('input[name=do_control]').val($('input[name=do_control_rqtl]:checked').val());
       form_data = $('#trait_data_form').serialize();
       console.log("form_data is:", form_data);
       return do_ajax_post(url, form_data);
diff --git a/wqflask/wqflask/templates/index_page.html b/wqflask/wqflask/templates/index_page.html
index 2bbfcd91..6c630344 100755
--- a/wqflask/wqflask/templates/index_page.html
+++ b/wqflask/wqflask/templates/index_page.html
@@ -271,7 +271,7 @@
             // Has the enter key been pressed?
             if ( (window.event ? event.keyCode : e.which) == 13) { 
                 // If it has been so, manually submit the <form>
-                document.forms[0].submit();
+                document.forms[1].submit();
             }
         }
     </script>
diff --git a/wqflask/wqflask/templates/show_trait_details.html b/wqflask/wqflask/templates/show_trait_details.html
index 3259d349..cdaa919e 100755
--- a/wqflask/wqflask/templates/show_trait_details.html
+++ b/wqflask/wqflask/templates/show_trait_details.html
@@ -38,12 +38,6 @@
     <dt>Resource Links</dt>
     {% if this_trait.dataset.type == 'ProbeSet' %}
     <dd>
-        {% if this_trait.symbol != None %}
-        <a href="http://www.genotation.org/Getd2g.pl?gene_list={{ this_trait.symbol }}" target="_blank" title="Related descriptive, genomic, clinical, functional and drug-therapy information">
-            Genotation
-        </a>
-        &nbsp;&nbsp;
-        {% endif %}
         {% if this_trait.geneid != None %}
         <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids={{ this_trait.geneid }}" target="_blank" title="Info from NCBI Entrez Gene">
             Gene
@@ -62,6 +56,12 @@
         </a>
         &nbsp;&nbsp;
         {% endif %}
+        {% if this_trait.symbol != None %}
+        <a href="http://www.genotation.org/Getd2g.pl?gene_list={{ this_trait.symbol }}" target="_blank" title="Related descriptive, genomic, clinical, functional and drug-therapy information">
+            Genotation
+        </a>
+        &nbsp;&nbsp;
+        {% endif %}
     </dd>
     {% endif %}
 </dl>
diff --git a/wqflask/wqflask/templates/show_trait_mapping_tools.html b/wqflask/wqflask/templates/show_trait_mapping_tools.html
index 7f26a252..de25f4ee 100755
--- a/wqflask/wqflask/templates/show_trait_mapping_tools.html
+++ b/wqflask/wqflask/templates/show_trait_mapping_tools.html
@@ -1,6 +1,6 @@
 <div>
     {% if (use_pylmm_rqtl and dataset.group.species != "human") or use_plink_gemma %}
-    <div class="col-xs-6">
+    <div class="col-xs-4">
         <div class="tabbable"> <!-- Only required for left/right tabs -->
         
             <ul class="nav nav-pills">
@@ -31,9 +31,9 @@
             <div class="tab-content">
                 {% if use_pylmm_rqtl and not use_plink_gemma and dataset.group.species != "human" %}
                 <div class="tab-pane active" id="pylmm">
-                    <div style="padding: 20px" class="form-horizontal">
+                    <div style="margin-top: 20px" class="form-horizontal">
                         <div class="mapping_method_fields form-group">
-                            <label for="mapping_permutations" class="col-xs-2 control-label">Permutations</label>
+                            <label for="mapping_permutations" class="col-xs-3 control-label">Permutations</label>
                             <div style="margin-left: 20px;" class="col-xs-4 controls">
                                 <input name="num_perm_pylmm" value="" type="text" class="form-control">
                             </div>
@@ -41,16 +41,26 @@
                         <div id="permutations_alert" class="alert alert-error alert-warning" style="display:none;">
                             Please be aware that permutations can take a very long time (~20 minutes for 500 permutations)
                         </div>
+<!--
                         <div class="mapping_method_fields form-group">
-                            <label for="control_for" class="col-xs-2 control-label">Control&nbsp;for</label>
+                            <label for="control_for" class="col-xs-3 control-label">Control&nbsp;for</label>
                             <div style="margin-left: 20px;" class="col-xs-4 controls">
                                 {% if dataset.type == 'ProbeSet' and this_trait.locus_chr != "" %}
-                                <input name="control_pylmm" value="{{ nearest_marker1+","+nearest_marker2 }}" type="text" />
+                                <input name="control_pylmm" value="{{ nearest_marker }}" type="text" />
                                 {% else %}
                                 <input name="control_pylmm" value="" type="text" />
                                 {% endif %}
+                                <label class="radio-inline">
+                                    <input type="radio" name="do_control_pylmm" value="true">
+                                    Yes
+                                </label>
+                                <label class="radio-inline">
+                                    <input type="radio" name="do_control_pylmm" value="false" checked="">
+                                    No
+                                </label>
                             </div>
                         </div>
+-->
 
                         <div class="mapping_method_fields form-group">
                             <label style="text-align:left;" class="col-xs-12 control-label">Manhattan Plot</label>
@@ -68,7 +78,7 @@
                         <div class="form-group">
                             <div style="padding-left:15px;" class="controls">
                                 <button id="pylmm_compute" class="btn submit_special btn-primary" title="Compute Marker Regression">
-                                    <i class="icon-ok-circle icon-white"></i> Open Mapping Tool
+                                    <i class="icon-ok-circle icon-white"></i> Compute
                                 </button>
                             </div>
                         </div>
@@ -76,29 +86,37 @@
                 </div>
                 <div class="tab-pane" id="rqtl_geno">
                     
-                    <div style="padding: 20px" class="form-horizontal">
+                    <div style="margin-top: 20px" class="form-horizontal">
                         <div class="mapping_method_fields form-group">
-                            <label for="mapping_permutations" class="col-xs-2 control-label">Permutations</label>
+                            <label for="mapping_permutations" class="col-xs-3 control-label">Permutations</label>
                             <div style="margin-left: 20px;" class="col-xs-4 controls">
-                                <input name="num_perm_rqtl_geno" value="2000" type="text" class="form-control">
+                                <input name="num_perm_rqtl_geno" value="" type="text" class="form-control">
                             </div>
                         </div>
                         <div id="permutations_alert" class="alert alert-error alert-warning" style="display:none;">
                             Please be aware that permutations can take a very long time (~20 minutes for 500 permutations)
                         </div>
                         <div class="mapping_method_fields form-group">
-                            <label for="control_for" class="col-xs-2 control-label">Control&nbsp;for</label>
+                            <label for="control_for" class="col-xs-3 control-label">Control&nbsp;for</label>
                             <div style="margin-left: 20px;" class="col-xs-4 controls">
                                 {% if dataset.type == 'ProbeSet' and this_trait.locus_chr != "" %}
-                                <input name="control_rqtl_geno" value="{{ nearest_marker1+","+nearest_marker2 }}" type="text" style="width: 160px;" class="form-control" />
+                                <input name="control_rqtl_geno" value="{{ nearest_marker }}" type="text" style="width: 160px;" class="form-control" />
                                 {% else %}
                                 <input name="control_rqtl_geno" value="" type="text" class="form-control" />
                                 {% endif %}
+                                <label class="radio-inline">
+                                    <input type="radio" name="do_control_rqtl" value="true">
+                                    Yes
+                                </label>
+                                <label class="radio-inline">
+                                    <input type="radio" name="do_control_rqtl" value="false" checked="">
+                                    No
+                                </label>
                             </div>
                         </div>
 
                         <div class="mapping_method_fields form-group">
-                            <label for="mapmethod_rqtl_geno" style="text-align:left;" class="col-xs-2 control-label">Method</label>
+                            <label for="mapmethod_rqtl_geno" style="text-align:left;" class="col-xs-3 control-label">Method</label>
                             <div class="col-xs-4 controls">
                               <select name="mapmethod_rqtl_geno" class="form-control">
                                 <option value="em">em</option>
@@ -113,7 +131,7 @@
                         </div>
 
                         <div class="mapping_method_fields form-group">
-                            <label for="mapmodel_rqtl_geno" style="text-align:left;" class="col-xs-2 control-label">Model</label>
+                            <label for="mapmodel_rqtl_geno" style="text-align:left;" class="col-xs-3 control-label">Model</label>
                             <div class="col-xs-4 controls">
                               <select name="mapmodel_rqtl_geno" class="form-control">
                                 <option value="normal">normal</option>
@@ -155,23 +173,23 @@
                         <div class="form-group">
                             <div style="padding-left:15px;" class="controls">
                                 <button id="rqtl_geno_compute" class="btn submit_special btn-primary" data-url="/marker_regression" title="Compute Marker Regression">
-                                    <i class="icon-ok-circle icon-white"></i> Open Mapping Tool
+                                    <i class="icon-ok-circle icon-white"></i> Compute
                                 </button>
                             </div>
                         </div>
                     </div>
                 </div>
                 <div class="tab-pane" id="interval_mapping">
-                    <div style="padding: 20px" class="form-horizontal">
+                    <div style="margin-top: 20px" class="form-horizontal">
                         <div class="mapping_method_fields form-group">
-                            <label for="mapping_permutations" class="col-xs-2 control-label">Permutations</label>
+                            <label for="mapping_permutations" class="col-xs-3 control-label">Permutations</label>
                             <div style="margin-left: 20px;" class="col-xs-4 controls">
                                 <input name="num_perm_reaper" value="2000" type="text" class="form-control">
                             </div>
                         </div>
 <!-- 
                         <div class="mapping_method_fields form-group">
-                            <label for="mapping_bootstraps" class="col-xs-2 control-label" title="Bootstrapping Resamples">Bootstrap</label>
+                            <label for="mapping_bootstraps" class="col-xs-3 control-label" title="Bootstrapping Resamples">Bootstrap</label>
                             <div style="margin-left: 20px;" class="col-xs-4 controls">
                                 <input name="mapping_bootstraps" value="2000" type="text" class="form-control">
                             </div>
@@ -208,7 +226,7 @@
                         <div class="form-group">
                             <div style="padding-left:15px;" class="controls">
                                 <button id="interval_mapping_compute" class="btn submit_special btn-primary" data-url="/interval_mapping" title="Compute Interval Mapping">
-                                    <i class="icon-ok-circle icon-white"></i> Open Mapping Tool
+                                    <i class="icon-ok-circle icon-white"></i> Compute
                                 </button>
                             </div>
                         </div>
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 00c8d00d..3cff9a0c 100755
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -318,6 +318,7 @@ def marker_regression_page():
         'manhattan_plot',
         'control_marker',
         'control_marker_db',
+        'do_control',
         'pair_scan',
         'mapmethod_rqtl_geno',
         'mapmodel_rqtl_geno'