diff options
-rw-r--r-- | wqflask/wqflask/correlation/show_corr_results.py | 43 | ||||
-rw-r--r-- | wqflask/wqflask/do_search.py | 1 | ||||
-rw-r--r-- | wqflask/wqflask/static/new/javascript/show_trait.js | 176 |
3 files changed, 147 insertions, 73 deletions
diff --git a/wqflask/wqflask/correlation/show_corr_results.py b/wqflask/wqflask/correlation/show_corr_results.py index 2c6c3a14..73072423 100644 --- a/wqflask/wqflask/correlation/show_corr_results.py +++ b/wqflask/wqflask/correlation/show_corr_results.py @@ -196,28 +196,29 @@ class CorrelationResults(object): self.get_sample_r_and_p_values(trait, self.target_dataset.trait_data[trait]) elif self.corr_type == "sample": - if self.dataset.type == "ProbeSet" and cache_available: - dataset_file = open(webqtlConfig.GENERATED_TEXT_DIR+db_filename,'r') - - #XZ, 01/08/2009: read the first line - line = dataset_file.readline() - dataset_strains = webqtlUtil.readLineCSV(line)[1:] - - self.this_trait_vals = [] - for item in dataset_strains: - if item in self.sample_data: - self.this_trait_vals.append(self.sample_data[item]) - else: - self.this_trait_vals.append("None") - num_overlap = len(self.this_trait_vals) - logger.debug("DOING PARALLEL") - self.do_parallel_correlation(db_filename, num_overlap) - else: - for trait, values in self.target_dataset.trait_data.iteritems(): - self.get_sample_r_and_p_values(trait, values) + #ZS: Commented out since parallel correlation has issues with gunicorn + # if self.dataset.type == "ProbeSet" and cache_available: + # dataset_file = open(webqtlConfig.GENERATED_TEXT_DIR+db_filename,'r') + + ##XZ, 01/08/2009: read the first line + # line = dataset_file.readline() + # dataset_strains = webqtlUtil.readLineCSV(line)[1:] + + # self.this_trait_vals = [] + # for item in dataset_strains: + # if item in self.sample_data: + # self.this_trait_vals.append(self.sample_data[item]) + # else: + # self.this_trait_vals.append("None") + # num_overlap = len(self.this_trait_vals) + # logger.debug("DOING PARALLEL") + # self.do_parallel_correlation(db_filename, num_overlap) + # else: + for trait, values in self.target_dataset.trait_data.iteritems(): + self.get_sample_r_and_p_values(trait, values) - self.correlation_data = collections.OrderedDict(sorted(self.correlation_data.items(), - key=lambda t: -abs(t[1][0]))) + self.correlation_data = collections.OrderedDict(sorted(self.correlation_data.items(), + key=lambda t: -abs(t[1][0]))) if self.target_dataset.type == "ProbeSet" or self.target_dataset.type == "Geno": diff --git a/wqflask/wqflask/do_search.py b/wqflask/wqflask/do_search.py index e1df1e63..17625474 100644 --- a/wqflask/wqflask/do_search.py +++ b/wqflask/wqflask/do_search.py @@ -989,3 +989,4 @@ if __name__ == "__main__": #results = GoSearch("0045202", dataset, cursor, db_conn).run() logger.debug("results are:", pf(results)) + db_conn.close() diff --git a/wqflask/wqflask/static/new/javascript/show_trait.js b/wqflask/wqflask/static/new/javascript/show_trait.js index df10c060..117d8f12 100644 --- a/wqflask/wqflask/static/new/javascript/show_trait.js +++ b/wqflask/wqflask/static/new/javascript/show_trait.js @@ -250,15 +250,29 @@ }; redraw_box_plot = function() { - var x; - var _i, _len, _ref, data; - _ref = _.values(root.selected_samples[root.stats_group]); - trait_vals = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - x = _ref[_i]; - trait_vals.push(x.value); + var y_value_list = [] + for (var sample_group in root.selected_samples){ + var trait_sample_data = _.values(root.selected_samples[sample_group]) + var trait_vals = []; + for (i = 0, len = trait_sample_data.length; i < len; i++) { + this_sample_data = trait_sample_data[i]; + trait_vals.push(this_sample_data.value); + } + y_value_list.push(trait_vals) + } + + if (Object.keys(js_data.sample_group_types).length > 1) { + var update = { + y: y_value_list + } + console.log("REDRAW UPDATE:", update) + Plotly.restyle('box_plot', update, [0, 1, 2]) + } else { + var update = { + y: y_value_list + } + Plotly.restyle('box_plot', update) } - Plotly.restyle('box_plot', 'y', [trait_vals]) } redraw_prob_plot = function() { @@ -640,6 +654,108 @@ }; root.stats_group = 'samples_primary'; + + if (Object.keys(js_data.sample_group_types).length > 1) { + full_sample_lists = [sample_lists[0], sample_lists[1], sample_lists[0].concat(sample_lists[1])] + sample_group_list = [js_data.sample_group_types['samples_primary'], js_data.sample_group_types['samples_other'], js_data.sample_group_types['samples_all']] + } else { + full_sample_lists = [sample_lists[0]] + sample_group_list = [js_data.sample_group_types['samples_primary']] + } + + if (full_sample_lists.length > 1) { + var box_layout = { + width: 1200, + height: 500, + margin: { + l: 50, + r: 30, + t: 30, + b: 80 + } + }; + var trace1 = { + y: get_sample_vals(full_sample_lists[0]), + type: 'box', + name: sample_group_list[0], + boxpoints: 'all', + jitter: 0.5, + whiskerwidth: 0.2, + fillcolor: 'cls', + marker: { + size: 2 + }, + line: { + width: 1 + } + } + var trace2 = { + y: get_sample_vals(full_sample_lists[1]), + type: 'box', + name: sample_group_list[1], + boxpoints: 'all', + jitter: 0.5, + whiskerwidth: 0.2, + fillcolor: 'cls', + marker: { + size: 2 + }, + line: { + width: 1 + } + } + var trace3 = { + y: get_sample_vals(full_sample_lists[2]), + type: 'box', + name: sample_group_list[2], + boxpoints: 'all', + jitter: 0.5, + whiskerwidth: 0.2, + fillcolor: 'cls', + marker: { + size: 2 + }, + line: { + width: 1 + } + } + box_data = [trace1, trace2, trace3] + } else { + var box_layout = { + width: 500, + height: 500, + margin: { + l: 50, + r: 30, + t: 30, + b: 80 + } + }; + box_data = [ + { + type: 'box', + y: get_sample_vals(full_sample_lists[0]), + name: sample_group_list[0], + boxpoints: 'all', + jitter: 0.5, + whiskerwidth: 0.2, + fillcolor: 'cls', + marker: { + size: 2 + }, + line: { + width: 1 + } + } + ] + } + + obj = { + data: box_data, + layout: box_layout + } + Plotly.newPlot('box_plot', obj); + // Histogram var hist_trace = { x: get_sample_vals(sample_lists[0]), @@ -686,50 +802,6 @@ root.bar_layout = layout Plotly.newPlot('bar_chart', root.bar_data, layout) - if (Object.keys(js_data.sample_group_types).length > 1) { - full_sample_lists = [sample_lists[0], sample_lists[1], sample_lists[0].concat(sample_lists[1])] - sample_group_list = [js_data.sample_group_types['samples_primary'], js_data.sample_group_types['samples_other'], js_data.sample_group_types['samples_all']] - } else { - full_sample_lists = [sample_lists[0]] - sample_group_list = [js_data.sample_group_types['samples_primary']] - } - - data = [] - for ( var i = 0; i < full_sample_lists.length; i ++ ) { - var box_trace = { - type: 'box', - y: get_sample_vals(full_sample_lists[i]), - name: sample_group_list[i], - boxpoints: 'all', - jitter: 0.5, - whiskerwidth: 0.2, - fillcolor: 'cls', - marker: { - size: 2 - }, - line: { - width: 1 - } - }; - data.push(box_trace) - }; - layout = { - title: 'Box Plot', - yaxis: { - autorange: true, - showgrid: true, - zeroline: true - }, - margin: { - l: 50, - r: 30, - t: 80, - b: 80 - } - }; - - Plotly.newPlot('box_plot', data, layout); - $('.histogram_samples_group').val(root.stats_group); $('.histogram_samples_group').change(function() { root.stats_group = $(this).val(); |