aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzsloan2019-03-19 12:01:37 -0500
committerzsloan2019-03-19 12:01:37 -0500
commit2734388e99bf6da6a7046e7d9e65ebaf25ac745e (patch)
tree8174f96a1a2828fd55c3dc99b98e06bfe4d31063
parentd515061c4878b448f5b866e32eee7e37301ecdb7 (diff)
downloadgenenetwork2-2734388e99bf6da6a7046e7d9e65ebaf25ac745e.tar.gz
Added option to add PCA traits to collection from correlation matrix page
-rw-r--r--wqflask/wqflask/correlation_matrix/show_corr_matrix.py1
-rw-r--r--wqflask/wqflask/static/new/javascript/create_corr_matrix.js103
-rw-r--r--wqflask/wqflask/templates/correlation_matrix.html9
3 files changed, 60 insertions, 53 deletions
diff --git a/wqflask/wqflask/correlation_matrix/show_corr_matrix.py b/wqflask/wqflask/correlation_matrix/show_corr_matrix.py
index 007e8e47..efe4ecea 100644
--- a/wqflask/wqflask/correlation_matrix/show_corr_matrix.py
+++ b/wqflask/wqflask/correlation_matrix/show_corr_matrix.py
@@ -49,6 +49,7 @@ import reaper
import redis
Redis = redis.StrictRedis()
+from wqflask.user_manager import data_hmac
from utility.THCell import THCell
from utility.TDCell import TDCell
from base.trait import GeneralTrait
diff --git a/wqflask/wqflask/static/new/javascript/create_corr_matrix.js b/wqflask/wqflask/static/new/javascript/create_corr_matrix.js
index 44ed3c81..fe89a672 100644
--- a/wqflask/wqflask/static/new/javascript/create_corr_matrix.js
+++ b/wqflask/wqflask/static/new/javascript/create_corr_matrix.js
@@ -1,57 +1,12 @@
-// Generated by CoffeeScript 1.8.0
-// var get_data, get_options, root;
-
-// root = typeof exports !== "undefined" && exports !== null ? exports : this;
-
-// $(function() {
- // var chartOpts, data, mychart;
- // console.log("js_data:", js_data);
- // chartOpts = get_options();
- // data = get_data();
- // console.log(data);
- // return mychart = corr_matrix(data, chartOpts);
-// });
-
-// get_options = function() {
- // var chartOpts;
- // chartOpts = {
- // cortitle: "Correlation Matrix",
- // scattitle: "Scatterplot",
- // h: 450,
- // w: 450,
- // margin: {
- // left: 100,
- // top: 40,
- // right: 5,
- // bottom: 70,
- // inner: 5
- // }
- // };
- // return chartOpts;
-// };
-
-// get_data = function() {
- // var data;
- // data = {};
- // data["var"] = js_data.traits;
- // data.group = js_data.groups;
- // data.indID = js_data.samples;
- // data.dat = js_data.sample_data;
- // data.corr = js_data.corr_results;
- // data.cols = js_data.cols;
- // data.rows = js_data.rows;
- // return data;
-// };
-
-var neg_color_scale = chroma.scale(['#FF0000', 'white']).domain([-1, -0.4]);
-var pos_color_scale = chroma.scale(['white', 'aqua']).domain([0.4, 1])
+var neg_color_scale = chroma.scale(['#FF0000', '#FFFFFF']).domain([-1, -0.4]);
+var pos_color_scale = chroma.scale(['#FFFFFF', '#00FFFF']).domain([0.4, 1])
$('.corr_cell').each( function () {
corr_value = parseFloat($(this).find('span.corr_value').text())
if (corr_value >= 0.5){
- $(this).css('background-color', pos_color_scale(parseFloat(corr_value)))
+ $(this).css('background-color', pos_color_scale(parseFloat(corr_value))._rgb)
}
else if (corr_value <= -0.5) {
- $(this).css('background-color', neg_color_scale(parseFloat(corr_value)))
+ $(this).css('background-color', neg_color_scale(parseFloat(corr_value))._rgb)
}
else {
$(this).css('background-color', 'white')
@@ -78,4 +33,52 @@ $('#long_labels').click( function (){
$(this).css("display", "none");
}
});
-}); \ No newline at end of file
+});
+
+select_all = function() {
+ $(".trait_checkbox").each(function() {
+ $(this).prop('checked', true);
+ });
+};
+
+deselect_all = function() {
+ $(".trait_checkbox").each(function() {
+ $(this).prop('checked', false);
+ });
+};
+
+change_buttons = function() {
+ num_checked = $('.trait_checkbox:checked').length;
+ if (num_checked === 0) {
+ $("#add").prop("disabled", true);
+ } else {
+ $("#add").prop("disabled", false);
+ }
+};
+
+add = function() {
+ var traits;
+ traits = $("input[name=pca_trait]:checked").map(function() {
+ return $(this).val();
+ }).get();
+
+ var traits_hash = md5(traits.toString());
+
+ $.ajax({
+ type: "POST",
+ url: "/collections/store_trait_list",
+ data: {
+ hash: traits_hash,
+ traits: traits.toString()
+ }
+ });
+
+ return $.colorbox({
+ href: "/collections/add?hash=" + traits_hash
+ });
+}
+
+$("#select_all").click(select_all);
+$("#deselect_all").click(deselect_all);
+$("#add").click(add);
+$(".btn, .trait_checkbox").click(change_buttons);
diff --git a/wqflask/wqflask/templates/correlation_matrix.html b/wqflask/wqflask/templates/correlation_matrix.html
index 9c790780..cf5c359c 100644
--- a/wqflask/wqflask/templates/correlation_matrix.html
+++ b/wqflask/wqflask/templates/correlation_matrix.html
@@ -63,9 +63,12 @@
<h2>PCA Traits</h2>
<ul>
{% for this_trait_id in pca_trait_ids %}
- <li><a href="{{ url_for('show_trait_page', trait_id = pca_trait_ids[loop.index - 1], dataset = "Temp") }}">{{ pca_trait_ids[loop.index - 1] }}</a></li>
+ <li>1. <input type="checkbox" class="trait_checkbox" name="pca_trait" value="{{ data_hmac('{}:{}'.format(pca_trait_ids[loop.index - 1], "Temp")) }}">&nbsp;&nbsp;<a href="{{ url_for('show_trait_page', trait_id = pca_trait_ids[loop.index - 1], dataset = "Temp") }}">{{ pca_trait_ids[loop.index - 1] }}</a></li>
{% endfor %}
</ul>
+<button class="btn btn-default" id="select_all"><span class="glyphicon glyphicon-ok"></span> Select All</button>
+<button class="btn btn-default" id="deselect_all"><span class="glyphicon glyphicon-remove"></span> Deselect All</button>
+<button class="btn btn-default" id="add" disabled><span class="glyphicon glyphicon-plus-sign"></span> Add</button>
<br>
<h2>Factor Loadings Plot</h2>
<div id="loadings_plot" style="margin-top: 20px; margin-bottom: 20px; width: 980px; border-style: solid; border-width: 1px;"></div>
@@ -98,6 +101,7 @@
</table>
</div>
{% endif %}
+<div id="myModal"></div>
{% endblock %}
{% block js %}
@@ -109,9 +113,8 @@
<script type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
<script type="text/javascript" src="/static/new/js_external/d3-tip.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/new/js_external/md5.min.js"></script>
<script type="text/javascript" src="/static/new/javascript/panelutil.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/js_external/chroma.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/javascript/loadings_plot.js"></script>