about summary refs log tree commit diff
diff options
context:
space:
mode:
authorzsloan2020-10-05 16:19:04 -0500
committerzsloan2020-10-05 16:19:04 -0500
commit47985414433542adc7e19f7298d71a9cf2472382 (patch)
treeac1264d17d46528edef7f0e1b27b0450955b3172
parentc92504a72e3b0c017677abfdfd0dacf105295579 (diff)
downloadgenenetwork2-47985414433542adc7e19f7298d71a9cf2472382.tar.gz
Changed the way tranform functions work
* wqflask/wqflask/static/new/javascript/show_trait.js
- Changed transform options to only apply to original values, with the exception of the "invert" transform and rows where the value was set to "x"
- Only run "check_if_zero_to_one_vals" once on page load instead of running it every time a transform is run
- Changed Transform text to reflect when there's a combination of Invert and some other transform
- Updated Reset function to use DataTables API
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait.js103
1 files changed, 64 insertions, 39 deletions
diff --git a/wqflask/wqflask/static/new/javascript/show_trait.js b/wqflask/wqflask/static/new/javascript/show_trait.js
index 8b9a57a3..092c890f 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait.js
@@ -667,54 +667,92 @@ $('#block_outliers').click(block_outliers);
 reset_samples_table = function() {
   $('input[name="transform"]').val("");
   $('span[name="transform_text"]').text("")
-  return $('.trait_value_input').each((function(_this) {
-    return function(_index, element) {
-      $(element).val($(element).data('value'));
-      return $(element).parents('.value_se').show();
-    };
-  })(this));
+
+  tables = ['samples_primary', 'samples_other'];
+  for (_i = 0, _len = tables.length; _i < _len; _i++) {
+    table = tables[_i];
+    if ($('#' + table).length) {
+      table_api = $('#' + table).DataTable();
+      val_nodes = table_api.column(3).nodes().to$();
+      for (i = 0; i < val_nodes.length; i++) {
+        this_node = val_nodes[i].childNodes[0];
+        this_node.value = this_node.attributes["data-value"].value;
+      }
+      if (js_data.se_exists){
+        se_nodes = table_api.column(5).nodes().to$();
+        for (i = 0; i < val_nodes.length; i++) {
+          this_node = val_nodes[i].childNodes[0];
+          this_node.value = this_node.attributes["data-value"].value;
+        }
+      }
+    }
+  }
 };
 $('.reset').click(function() {
   reset_samples_table();
   edit_data_change();
 });
 
+check_for_zero_to_one_vals = function() {
+  tables = ['samples_primary', 'samples_other'];
+  for (_i = 0, _len = tables.length; _i < _len; _i++) {
+    table = tables[_i];
+    if ($('#' + table).length) {
+      table_api = $('#' + table).DataTable();
+      val_nodes = table_api.column(3).nodes().to$();
+      for (i = 0; i < val_nodes.length; i++) {
+        this_node = val_nodes[i].childNodes[0];
+        if(!isNaN(this_node.value)) {
+          if (0 <= this_node.value && this_node.value < 1){
+            return true
+          }
+        }
+      }
+    }
+  }
+  return false
+}
+
 log2_data = function(this_node) {
   current_value = this_node.value;
-  if(!isNaN(current_value)) {
+  original_value = this_node.attributes['data-value'].value;
+  if(!isNaN(current_value) && !isNaN(original_value)) {
     if (zero_to_one_vals_exist){
-      current_value = parseFloat(current_value) + 1;
+      original_value = parseFloat(original_value) + 1;
     }
-    this_node.value = Math.log2(current_value).toFixed(3);
+    this_node.value = Math.log2(original_value).toFixed(3);
   }
 };
 
 log10_data = function() {
   current_value = this_node.value;
-  if(!isNaN(current_value)) {
+  original_value = this_node.attributes['data-value'].value;
+  if(!isNaN(current_value) && !isNaN(original_value)) {
     if (zero_to_one_vals_exist){
-      current_value = parseFloat(current_value) + 1;
+      original_value = parseFloat(original_value) + 1;
     }
-    this_node.value = Math.log10(current_value).toFixed(3);
+    this_node.value = Math.log10(original_value).toFixed(3);
   }
 };
 
-
 sqrt_data = function() {
   current_value = this_node.value;
-  if(!isNaN(current_value)) {
-    this_node.value = Math.sqrt(current_value).toFixed(3);
+  original_value = this_node.attributes['data-value'].value;
+  if(!isNaN(current_value) && !isNaN(original_value)) {
+    if (zero_to_one_vals_exist){
+      original_value = parseFloat(original_value) + 1;
+    }
+    this_node.value = Math.sqrt(original_value).toFixed(3);
   }
 };
 
 invert_data = function() {
   current_value = this_node.value;
   if(!isNaN(current_value)) {
-    this_node.value = -(current_value);
+    this_node.value = parseFloat(-(current_value)).toFixed(3);
   }
 };
 
-
 qnorm_data = function() {
   current_value = this_node.value;
   qnorm_value = this_node.attributes['data-qnorm'].value;
@@ -725,29 +763,12 @@ qnorm_data = function() {
 
 zscore_data = function() {
   current_value = this_node.value;
-  qnorm_value = this_node.attributes['data-zscore'].value;
+  zscore_value = this_node.attributes['data-zscore'].value;
   if(!isNaN(current_value)) {
-    this_node.value = qnorm_value;
+    this_node.value = zscore_value;
   }
 };
 
-check_for_zero_to_one_vals = function() {
-  zero_to_one_vals_exist = false
-  $('.trait_value_input').each(function() {
-    current_value = $(this).data("value")
-    if(isNaN(current_value)) {
-      return true;
-    } else {
-      current_value = parseFloat(current_value)
-      if (0 <= current_value && current_value < 1){
-        zero_to_one_vals_exist = true
-        return false
-      }
-    }
-  });
-  return zero_to_one_vals_exist
-}
-
 do_transform = function(transform_type) {
   tables = ['samples_primary', 'samples_other'];
   for (_i = 0, _len = tables.length; _i < _len; _i++) {
@@ -804,7 +825,12 @@ normalize_data = function() {
   else if ($('#norm_method option:selected').val() == 'invert'){
     do_transform("invert")
     $('input[name="transform"]').val("inverted")
-    $('span[name="transform_text"]').text(" - Inverted")
+    if ($('span[name="transform_text"]:eq(0)').text() != ""){
+      current_text = $('span[name="transform_text"]:eq(0)').text();
+      $('span[name="transform_text"]').text(current_text + " + Inverted");
+    } else {
+      $('span[name="transform_text"]').text(" - Inverted")
+    }
   }
   else if ($('#norm_method option:selected').val() == 'qnorm'){
     if ($('input[name="transform"]').val() != "qnorm") {
@@ -822,11 +848,10 @@ normalize_data = function() {
   }
 }
 
-zero_to_one_vals_exist = false
+zero_to_one_vals_exist = check_for_zero_to_one_vals();
 
 show_transform_warning = function() {
   transform_type = $('#norm_method option:selected').val()
-  zero_to_one_vals_exist = check_for_zero_to_one_vals();
   if (transform_type == "log2" || transform_type == "log10"){
     if (zero_to_one_vals_exist){
       $('#transform_alert').css("display", "block")