aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/static/new/javascript/trait_data_and_analysis.coffee63
-rw-r--r--wqflask/wqflask/static/new/javascript/trait_data_and_analysis.js51
2 files changed, 64 insertions, 50 deletions
diff --git a/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.coffee b/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.coffee
index 964c40cc..5aef18e5 100644
--- a/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.coffee
+++ b/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.coffee
@@ -21,57 +21,60 @@ $ ->
update_stat_values = (the_values)->
for category in ['primary_only', 'other_only', 'all_cases']
+ # Mean
id = "#" + process_id(category, "mean")
- console.log("id:", id)
total = 0
total += value for value in the_values[category]
the_mean = total / the_values[category].length
the_mean = the_mean.toFixed(2)
- console.log("aaa")
in_box = $(id).html
- console.log("in_box:", in_box)
+
current_mean = parseFloat($(in_box)).toFixed(2)
- console.log("the_mean:", the_mean)
- console.log("current_mean:", current_mean)
- console.log("aab")
+
if the_mean != current_mean
- console.log("setting mean")
$(id).html(the_mean).effect("highlight")
- console.log("should be set")
+
+ # Number of samples
n_of_samples = the_values[category].length
id = "#" + process_id(category, "n_of_samples")
- console.log("n_of_samples id:", id)
current_n_of_samples = $(id).html()
- console.log("cnos:", current_n_of_samples)
- console.log("n_of_samples:", n_of_samples)
if n_of_samples != current_n_of_samples
$(id).html(n_of_samples).effect("highlight")
-
+
+
+ # Median
id = "#" + process_id(category, "median")
- console.log("median id:", id)
+
is_odd = the_values[category].length % 2
median_position = Math.floor(the_values[category].length / 2)
- console.log("median_position:", median_position)
- the_values_sorted = the_values[category].sort(sort_numbers)
-
- the_median = the_values_sorted[median_position]
- #if is_odd
- # the_median = the_values_sorted[category][median_position]
- #else
- # the_median = (the_values_sorted[category][median_position] +
- # the_values_sorted[category][median_position + 1]) / 2
+ # sort numerically
+ the_values_sorted = the_values[category].sort((a, b) -> return a - b)
+ if is_odd
+ the_median = the_values_sorted[median_position]
+ else
+ the_median = (the_values_sorted[median_position] +
+ the_values_sorted[median_position + 1]) / 2
current_median = $(id).html()
- console.log("the_median:", the_median)
if the_median != current_median
$(id).html(the_median).effect("highlight")
-
-
- sort_numbers = (a, b) ->
- return a - b
-
+ # Todo: Compare stat values to genenetwork.org current code / sample vs. population
+ # Standard deviation
+ sum = 0
+ for value in the_values[category]
+ step_a = Math.pow(value - the_mean, 2)
+ sum += step_a
+ step_b = sum / the_values[category].length
+ sd = Math.sqrt(step_b)
+ sd = sd.toFixed(2)
+
+ id = "#" + process_id(category, "sd")
+ current_sd = $(id).html()
+ if sd != current_sd
+ $(id).html(sd).effect("highlight")
+
edit_data_change = ->
the_values =
@@ -130,6 +133,10 @@ $ ->
{
vn: "se"
pretty: "Standard Error (SE)"
+ },
+ {
+ vn: "sd"
+ pretty: "Standard Deviation (SD)"
}
]
diff --git a/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.js b/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.js
index fbca27c6..05b25197 100644
--- a/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.js
+++ b/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.js
@@ -10,7 +10,7 @@
};
$(function() {
- var edit_data_change, hide_tabs, make_table, on_corr_method_change, process_id, show_hide_outliers, sort_numbers, stats_mdp_change, update_stat_values;
+ var edit_data_change, hide_tabs, make_table, on_corr_method_change, process_id, show_hide_outliers, stats_mdp_change, update_stat_values;
hide_tabs = function(start) {
var x, _i, _results;
_results = [];
@@ -28,13 +28,12 @@
};
$(".stats_mdp").change(stats_mdp_change);
update_stat_values = function(the_values) {
- var category, current_mean, current_median, current_n_of_samples, id, in_box, is_odd, median_position, n_of_samples, the_mean, the_median, the_values_sorted, total, value, _i, _j, _len, _len1, _ref, _ref1, _results;
+ var category, current_mean, current_median, current_n_of_samples, current_sd, id, in_box, is_odd, median_position, n_of_samples, sd, step_a, step_b, sum, the_mean, the_median, the_values_sorted, total, value, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;
_ref = ['primary_only', 'other_only', 'all_cases'];
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
category = _ref[_i];
id = "#" + process_id(category, "mean");
- console.log("id:", id);
total = 0;
_ref1 = the_values[category];
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
@@ -43,47 +42,52 @@
}
the_mean = total / the_values[category].length;
the_mean = the_mean.toFixed(2);
- console.log("aaa");
in_box = $(id).html;
- console.log("in_box:", in_box);
current_mean = parseFloat($(in_box)).toFixed(2);
- console.log("the_mean:", the_mean);
- console.log("current_mean:", current_mean);
- console.log("aab");
if (the_mean !== current_mean) {
- console.log("setting mean");
$(id).html(the_mean).effect("highlight");
- console.log("should be set");
}
n_of_samples = the_values[category].length;
id = "#" + process_id(category, "n_of_samples");
- console.log("n_of_samples id:", id);
current_n_of_samples = $(id).html();
- console.log("cnos:", current_n_of_samples);
- console.log("n_of_samples:", n_of_samples);
if (n_of_samples !== current_n_of_samples) {
$(id).html(n_of_samples).effect("highlight");
}
id = "#" + process_id(category, "median");
- console.log("median id:", id);
is_odd = the_values[category].length % 2;
median_position = Math.floor(the_values[category].length / 2);
- console.log("median_position:", median_position);
- the_values_sorted = the_values[category].sort(sort_numbers);
- the_median = the_values_sorted[median_position];
+ the_values_sorted = the_values[category].sort(function(a, b) {
+ return a - b;
+ });
+ if (is_odd) {
+ the_median = the_values_sorted[median_position];
+ } else {
+ the_median = (the_values_sorted[median_position] + the_values_sorted[median_position + 1]) / 2;
+ }
current_median = $(id).html();
- console.log("the_median:", the_median);
if (the_median !== current_median) {
- _results.push($(id).html(the_median).effect("highlight"));
+ $(id).html(the_median).effect("highlight");
+ }
+ sum = 0;
+ _ref2 = the_values[category];
+ for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {
+ value = _ref2[_k];
+ step_a = Math.pow(value - the_mean, 2);
+ sum += step_a;
+ }
+ step_b = sum / the_values[category].length;
+ sd = Math.sqrt(step_b);
+ sd = sd.toFixed(2);
+ id = "#" + process_id(category, "sd");
+ current_sd = $(id).html();
+ if (sd !== current_sd) {
+ _results.push($(id).html(sd).effect("highlight"));
} else {
_results.push(void 0);
}
}
return _results;
};
- sort_numbers = function(a, b) {
- return a - b;
- };
edit_data_change = function() {
var category, checkbox, checked, real_value, row, the_values, value, values, _i, _len;
the_values = {
@@ -146,6 +150,9 @@
}, {
vn: "se",
pretty: "Standard Error (SE)"
+ }, {
+ vn: "sd",
+ pretty: "Standard Deviation (SD)"
}
];
console.log("rows are:", rows);