about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/show_trait/export_trait_data.py16
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait.js43
-rw-r--r--wqflask/wqflask/static/new/javascript/stats.js31
-rw-r--r--wqflask/wqflask/views.py6
4 files changed, 74 insertions, 22 deletions
diff --git a/wqflask/wqflask/show_trait/export_trait_data.py b/wqflask/wqflask/show_trait/export_trait_data.py
index 558372bb..a99e72a6 100644
--- a/wqflask/wqflask/show_trait/export_trait_data.py
+++ b/wqflask/wqflask/show_trait/export_trait_data.py
@@ -27,11 +27,19 @@ def cmp_samples(a, b):
     if b[0] == 'name':
         return 1
     elif b[0] == 'value':
-        if a[0] == 'se':
+        if a[0] == 'name':
+            return -1
+        else:
             return 1
+    elif b[0] == 'se':
+        if a[0] == 'name' or a[0] == 'value':
+            return -1
         else:
+            return 1
+    elif b[0] == 'num_cases':
+        if a[0] == 'name' or a[0] == 'value' or a[0] == 'se':
             return -1
-    elif b[0] == 'se':
-        return -1
+        else:
+            return 1
     else:
-        return 0
\ No newline at end of file
+        return -1
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/show_trait.js b/wqflask/wqflask/static/new/javascript/show_trait.js
index 9bbcd560..f49ef063 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait.js
@@ -35,11 +35,33 @@ Stat_Table_Rows = [
     vn: "max",
     pretty: "Maximum",
     digits: 2
-  }, {
-    vn: "range",
-    pretty: "Range (log2)",
-    digits: 3
-  }, {
+  }
+]
+
+if (js_data.dataset_type == "ProbeSet"){
+  if (js_data.data_scale == "linear_positive" || js_data.data_scale == "log2") {
+    Stat_Table_Rows.push({
+                           vn: "range",
+                           pretty: "Range (log2)",
+                           digits: 3
+                         })
+  } else {
+    Stat_Table_Rows.push({
+                           vn: "range",
+                           pretty: "Range",
+                           digits: 3
+                         })
+  }
+} else {
+  Stat_Table_Rows.push({
+                       vn: "range",
+                       pretty: "Range",
+                       digits: 3
+                     })
+}
+
+Stat_Table_Rows.push(
+  {
     vn: "range_fold",
     pretty: "Range (fold)",
     digits: 3
@@ -57,7 +79,7 @@ Stat_Table_Rows = [
     pretty: "Kurtosis",
     digits: 3
   }
-];
+);
 
 var add, block_by_attribute_value, block_by_index, block_outliers, change_stats_value, create_value_dropdown, edit_data_change, export_sample_table_data, get_sample_table_data, hide_no_value, hide_tabs, make_table, on_corr_method_change, open_trait_selection, populate_sample_attributes_values_dropdown, process_id, redraw_bar_chart, redraw_histogram, redraw_prob_plot, reset_samples_table, sample_group_types, sample_lists, show_hide_outliers, stats_mdp_change, update_stat_values;
 add = function() {
@@ -314,7 +336,7 @@ make_table = function() {
   the_rows = "<tbody>";
   for (_i = 0, _len = Stat_Table_Rows.length; _i < _len; _i++) {
     row = Stat_Table_Rows[_i];
-    if ((row.vn == "range_fold" || row.vn == "range") && js_data.dataset_type == "Publish"){
+    if ((row.vn == "range_fold") && js_data.dataset_type == "Publish"){
         continue;
     }
     row_line = "<tr>";
@@ -696,10 +718,13 @@ get_sample_table_data = function(table_name) {
       var attribute_info, key, row_data, _ref;
       row_data = {};
       row_data.name = $.trim($(element).find('.column_name-Sample').text());
-      row_data.value = $(element).find('.edit_sample_value').val();
-      if ($(element).find('.edit_sample_se').length !== -1) {
+      row_data.value = $(element).find('.edit_sample_value:eq(0)').val();
+      if ($(element).find('.edit_sample_se').length > 0) {
         row_data.se = $(element).find('.edit_sample_se').val();
       }
+      if ($(element).find('.edit_sample_num_cases').length > 0) {
+        row_data.num_cases = $(element).find('.edit_sample_num_cases').val();
+      }
       _ref = js_data.attribute_names;
       for (key in _ref) {
         if (!__hasProp.call(_ref, key)) continue;
diff --git a/wqflask/wqflask/static/new/javascript/stats.js b/wqflask/wqflask/static/new/javascript/stats.js
index 356d1cb0..4df03412 100644
--- a/wqflask/wqflask/static/new/javascript/stats.js
+++ b/wqflask/wqflask/static/new/javascript/stats.js
@@ -69,11 +69,23 @@ Stats = (function() {
   };
 
   Stats.prototype.range = function() {
-    return this.max() - this.min();
+    if (js_data.dataset_type == "ProbeSet"){
+      if (js_data.data_scale == "linear_positive"){
+        return Math.log2(this.max()) - Math.log2(this.min());
+      } else {
+        return this.max() - this.min()
+      }
+    } else {
+      return this.max() - this.min()
+    }
   };
 
   Stats.prototype.range_fold = function() {
-    return Math.pow(2, this.range());
+    if (js_data.dataset_type == "ProbeSet"){
+      return Math.pow(2, this.range());
+    } else {
+      return this.range()
+    }
   };
 
   Stats.prototype.interquartile = function() {
@@ -81,10 +93,19 @@ Stats = (function() {
     length = this.the_values.length;
     console.log("in interquartile the_values are:", this.the_values);
     console.log("length is:", length);
-    q1 = this.the_values[Math.floor(length * .25)];
-    q3 = this.the_values[Math.floor(length * .75)];
+    if (js_data.dataset_type == "ProbeSet" && js_data.data_scale == "linear_positive") {
+      q1 = Math.log2(this.the_values[Math.floor(length * .25)]);
+      q3 = Math.log2(this.the_values[Math.floor(length * .75)]);
+    } else {
+      q1 = this.the_values[Math.floor(length * .25)];
+      q3 = this.the_values[Math.floor(length * .75)];
+    }
     iq = q3 - q1;
-    return Math.pow(2, iq);
+    if (js_data.dataset_type == "ProbeSet") {
+        return Math.pow(2, iq);
+    } else {
+        return iq;
+    }
   };
 
   Stats.prototype.skewness = function() {
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 67e83366..d00f067e 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -321,10 +321,8 @@ def export_trait_excel():
     workbook = xlsxwriter.Workbook(buff, {'in_memory': True})
     worksheet = workbook.add_worksheet()
     for i, row in enumerate(sample_data):
-        worksheet.write(i, 0, row[0])
-        worksheet.write(i, 1, row[1])
-        if len(row) > 2:
-            worksheet.write(i, 2, row[2])
+        for j, column in enumerate(row):
+            worksheet.write(i, j, row[j])
     workbook.close()
     excel_data = buff.getvalue()
     buff.close()