about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/correlation_matrix/show_corr_matrix.py9
-rw-r--r--wqflask/wqflask/marker_regression/marker_regression.py1
-rw-r--r--wqflask/wqflask/marker_regression/marker_regression_gn1.py2
-rw-r--r--wqflask/wqflask/marker_regression/qtlreaper_mapping.py17
-rw-r--r--wqflask/wqflask/templates/correlation_matrix.html3
-rw-r--r--wqflask/wqflask/templates/show_trait_calculate_correlations.html106
-rw-r--r--wqflask/wqflask/templates/show_trait_mapping_tools.html98
-rw-r--r--wqflask/wqflask/views.py2
8 files changed, 125 insertions, 113 deletions
diff --git a/wqflask/wqflask/correlation_matrix/show_corr_matrix.py b/wqflask/wqflask/correlation_matrix/show_corr_matrix.py
index b34beb7b..077386a3 100644
--- a/wqflask/wqflask/correlation_matrix/show_corr_matrix.py
+++ b/wqflask/wqflask/correlation_matrix/show_corr_matrix.py
@@ -173,9 +173,12 @@ class CorrelationMatrix(object):
             for sample in self.all_sample_list:
                 groups.append(1)
 
-            pca = self.calculate_pca(range(len(self.traits)), corr_eigen_value, corr_eigen_vectors)
-
-            self.loadings_array = self.process_loadings()
+            try:
+                self.pca_works = "True"
+                pca = self.calculate_pca(range(len(self.traits)), corr_eigen_value, corr_eigen_vectors)
+                self.loadings_array = self.process_loadings()
+            except:
+                self.pca_works = "False"
 
             self.js_data = dict(traits = [trait.name for trait in self.traits],
                                 groups = groups,
diff --git a/wqflask/wqflask/marker_regression/marker_regression.py b/wqflask/wqflask/marker_regression/marker_regression.py
index 087b95b4..db4f8f46 100644
--- a/wqflask/wqflask/marker_regression/marker_regression.py
+++ b/wqflask/wqflask/marker_regression/marker_regression.py
@@ -228,6 +228,7 @@ class MarkerRegression(object):
             results, self.json_data, self.perm_output, self.suggestive, self.significant, self.bootstrap_results = qtlreaper_mapping.gen_reaper_results(self.this_trait,
                                                                                                                                                         self.dataset,
                                                                                                                                                         self.samples,
+                                                                                                                                                        self.vals,
                                                                                                                                                         self.json_data,
                                                                                                                                                         self.num_perm,
                                                                                                                                                         self.bootCheck,
diff --git a/wqflask/wqflask/marker_regression/marker_regression_gn1.py b/wqflask/wqflask/marker_regression/marker_regression_gn1.py
index 211cf187..66884b0c 100644
--- a/wqflask/wqflask/marker_regression/marker_regression_gn1.py
+++ b/wqflask/wqflask/marker_regression/marker_regression_gn1.py
@@ -1204,6 +1204,8 @@ class MarkerRegression(object):
         else:
             if self.mapping_method == "gemma" or self.mapping_method == "gemma_bimbam":
                 string2 = 'Using GEMMA mapping method with no control for other QTLs.'
+                if self.covariates != "":
+                    string3 = 'Using following traits as covariates: ' + self.covariates
             elif self.mapping_method == "rqtl_plink" or self.mapping_method == "rqtl_geno":
                 string2 = 'Using R/qtl mapping method with no control for other QTLs.'
             elif self.mapping_method == "plink":
diff --git a/wqflask/wqflask/marker_regression/qtlreaper_mapping.py b/wqflask/wqflask/marker_regression/qtlreaper_mapping.py
index 50228b5e..6b58190f 100644
--- a/wqflask/wqflask/marker_regression/qtlreaper_mapping.py
+++ b/wqflask/wqflask/marker_regression/qtlreaper_mapping.py
@@ -1,17 +1,20 @@
-def gen_reaper_results(this_trait, dataset, samples_before, json_data, num_perm, bootCheck, num_bootstrap, do_control, control_marker, manhattan_plot):
+import utility.logger
+logger = utility.logger.getLogger(__name__ )
+
+def gen_reaper_results(this_trait, dataset, samples_before, trait_vals, json_data, num_perm, bootCheck, num_bootstrap, do_control, control_marker, manhattan_plot):
     genotype = dataset.group.read_genotype_file()
 
     if manhattan_plot != True:
         genotype = genotype.addinterval()
 
-    samples, values, variances, sample_aliases = this_trait.export_informative()
-
     trimmed_samples = []
     trimmed_values = []
-    for i in range(0, len(samples)):
-        if this_trait.data[samples[i]].name in samples_before:
-            trimmed_samples.append(samples[i])
-            trimmed_values.append(values[i])
+    for i in range(0, len(samples_before)):
+        try:
+            trimmed_values.append(float(trait_vals[i]))
+            trimmed_samples.append(samples_before[i])
+        except:
+            pass
 
     perm_output = []
     bootstrap_results = []
diff --git a/wqflask/wqflask/templates/correlation_matrix.html b/wqflask/wqflask/templates/correlation_matrix.html
index ab793d58..d27788a8 100644
--- a/wqflask/wqflask/templates/correlation_matrix.html
+++ b/wqflask/wqflask/templates/correlation_matrix.html
@@ -61,6 +61,7 @@
 <br>
 <button class="btn btn-default" id="short_labels">Short Labels</button>
 <button class="btn btn-default" id="long_labels">Long Labels</button>
+{% if pca_works == "True" %}
 <br>
 <br>
 <h2>Factor Loadings Plot</h2>
@@ -93,7 +94,7 @@
   </tbody>
 </table>
 </div>
-
+{% endif %}
 {% endblock %}
 
 {% block js %}
diff --git a/wqflask/wqflask/templates/show_trait_calculate_correlations.html b/wqflask/wqflask/templates/show_trait_calculate_correlations.html
index c5f815ce..ef233333 100644
--- a/wqflask/wqflask/templates/show_trait_calculate_correlations.html
+++ b/wqflask/wqflask/templates/show_trait_calculate_correlations.html
@@ -1,9 +1,10 @@
 <div>
+  <div class="col-xs-7">
     <div style="padding: 20px" class="form-horizontal">
         
         <div class="form-group">
-            <label for="corr_type" class="col-xs-1 control-label">Method</label>
-            <div class="col-xs-2 controls">
+            <label for="corr_type" class="col-xs-2 control-label">Method</label>
+            <div class="col-xs-3 controls">
                 <select name="corr_type" class="form-control">
                     <option value="sample">Sample r</option>
                     <option value="lit">Literature r</option>
@@ -13,8 +14,8 @@
         </div>
         
         <div class="form-group">
-            <label for="corr_dataset" class="col-xs-1 control-label">Database</label>
-            <div class="col-xs-6 controls">
+            <label for="corr_dataset" class="col-xs-2 control-label">Database</label>
+            <div class="col-xs-10 controls">
                 <select name="corr_dataset" class="form-control">
                     {% for tissue in corr_tools.dataset_menu %}
                         {% if tissue.tissue %}
@@ -37,8 +38,8 @@
         </div>
         
         <div class="form-group">
-            <label for="corr_return_results" class="col-xs-1 control-label">Return</label>
-            <div class="col-xs-2 controls">
+            <label for="corr_return_results" class="col-xs-2 control-label">Return</label>
+            <div class="col-xs-3 controls">
                 <select name="corr_return_results" class="form-control">
                     {% for return_result in corr_tools.return_results_menu %}
                         <option value="{{ return_result }}" 
@@ -53,8 +54,8 @@
         </div>
         
         <div class="form-group">
-            <label for="corr_samples_group" class="col-xs-1 control-label">Samples</label>
-            <div class="col-xs-2 controls">
+            <label for="corr_samples_group" class="col-xs-2 control-label">Samples</label>
+            <div class="col-xs-3 controls">
                 <select name="corr_samples_group" class="form-control">
                     {% for group, pretty_group in sample_group_types.items() %}
                         <option value="{{ group }}">{{ pretty_group }}</option>
@@ -64,8 +65,8 @@
         </div>
             
         <div id="corr_sample_method" class="form-group">
-            <label for="corr_sample_method" class="col-xs-1 control-label">Type</label>
-            <div class="col-xs-2 controls">
+            <label for="corr_sample_method" class="col-xs-2 control-label">Type</label>
+            <div class="col-xs-3 controls">
                 <select name="corr_sample_method" class="form-control">
                     <option value="pearson">Pearson</option>
                     <option value="spearman">Spearman Rank</option>
@@ -73,14 +74,14 @@
             </div>
         </div>
         <div class="form-group">
-            <label class="col-xs-1 control-label">Min Expr</label>
-            <div class="col-xs-2 controls">
+            <label class="col-xs-2 control-label">Min Expr</label>
+            <div class="col-xs-3 controls">
                 <input name="min_expr" value="" type="text" class="form-control" style="width: 50px;">
             </div>
         </div>
         <div class="form-group">
-            <label class="col-xs-1 control-label">Location</label>
-            <div class="col-xs-4 controls">
+            <label class="col-xs-2 control-label">Location</label>
+            <div class="col-xs-5 controls">
                 <span>
                 Chr: <input name="loc_chr" value="" type="text" class="form-control" style="width: 50px; display: inline;">&nbsp;&nbsp;&nbsp;
                 Mb: <input name="min_loc_mb" value="" type="text" class="form-control" style="width: 50px; display: inline;"> &nbsp;to&nbsp; <input name="max_loc_mb" value="" type="text" class="form-control" style="width: 50px; display: inline;">
@@ -89,8 +90,8 @@
             </div>
         </div>
         <div class="form-group">
-            <label class="col-xs-1 control-label">Range</label>
-            <div class="col-xs-4 controls">
+            <label class="col-xs-2 control-label">Range</label>
+            <div class="col-xs-5 controls">
                 <input name="p_range_lower" value="" type="hidden">
                 <input name="p_range_upper" value="" type="hidden">
                 <span style="display: inline;">
@@ -103,48 +104,45 @@
         </div>
         
         <div class="form-group">
-            <label for="corr_sample_method" class="col-xs-1 control-label"></label>
-            <div class="col-xs-4 controls">
+            <label for="corr_sample_method" class="col-xs-2 control-label"></label>
+            <div class="col-xs-3 controls">
                 <button class="btn corr_compute submit_special btn-success" data-url="/corr_compute" title="Compute Correlation">
                     <i class="icon-ok-circle icon-white"></i> Compute
                 </button>
             </div>
         </div>
-
-        <div class="form-group">
-            <label for="descriptions" class="col-xs-1 control-label"></label>
-            <div class="col-xs-6 controls">
-            <span id="sample_r_desc" class="correlation_desc fs12">
-                The <a href="http://genenetwork.org/correlationAnnotation.html#genetic_r">Sample Correlation</a>
-                is computed
-                between trait data and any
-                other traits in the sample database selected above. Use
-                <a href="http://www.genenetwork.org/glossary.html#Correlations">Spearman
-                Rank</a>
-                when the sample size is small (&lt;20) or when there are influential outliers.
-            </span>
-            <span id="lit_r_desc" style="display: none;" class="correlation_desc fs12">
-                The <a href="http://genenetwork.org/correlationAnnotation.html#literatureCorr">Literature Correlation</a>
-                (Lit r) between
-                this gene and all other genes is computed<br>
-                using the <a href="https://grits.eecs.utk.edu/sgo/sgo.html">
-                Semantic Gene Organizer</a>
-                and human, rat, and mouse data from PubMed.
-                Values are ranked by Lit r, but Sample r and Tissue r are also displayed.<br>
-                <a href="http://genenetwork.org/glossary.html#Literature">More on using Lit r</a>
-            </span>
-            <span id="tissue_r_desc" style="display: none;" class="correlation_desc fs12">
-                The <a href="http://genenetwork.org/webqtl/main.py?FormID=tissueCorrelation">Tissue Correlation</a>
-                (Tissue r)
-                estimates the similarity of expression of two genes
-                or transcripts across different cells, tissues, or organs
-                (<a href="http://genenetwork.org/correlationAnnotation.html#tissueCorr">glossary</a>).
-                Tissue correlations
-                are generated by analyzing expression in multiple samples usually taken from single cases.<br>
-                <strong>Pearson</strong> and <strong>Spearman Rank</strong> correlations have been
-                computed for all pairs of genes using data from mouse samples.<br>
-            </span>
-            </div>
-        </div>
     </div>
+  </div>
+  <div class="col-xs-5">
+    <span id="sample_r_desc" class="correlation_desc fs12">
+        The <a href="http://genenetwork.org/correlationAnnotation.html#genetic_r">Sample Correlation</a>
+        is computed
+        between trait data and any
+        other traits in the sample database selected above. Use
+        <a href="http://www.genenetwork.org/glossary.html#Correlations">Spearman
+        Rank</a>
+        when the sample size is small (&lt;20) or when there are influential outliers.
+    </span>
+    <span id="lit_r_desc" style="display: none;" class="correlation_desc fs12">
+        The <a href="http://genenetwork.org/correlationAnnotation.html#literatureCorr">Literature Correlation</a>
+        (Lit r) between
+        this gene and all other genes is computed<br>
+        using the <a href="https://grits.eecs.utk.edu/sgo/sgo.html">
+        Semantic Gene Organizer</a>
+        and human, rat, and mouse data from PubMed.
+        Values are ranked by Lit r, but Sample r and Tissue r are also displayed.<br>
+        <a href="http://genenetwork.org/glossary.html#Literature">More on using Lit r</a>
+    </span>
+    <span id="tissue_r_desc" style="display: none;" class="correlation_desc fs12">
+        The <a href="http://genenetwork.org/webqtl/main.py?FormID=tissueCorrelation">Tissue Correlation</a>
+        (Tissue r)
+        estimates the similarity of expression of two genes
+        or transcripts across different cells, tissues, or organs
+        (<a href="http://genenetwork.org/correlationAnnotation.html#tissueCorr">glossary</a>).
+        Tissue correlations
+        are generated by analyzing expression in multiple samples usually taken from single cases.<br>
+        <strong>Pearson</strong> and <strong>Spearman Rank</strong> correlations have been
+        computed for all pairs of genes using data from mouse samples.<br>
+    </span>
+  </div>
 </div>
\ No newline at end of file
diff --git a/wqflask/wqflask/templates/show_trait_mapping_tools.html b/wqflask/wqflask/templates/show_trait_mapping_tools.html
index ab2e2aae..03590c2c 100644
--- a/wqflask/wqflask/templates/show_trait_mapping_tools.html
+++ b/wqflask/wqflask/templates/show_trait_mapping_tools.html
@@ -1,5 +1,5 @@
 <div>
-    {% if (use_pylmm_rqtl and dataset.group.species != "human") or use_plink_gemma %}
+    {% if dataset.group.mapping_names|length > 0 %}
     <div class="col-xs-5">
         <div class="tabbable"> <!-- Only required for left/right tabs -->
 
@@ -41,7 +41,7 @@
                     <div style="padding-top: 20px;" class="form-horizontal">
                         {% if genofiles and genofiles|length>0 %}
                         <div class="mapping_method_fields form-group">
-                            <label for="genofiles" style="text-align: left;" class="col-xs-2 control-label">Genotypes</label>
+                            <label for="genofiles" style="text-align: right;" class="col-xs-3 control-label">Genotypes</label>
                             <div style="margin-left:20px;" class="col-xs-4 controls">
                                 <select id="genofile_gemma" class="form-control">
                                     {% for item in genofiles %}
@@ -52,20 +52,20 @@
                         </div>
                         {% endif %}
                         <div class="mapping_method_fields form-group">
-                            <label for="maf_gemma" style="text-align: left;" class="col-xs-2 control-label">MAF</label>
-                            <div style="margin-left:20px;" class="col-xs-3 controls">
+                            <label for="maf_gemma" style="text-align: right;" class="col-xs-3 control-label">MAF</label>
+                            <div style="margin-left:20px;" class="col-xs-4 controls">
                                 <input name="maf_gemma" value="0.01" type="text" class="form-control">
                             </div>
                         </div>
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align: left;" class="col-xs-2 control-label">Use LOCO</label>
-                            <div style="margin-left:20px;" class="col-xs-4 controls">
+                            <label style="text-align: right;" class="col-xs-3 control-label">Use LOCO</label>
+                            <div style="margin-left:20px;" class="col-xs-6 controls">
                                 <label class="radio-inline">
-                                    <input type="radio" name="use_loco" value="True">
+                                    <input type="radio" name="use_loco" value="True" checked="">
                                     Yes
                                 </label>
                                 <label class="radio-inline">
-                                    <input type="radio" name="use_loco" value="False" checked="">
+                                    <input type="radio" name="use_loco" value="False">
                                     No
                                </label>
                             </div>
@@ -75,7 +75,7 @@
                     <div style="padding-top: 5px; padding-bottom: 5px; padding-left: 20px;" class="form-horizontal">
                     -->
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align: left;" class="col-xs-2 control-label">Covariates</label>
+                            <label style="text-align: right;" class="col-xs-3 control-label">Covariates</label>
                             <div style="margin-left:20px;" class="col-xs-7">
                               {% if g.user_session.user_ob and (g.user_session.user_ob.display_num_collections() == "") %}
                               No collections available. Please add traits to a collection to use them as covariates.
@@ -86,13 +86,13 @@
                                 <button type="button" id="select_covariates" class="btn btn-default">Select</button>
                                 <button type="button" id="remove_covariates" class="btn btn-default">Remove</button>
                               </div>
-                              <textarea rows="2" cols="40" readonly placeholder="No covariates selected" class="selected_covariates"></textarea>
+                              <textarea rows="3" cols="20" readonly placeholder="No covariates selected" style="overflow-y: scroll; resize: none;" class="selected_covariates"></textarea>
                               {% endif %}
                             </div>
                         </div>
                         <div class="mapping_method_fields form-group">
-                          <label class="col-xs-2 control-label"></label>
-                          <div style="margin-left:20px;" class="col-xs-4">
+                          <label class="col-xs-3 control-label"></label>
+                          <div style="margin-left:20px;" class="col-xs-6">
                             <button id="gemma_bimbam_compute" class="btn submit_special btn-success" data-url="/marker_regression" title="Compute Marker Regression">
                                 Compute
                             </button>
@@ -116,7 +116,7 @@
                     <div style="margin-top: 20px" class="form-horizontal">
                         {% if genofiles and genofiles|length>0 %}
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align: left;" for="genofiles" class="col-xs-2 control-label">Genotypes</label>
+                            <label style="text-align: right;" for="genofiles" class="col-xs-3 control-label">Genotypes</label>
                             <div style="margin-left:20px;" class="col-xs-4 controls">
                                 <select id="genofile_reaper" class="form-control">
                                     {% for item in genofiles %}
@@ -127,20 +127,20 @@
                         </div>
                         {% endif %}
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align: left;" for="mapping_permutations" class="col-xs-2 control-label">Permutations</label>
+                            <label style="text-align: right;" 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 style="text-align: left;" for="mapping_bootstraps" class="col-xs-2 control-label">Bootstraps</label>
+                            <label style="text-align: right;" for="mapping_bootstraps" class="col-xs-3 control-label">Bootstraps</label>
                             <div style="margin-left:20px;" class="col-xs-4 controls">
                                 <input name="num_bootstrap" value="2000" type="text" class="form-control">
                             </div>
                         </div>
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align: left;" for="control_for" class="col-xs-2 control-label">Control&nbsp;for</label>
-                            <div style="margin-left:20px;" class="col-xs-4 controls">
+                            <label style="text-align: right;" for="control_for" class="col-xs-3 control-label">Control&nbsp;for</label>
+                            <div style="margin-left:20px;" class="col-xs-6 controls">
                                 {% if dataset.type == 'ProbeSet' and this_trait.locus_chr != "" %}
                                 <input name="control_reaper" value="{{ nearest_marker }}" type="text" style="width: 160px;" class="form-control" />
                                 {% else %}
@@ -184,8 +184,8 @@
 
 
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align:left;" class="col-xs-2 control-label">Marker<br>Regression</label>
-                            <div style="margin-left:20px;" class="col-xs-4 controls">
+                            <label style="text-align: right;" class="col-xs-3 control-label">Marker<br>Regression</label>
+                            <div style="margin-left:20px;" class="col-xs-6 controls">
                                 <label class="radio-inline">
                                     <input type="radio" name="manhattan_plot_reaper" value="True">
                                     Yes
@@ -197,8 +197,8 @@
                             </div>
                         </div>
                         <div class="mapping_method_fields form-group">
-                            <label class="col-xs-2 control-label"></label>
-                            <div style="margin-left:20px;" class="col-xs-4">
+                            <label class="col-xs-3 control-label"></label>
+                            <div style="margin-left:20px;" class="col-xs-6">
                               <button id="interval_mapping_compute" class="btn submit_special btn-success" data-url="/marker_regression" title="Compute Interval Mapping">
                                   Compute
                               </button>
@@ -212,7 +212,7 @@
                     <div style="margin-top: 20px" class="form-horizontal">
                         {% if genofiles and genofiles|length>0 %}
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align: left;" for="genofiles" class="col-xs-2 control-label">Genotypes</label>
+                            <label style="text-align:right;" for="genofiles" class="col-xs-3 control-label">Genotypes</label>
                             <div style="margin-left:20px;" class="col-xs-4 controls">
                                 <select id="genofile_rqtl_geno" class="form-control">
                                     {% for item in genofiles %}
@@ -223,14 +223,14 @@
                         </div>
                         {% endif %}
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align: left;" for="mapping_permutations" class="col-xs-2 control-label">Permutations</label>
+                            <label style="text-align:right;" 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">
                             </div>
                         </div>
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align: left;" for="control_for" class="col-xs-2 control-label">Control&nbsp;for</label>
-                            <div style="margin-left:20px;" class="col-xs-4 controls">
+                            <label style="text-align:right;" for="control_for" class="col-xs-3 control-label">Control&nbsp;for</label>
+                            <div style="margin-left:20px;" class="col-xs-6 controls">
                                 {% if dataset.type == 'ProbeSet' and this_trait.locus_chr != "" %}
                                 <input name="control_rqtl_geno" value="{{ nearest_marker }}" type="text" style="width: 160px;" class="form-control" />
                                 {% else %}
@@ -248,7 +248,7 @@
                         </div>
 
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align: left;" for="mapmethod_rqtl_geno" class="col-xs-2 control-label">Method</label>
+                            <label style="text-align:right;" for="mapmethod_rqtl_geno" class="col-xs-3 control-label">Method</label>
                             <div style="margin-left:20px;" class="col-xs-4 controls">
                               <select name="mapmethod_rqtl_geno" class="form-control">
                                 <option value="em">em</option>
@@ -263,7 +263,7 @@
                         </div>
 
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align:left;" for="mapmodel_rqtl_geno" class="col-xs-2 control-label">Model</label>
+                            <label style="text-align:right;" for="mapmodel_rqtl_geno" class="col-xs-3 control-label">Model</label>
                             <div style="margin-left:20px;" class="col-xs-4 controls">
                               <select name="mapmodel_rqtl_geno" class="form-control">
                                 <option value="normal">normal</option>
@@ -289,8 +289,8 @@
                         </div>
                         -->
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align:left;" class="col-xs-2 control-label">Marker<br>Regression</label>
-                            <div style="margin-left:20px;" class="col-xs-4 controls">
+                            <label style="text-align:right;" class="col-xs-3 control-label">Marker<br>Regression</label>
+                            <div style="margin-left:20px;" class="col-xs-6 controls">
                                 <label class="radio-inline">
                                     <input type="radio" name="manhattan_plot_rqtl" value="True">
                                     Yes
@@ -303,8 +303,8 @@
                         </div>
 
                         <div class="mapping_method_fields form-group">
-                            <label class="col-xs-2 control-label"></label>
-                            <div style="margin-left:20px;" class="col-xs-4">
+                            <label class="col-xs-3 control-label"></label>
+                            <div style="margin-left:20px;" class="col-xs-6">
                               <button id="rqtl_geno_compute" class="btn submit_special btn-success" data-url="/marker_regression" title="Compute Interval Mapping">
                                   Compute
                               </button>
@@ -316,7 +316,7 @@
                     <div style="margin-top: 20px" class="form-horizontal">
                         {% if genofiles and genofiles|length>0 %}
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align:left;" class="col-xs-2 control-label">Genotypes</label>
+                            <label style="text-align:right;" class="col-xs-3 control-label">Genotypes</label>
                             <div style="margin-left: 20px;" class="col-xs-4 controls">
                                 <select id="genofile_pylmm" class="form-control">
                                     {% for item in genofiles %}
@@ -327,8 +327,8 @@
                         </div>
                         {% endif %}
                         <div class="mapping_method_fields form-group">
-                            <label class="col-xs-2 control-label"></label>
-                            <div style="margin-left:20px;" class="col-xs-4">
+                            <label class="col-xs-3 control-label"></label>
+                            <div style="margin-left:20px;" class="col-xs-6">
                               <button id="pylmm_compute" class="btn submit_special btn-success" data-url="/marker_regression" title="Compute Interval Mapping">
                                   Compute
                               </button>
@@ -343,8 +343,8 @@
                     <div style="padding-top: 10px;" class="form-horizontal">
                         {% if genofiles and genofiles|length>0 %}
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align:left;" class="col-xs-4 control-label">Genotypes</label>
-                            <div style="margin-left: 20px;" class="col-xs-2 controls">
+                            <label style="text-align:right;" class="col-xs-3 control-label">Genotypes</label>
+                            <div style="margin-left: 20px;" class="col-xs-4 controls">
                                 <select id="genofile_gemma" class="form-control">
                                     {% for item in genofiles %}
                                     <option value="{{item['location']}}:{{item['title']}}">{{item['title']}}</option>
@@ -354,13 +354,13 @@
                         </div>
                         {% endif %}
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align:left;" class="col-xs-2 control-label">MAF</label>
+                            <label style="text-align:right;" class="col-xs-3 control-label">MAF</label>
                             <div style="margin-left: 20px;" class="col-xs-4 controls">
                                 <input name="maf_gemma" value="0.01" type="text" class="form-control">
                             </div>
                         </div>
                         <div class="mapping_method_fields form-group">
-                            <label style="text-align: left;" class="col-xs-2 control-label">Covariates</label>
+                            <label style="text-align: right;" class="col-xs-3 control-label">Covariates</label>
                             <div style="margin-left:20px;" class="col-xs-7">
                               {% if g.user_session.user_ob and (g.user_session.user_ob.display_num_collections() == "") %}
                               No collections available. Please add traits to a collection to use them as covariates.
@@ -376,8 +376,8 @@
                             </div>
                         </div>
                         <div class="mapping_method_fields form-group">
-                          <label class="col-xs-2 control-label"></label>
-                          <div style="margin-left:20px;" class="col-xs-4">
+                          <label class="col-xs-3 control-label"></label>
+                          <div style="margin-left:20px;" class="col-xs-6">
                             <button id="gemma_compute" class="btn submit_special btn-success" data-url="/marker_regression" title="Compute Marker Regression">
                                 Compute
                             </button>
@@ -389,16 +389,16 @@
                 <div class="tab-pane" id="plink">
                     <div style="padding: 20px" class="form-horizontal">
                         <div class="mapping_method_fields form-group">
-                            <label for="maf_plink" class="col-xs-3 control-label">Minor allele threshold</label>
-                            <div style="margin-left: 20px;" class="col-xs-3 controls">
+                            <label style="text-align: right;" class="col-xs-3 control-label">MAF</label>
+                            <div style="margin-left: 20px;" class="col-xs-4 controls">
                                 <input name="maf_plink" value="0.01" type="text" class="form-control">
                             </div>
                         </div>
                     </div>
 
                     <div class="form-group">
-                        <label for="plink_compute" class="col-xs-1 control-label"></label>
-                        <div style="margin-left:20px;" class="col-xs-4 controls">
+                        <label style="text-align: right;" class="col-xs-3 control-label"></label>
+                        <div style="margin-left:20px;" class="col-xs-6 controls">
                             <button id="plink_compute" class="btn submit_special btn-success" data-url="/marker_regression" title="Compute Marker Regression">
                                 Compute
                             </button>
@@ -413,22 +413,26 @@
     <div class="col-xs-5">
         {% if dataset.group.mapping_id == "1" %}
         <dl>
+             <dt>GEMMA</dt>
+             <dd>GEMMA is software implementing the Genome-wide Efficient Mixed Model Association algorithm for a standard linear mixed model for genome-wide association studies (GWAS).</dd>
              <dt>Interval Mapping</dt>
              <dd>Interval mapping is a process in which the statistical significance of a hypothetical QTL is evaluated at regular points across a chromosome, even in the absence of explicit genotype data at those points.</dd>
-             <dt>pyLMM</dt>
-             <dd>pyLMM is a fast and lightweight linear mixed-model (LMM) solver for use in genome-wide association studies (GWAS).</dd>
              <dt>R/qtl</dt>
              <dd>R/qtl is an extensible, interactive environment for mapping quantitative trait loci (QTL) in experimental crosses.</dd>
+             <dt>pyLMM</dt>
+             <dd>pyLMM is a fast and lightweight linear mixed-model (LMM) solver for use in genome-wide association studies (GWAS).</dd>
         </dl>
         {% else %}
         <dl>
+            {% if mapping_method == "GEMMA" %}
             <dt>GEMMA</dt>
             <dd>
                 GEMMA is software implementing the Genome-wide Efficient Mixed Model Association algorithm for a standard linear mixed model for genome-wide association studies (GWAS).<br>
-                Note: There currently exists an issue where GEMMA can't be run on traits from the same group simultaneously. If you receive an error, please wait a few minutes and try again.
             </dd>
+            {% elif mapping_method == "PLINK" %}
             <dt>PLINK</dt>
             <dd>PLINK is a free, open-source whole genome association analysis toolset.</dd>
+            {% endif %}
         </dl>
         {% endif %}
     </div>
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 187b60dc..17a2d762 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -582,7 +582,7 @@ def marker_regression_page():
         'control_marker',
         'control_marker_db',
         'do_control',
-        'genofile',
+        'genofile_string',
         'pair_scan',
         'startMb',
         'endMb',