From 467502356717c50b6cb3311facca501217092a6f Mon Sep 17 00:00:00 2001
From: Zachary Sloan
Date: Wed, 27 Nov 2013 23:21:51 +0000
Subject: Clicking a trait in "color by trait" now gets all of its sample
values that will be used to color the bar graph
---
wqflask/base/trait.py | 25 +++++++++++++-
.../javascript/get_traits_from_collection.coffee | 39 ++++++++++++++--------
.../new/javascript/get_traits_from_collection.js | 39 ++++++++++++++++------
3 files changed, 77 insertions(+), 26 deletions(-)
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index 9e4f0944..712d9af5 100755
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -12,10 +12,13 @@ from base.data_set import create_dataset
from dbFunction import webqtlDatabaseFunction
from utility import webqtlUtil
+from wqflask import app
+
+import simplejson as json
from MySQLdb import escape_string as escape
from pprint import pformat as pf
-from flask import Flask, g
+from flask import Flask, g, request
def print_mem(stage=""):
mem = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
@@ -70,6 +73,7 @@ class GeneralTrait(object):
Actual turning into json doesn't happen here though"""
return dict(name=self.name,
+ dataset=self.dataset.name,
description=self.description_display,
mean=self.mean)
@@ -626,3 +630,22 @@ class GeneralTrait(object):
ZValue = 0.5*log((1.0+self.correlation)/(1.0-self.correlation))
ZValue = ZValue*sqrt(self.overlap-3)
self.p_value = 2.0*(1.0 - reaper.normp(abs(ZValue)))
+
+
+
+@app.route("/trait/get_sample_data")
+def get_sample_data():
+ params = request.args
+ trait = params['trait']
+ dataset = params['dataset']
+
+ trait_ob = GeneralTrait(name=trait, dataset_name=dataset)
+
+ return json.dumps({key: value.value for key, value in trait_ob.data.iteritems() })
+
+ #jsonable_sample_data = {}
+ #for sample in trait_ob.data.iteritems():
+ # jsonable_sample_data[sample] = trait_ob.data[sample].value
+ #
+ #return jsonable_sample_data
+
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/get_traits_from_collection.coffee b/wqflask/wqflask/static/new/javascript/get_traits_from_collection.coffee
index c178d60d..f1d41cbe 100644
--- a/wqflask/wqflask/static/new/javascript/get_traits_from_collection.coffee
+++ b/wqflask/wqflask/static/new/javascript/get_traits_from_collection.coffee
@@ -1,50 +1,60 @@
console.log("before get_traits_from_collection")
+# Going to be used to hold collection list
+# So we can repopulate it when the back button is clicked
+collection_list = null
collection_click = () ->
console.log("Clicking on:", $(this))
this_collection_url = $(this).find('.collection_name').prop("href")
this_collection_url += "&json"
console.log("this_collection_url", this_collection_url)
+ collection_list = $("#collections_holder").html()
$.ajax(
dataType: "json",
url: this_collection_url,
success: process_traits
)
+
+trait_click = () ->
+ console.log("Clicking on:", $(this))
+ trait = $(this).find('.trait').text()
+ dataset = $(this).find('.dataset').text()
+ this_trait_url = "/trait/get_sample_data?trait="+trait+"&dataset="+dataset
+ console.log("this_trait_url", this_trait_url)
+ $.ajax(
+ dataType: "json",
+ url: this_trait_url,
+ success: color_by_trait
+ )
-# Going to be used to hold collection list
-# So we can repopulate it when the back button is clicked
-collection_list = null
+color_by_trait = (trait_sample_data, textStatus, jqXHR) ->
+ console.log('in color_by_trait:', trait_sample_data)
process_traits = (trait_data, textStatus, jqXHR) ->
console.log('in process_traits with trait_data:', trait_data)
- the_html = "
"
-
- the_html += "
"
- collection_list = $("#collections_holder").html()
- $("#collections_holder").replaceWith(the_html)
+ $("#collections_holder").html(the_html)
$('#collections_holder').colorbox.resize()
back_to_collections = () ->
console.log("collection_list:", collection_list)
- $("#collections_holder").replaceWith(collection_list)
-
- $("#trait_table").wrap("")
+ $("#collections_holder").html(collection_list)
$(document).on("click", ".collection_line", collection_click)
$('#collections_holder').colorbox.resize()
@@ -53,4 +63,5 @@ $ ->
console.log("inside get_traits_from_collection")
$(document).on("click", ".collection_line", collection_click)
+ $(document).on("click", ".trait_line", trait_click)
$(document).on("click", "#back_to_collections", back_to_collections)
diff --git a/wqflask/wqflask/static/new/javascript/get_traits_from_collection.js b/wqflask/wqflask/static/new/javascript/get_traits_from_collection.js
index c0fb7c54..104c411d 100644
--- a/wqflask/wqflask/static/new/javascript/get_traits_from_collection.js
+++ b/wqflask/wqflask/static/new/javascript/get_traits_from_collection.js
@@ -1,15 +1,18 @@
// Generated by CoffeeScript 1.6.1
(function() {
- var back_to_collections, collection_click, collection_list, process_traits;
+ var back_to_collections, collection_click, collection_list, color_by_trait, process_traits, trait_click;
console.log("before get_traits_from_collection");
+ collection_list = null;
+
collection_click = function() {
var this_collection_url;
console.log("Clicking on:", $(this));
this_collection_url = $(this).find('.collection_name').prop("href");
this_collection_url += "&json";
console.log("this_collection_url", this_collection_url);
+ collection_list = $("#collections_holder").html();
return $.ajax({
dataType: "json",
url: this_collection_url,
@@ -17,35 +20,48 @@
});
};
- collection_list = null;
+ trait_click = function() {
+ var dataset, this_trait_url, trait;
+ console.log("Clicking on:", $(this));
+ trait = $(this).find('.trait').text();
+ dataset = $(this).find('.dataset').text();
+ this_trait_url = "/trait/get_sample_data?trait=" + trait + "&dataset=" + dataset;
+ console.log("this_trait_url", this_trait_url);
+ return $.ajax({
+ dataType: "json",
+ url: this_trait_url,
+ success: color_by_trait
+ });
+ };
+
+ color_by_trait = function(trait_sample_data, textStatus, jqXHR) {
+ return console.log('in color_by_trait:', trait_sample_data);
+ };
process_traits = function(trait_data, textStatus, jqXHR) {
var the_html, trait, _i, _len;
console.log('in process_traits with trait_data:', trait_data);
- the_html = "";
- the_html += "
";
+ the_html = "";
the_html += " Back ";
the_html += "";
- the_html += "Record | Description | Mean |
";
+ the_html += "Record | Data Set | Description | Mean |
";
the_html += "";
for (_i = 0, _len = trait_data.length; _i < _len; _i++) {
trait = trait_data[_i];
- the_html += "" + trait.name + " | ";
+ the_html += "
" + trait.name + " | ";
+ the_html += "" + trait.dataset + " | ";
the_html += "" + trait.description + " | ";
the_html += "" + (trait.mean || ' ') + " |
";
}
the_html += "";
the_html += "
";
- the_html += " ";
- collection_list = $("#collections_holder").html();
- $("#collections_holder").replaceWith(the_html);
+ $("#collections_holder").html(the_html);
return $('#collections_holder').colorbox.resize();
};
back_to_collections = function() {
console.log("collection_list:", collection_list);
- $("#collections_holder").replaceWith(collection_list);
- $("#trait_table").wrap("");
+ $("#collections_holder").html(collection_list);
$(document).on("click", ".collection_line", collection_click);
return $('#collections_holder').colorbox.resize();
};
@@ -53,6 +69,7 @@
$(function() {
console.log("inside get_traits_from_collection");
$(document).on("click", ".collection_line", collection_click);
+ $(document).on("click", ".trait_line", trait_click);
return $(document).on("click", "#back_to_collections", back_to_collections);
});
--
cgit v1.2.3