--
cgit v1.2.3
From 0dfdbcbb83ffe9b349c870d02a5812bcb296a74b Mon Sep 17 00:00:00 2001
From: zsloan
Date: Fri, 4 Dec 2020 14:57:02 -0600
Subject: Added option to toggle columns on show_trait page, including case
attribute columns
---
wqflask/wqflask/templates/show_trait.html | 27 +++++++++++++++++++
.../wqflask/templates/show_trait_edit_data.html | 30 ++++++++++++++++++++++
2 files changed, 57 insertions(+)
(limited to 'wqflask')
diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html
index 7b74a3f6..3923ad2f 100644
--- a/wqflask/wqflask/templates/show_trait.html
+++ b/wqflask/wqflask/templates/show_trait.html
@@ -221,6 +221,33 @@
primary_table.search($(this).val()).draw();
} );
+ $('.toggle-vis').on('click', function (e) {
+ e.preventDefault();
+
+ function toggle_column(column) {
+ //ZS: Toggle column visibility
+ column.visible( ! column.visible() );
+ if (column.visible()){
+ $(this).removeClass("active");
+ } else {
+ $(this).addClass("active");
+ }
+ }
+
+ // Get the column API object
+ var target_cols = $(this).attr('data-column').split(",")
+ for (let i = 0; i < target_cols.length; i++){
+ console.log("THE COL:", target_cols[i])
+ var column = primary_table.column( target_cols[i] );
+ toggle_column(column);
+
+ {% if sample_groups|length != 1 %}
+ var column2 = other_table.column( target_cols[i] );
+ toggle_column(column2);
+ {% endif %}
+ }
+ } );
+
{% if sample_groups|length != 1 %}
$('#other_searchbox').on( 'keyup', function () {
other_table.search($(this).val()).draw();
diff --git a/wqflask/wqflask/templates/show_trait_edit_data.html b/wqflask/wqflask/templates/show_trait_edit_data.html
index 2e730248..4ad11a5e 100644
--- a/wqflask/wqflask/templates/show_trait_edit_data.html
+++ b/wqflask/wqflask/templates/show_trait_edit_data.html
@@ -1,6 +1,36 @@
{% for sample_type in sample_groups %}
+ {% if loop.index == 1 %}
+
Show/Hide Columns:
+
+
+
+
+ {% if sample_groups[0].se_exists %}
+
+ {% if has_num_cases %}
+
+ {% set attr_start_pos = 7 %}
+ {% else %}
+ {% set attr_start_pos = 6 %}
+ {% endif %}
+ {% else %}
+ {% if has_num_cases %}
+
+ {% set attr_start_pos = 5 %}
+ {% else %}
+ {% set attr_start_pos = 4 %}
+ {% endif %}
+ {% endif %}
+ {% if sample_groups[0].attributes %}
+ {% for attribute in sample_groups[0].attributes %}
+
+ {% endfor %}
+ {% endif %}
+
+
+ {% endif %}
--
cgit v1.2.3
From a865a2d490722e866c847a996439ed31253fea8a Mon Sep 17 00:00:00 2001
From: BonfaceKilz
Date: Sun, 6 Dec 2020 15:03:27 +0300
Subject: Add svg graph of inputs
* wqflask/wqflask/markdown_routes.py: New import:
"send_from_directory"
(svg_graph): New function that adds route for svg_graph.
* wqflask/wqflask/static/new/css/markdown.css: New style rules for svg
graph.
* wqflask/wqflask/templates/environment.html: Add new section for
displaying svg graph.
---
wqflask/wqflask/markdown_routes.py | 8 ++++++++
wqflask/wqflask/static/new/css/markdown.css | 7 ++++++-
wqflask/wqflask/templates/environment.html | 7 +++++++
3 files changed, 21 insertions(+), 1 deletion(-)
(limited to 'wqflask')
diff --git a/wqflask/wqflask/markdown_routes.py b/wqflask/wqflask/markdown_routes.py
index 3b60bc96..ebf75807 100644
--- a/wqflask/wqflask/markdown_routes.py
+++ b/wqflask/wqflask/markdown_routes.py
@@ -9,6 +9,7 @@ import sys
from bs4 import BeautifulSoup
+from flask import send_from_directory
from flask import Blueprint
from flask import render_template
@@ -99,6 +100,13 @@ def environments():
200)
+@environments_blueprint.route('/svg-dependency-graph')
+def svg_graph():
+ directory, file_name, _ = get_file_from_python_search_path(
+ "wqflask/dependency-graph.svg").partition("dependency-graph.svg")
+ return send_from_directory(directory, file_name)
+
+
@links_blueprint.route("/")
def links():
return render_template(
diff --git a/wqflask/wqflask/static/new/css/markdown.css b/wqflask/wqflask/static/new/css/markdown.css
index 38d664e2..859fe7fc 100644
--- a/wqflask/wqflask/static/new/css/markdown.css
+++ b/wqflask/wqflask/static/new/css/markdown.css
@@ -62,7 +62,8 @@
}
.graph-legend,
-#guix-graph {
+#guix-graph,
+#guix-svg-graph{
width: 90%;
margin: 10px auto;
}
@@ -71,6 +72,10 @@
border: solid 2px black;
}
+#guix-svg-graph img {
+ width: 100%;
+}
+
#markdown table {
width: 100%;
}
diff --git a/wqflask/wqflask/templates/environment.html b/wqflask/wqflask/templates/environment.html
index 5fe01dad..85133ac3 100644
--- a/wqflask/wqflask/templates/environment.html
+++ b/wqflask/wqflask/templates/environment.html
@@ -21,6 +21,13 @@
+
+
+
+
+
The dependency graph is shown below
+
+
{% endif %}
{% endblock %}
--
cgit v1.2.3
From efb6a41e7d712407f276e21f9ede3198d7e734dc Mon Sep 17 00:00:00 2001
From: Alexander Kabui
Date: Sat, 5 Dec 2020 13:35:43 +0300
Subject: modify tests for run_gemma
---
.../unit/wqflask/marker_regression/test_gemma_mapping.py | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
(limited to 'wqflask')
diff --git a/wqflask/tests/unit/wqflask/marker_regression/test_gemma_mapping.py b/wqflask/tests/unit/wqflask/marker_regression/test_gemma_mapping.py
index 5b621264..3d00dd7c 100644
--- a/wqflask/tests/unit/wqflask/marker_regression/test_gemma_mapping.py
+++ b/wqflask/tests/unit/wqflask/marker_regression/test_gemma_mapping.py
@@ -43,18 +43,18 @@ class TestGemmaMapping(unittest.TestCase):
@mock.patch("wqflask.marker_regression.gemma_mapping.GEMMA_WRAPPER_COMMAND", "ghc")
@mock.patch("wqflask.marker_regression.gemma_mapping.TEMPDIR", "/home/user/data/")
@mock.patch("wqflask.marker_regression.gemma_mapping.parse_loco_output")
- @mock.patch("wqflask.marker_regression.gemma_mapping.logger")
@mock.patch("wqflask.marker_regression.gemma_mapping.flat_files")
@mock.patch("wqflask.marker_regression.gemma_mapping.gen_covariates_file")
@mock.patch("wqflask.marker_regression.run_mapping.random.choice")
@mock.patch("wqflask.marker_regression.gemma_mapping.os")
@mock.patch("wqflask.marker_regression.gemma_mapping.gen_pheno_txt_file")
- def test_run_gemma_firstrun_set_true(self, mock_gen_pheno_txt, mock_os, mock_choice, mock_gen_covar, mock_flat_files, mock_logger, mock_parse_loco):
+ def test_run_gemma_firstrun_set_true(self, mock_gen_pheno_txt, mock_os, mock_choice, mock_gen_covar, mock_flat_files,mock_parse_loco):
"""add tests for run_gemma where first run is set to true"""
- chromosomes = []
+ this_chromosomes={}
for i in range(1, 5):
- chromosomes.append(AttributeSetter({"name": f"CH{i}"}))
- chromo = AttributeSetter({"chromosomes": chromosomes})
+ this_chromosomes[f'CH{i}']=(AttributeSetter({"name": f"CH{i}"}))
+ chromo = AttributeSetter({"chromosomes": this_chromosomes})
+
dataset_group = MockGroup(
{"name": "GP1", "genofile": "file_geno"})
dataset = AttributeSetter({"group": dataset_group, "name": "dataset1_name",
@@ -76,7 +76,6 @@ class TestGemmaMapping(unittest.TestCase):
mock_parse_loco.assert_called_once_with(dataset, "GP1_GWA_RRRRRR")
mock_os.path.isfile.assert_called_once_with(
('/home/user/imgfile_output.assoc.txt'))
- self.assertEqual(mock_logger.debug.call_count, 2)
self.assertEqual(mock_flat_files.call_count, 4)
self.assertEqual(results, ([], "GP1_GWA_RRRRRR"))
--
cgit v1.2.3
From 7e0f91dec563f08671c772e34b85e0edc14195cb Mon Sep 17 00:00:00 2001
From: Alexander Kabui
Date: Sat, 5 Dec 2020 13:43:23 +0300
Subject: add pep8 formatting
---
wqflask/tests/unit/wqflask/marker_regression/test_gemma_mapping.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'wqflask')
diff --git a/wqflask/tests/unit/wqflask/marker_regression/test_gemma_mapping.py b/wqflask/tests/unit/wqflask/marker_regression/test_gemma_mapping.py
index 3d00dd7c..b8c13ab4 100644
--- a/wqflask/tests/unit/wqflask/marker_regression/test_gemma_mapping.py
+++ b/wqflask/tests/unit/wqflask/marker_regression/test_gemma_mapping.py
@@ -53,12 +53,12 @@ class TestGemmaMapping(unittest.TestCase):
this_chromosomes={}
for i in range(1, 5):
this_chromosomes[f'CH{i}']=(AttributeSetter({"name": f"CH{i}"}))
- chromo = AttributeSetter({"chromosomes": this_chromosomes})
+ chromosomes = AttributeSetter({"chromosomes": this_chromosomes})
dataset_group = MockGroup(
{"name": "GP1", "genofile": "file_geno"})
dataset = AttributeSetter({"group": dataset_group, "name": "dataset1_name",
- "species": AttributeSetter({"chromosomes": chromo})})
+ "species": AttributeSetter({"chromosomes": chromosomes})})
trait = AttributeSetter({"name": "trait1"})
samples = []
mock_gen_pheno_txt.return_value = None
--
cgit v1.2.3
From 7a35308b11a004f1c0899bdb2a2b982597869808 Mon Sep 17 00:00:00 2001
From: BonfaceKilz
Date: Sun, 6 Dec 2020 19:33:33 +0300
Subject: Add descriptive paragraph for svg graph
* wqflask/wqflask/templates/environment.html: New paragraph.
---
wqflask/wqflask/templates/environment.html | 3 +++
1 file changed, 3 insertions(+)
(limited to 'wqflask')
diff --git a/wqflask/wqflask/templates/environment.html b/wqflask/wqflask/templates/environment.html
index 85133ac3..89e805ce 100644
--- a/wqflask/wqflask/templates/environment.html
+++ b/wqflask/wqflask/templates/environment.html
@@ -26,6 +26,9 @@
The dependency graph is shown below
+
+
To explore this image SVG you may want to open it in new browser page and zoom in. Or use an SVG viewing application.
+
{% endif %}
--
cgit v1.2.3
From d0a3db3851bc2895a8775b1dc7c01a92f9c8c85c Mon Sep 17 00:00:00 2001
From: zsloan
Date: Mon, 7 Dec 2020 14:22:54 -0600
Subject: Changed the logic in create_trait so that permissions should always
be set, and added an assert that 'name' is passed instead of using if/else,
since it should always be passed
---
wqflask/base/trait.py | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
(limited to 'wqflask')
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index ec8c40a0..50bd8874 100644
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -25,19 +25,19 @@ def create_trait(**kw):
assert bool(kw.get('dataset')) != bool(
kw.get('dataset_name')), "Needs dataset ob. or name"
- if kw.get('name'):
- if kw.get('dataset_name'):
- if kw.get('dataset_name') != "Temp":
- dataset = create_dataset(kw.get('dataset_name'))
- else:
- dataset = kw.get('dataset')
+ assert bool(kw.get('name')), "Needs trait name"
+ if kw.get('dataset_name'):
if kw.get('dataset_name') != "Temp":
- if dataset.type == 'Publish':
- permissions = check_resource_availability(
- dataset, kw.get('name'))
- else:
- permissions = check_resource_availability(dataset)
+ dataset = create_dataset(kw.get('dataset_name'))
+ else:
+ dataset = kw.get('dataset')
+
+ if dataset.type == 'Publish':
+ permissions = check_resource_availability(
+ dataset, kw.get('name'))
+ else:
+ permissions = check_resource_availability(dataset)
if "view" in permissions['data']:
the_trait = GeneralTrait(**kw)
--
cgit v1.2.3
From bf08713e14dad10f7af6637e8cd4e52025e33e3e Mon Sep 17 00:00:00 2001
From: zsloan
Date: Mon, 7 Dec 2020 14:23:52 -0600
Subject: Fixed issue where the correlation scatterplot link wasn't being
displayed after the recent correlation table changes
Fixed issue where the Sample p(r/rho) sort wasn't sorting using scientific notation, which resulted in the initial sort being bad
---
wqflask/wqflask/templates/correlation_page.html | 39 +++++++++++++++++++------
1 file changed, 30 insertions(+), 9 deletions(-)
(limited to 'wqflask')
diff --git a/wqflask/wqflask/templates/correlation_page.html b/wqflask/wqflask/templates/correlation_page.html
index 06ee9056..68566ee5 100644
--- a/wqflask/wqflask/templates/correlation_page.html
+++ b/wqflask/wqflask/templates/correlation_page.html
@@ -345,8 +345,15 @@
'title': "Sample {% if corr_method == 'pearson' %}r{% else %}rho{% endif %}",
'type': "natural-minus-na",
'width': "40px",
- 'data': "sample_r",
- 'orderSequence': [ "desc", "asc"]
+ 'data': null,
+ 'orderSequence': [ "desc", "asc"],
+ 'render': function(data, type, row, meta) {
+ if (data.sample_r != "N/A") {
+ return "
" + data.sample_r + ""
+ } else {
+ return data.sample_r
+ }
+ }
},
{
'title': "N",
@@ -357,7 +364,7 @@
},
{
'title': "Sample p({% if corr_method == 'pearson' %}r{% else %}rho{% endif %})",
- 'type': "natural-minus-na",
+ 'type': "scientific",
'width': "65px",
'data': "sample_p",
'orderSequence': [ "desc", "asc"]
@@ -459,8 +466,15 @@
'title': "Sample {% if corr_method == 'pearson' %}r{% else %}rho{% endif %}",
'type': "natural-minus-na",
'width': "40px",
- 'data': "sample_r",
- 'orderSequence': [ "desc", "asc"]
+ 'data': null,
+ 'orderSequence': [ "desc", "asc"],
+ 'render': function(data, type, row, meta) {
+ if (data.sample_r != "N/A") {
+ return "
" + data.sample_r + ""
+ } else {
+ return data.sample_r
+ }
+ }
},
{
'title': "N",
@@ -471,7 +485,7 @@
},
{
'title': "Sample p({% if corr_method == 'pearson' %}r{% else %}rho{% endif %})",
- 'type': "natural-minus-na",
+ 'type': "scientific",
'width': "65px",
'data': "sample_p",
'orderSequence': [ "desc", "asc"]
@@ -506,8 +520,15 @@
'title': "Sample {% if corr_method == 'pearson' %}r{% else %}rho{% endif %}",
'type': "natural-minus-na",
'width': "40px",
- 'data': "sample_r",
- 'orderSequence': [ "desc", "asc"]
+ 'data': null,
+ 'orderSequence': [ "desc", "asc"],
+ 'render': function(data, type, row, meta) {
+ if (data.sample_r != "N/A") {
+ return "
" + data.sample_r + ""
+ } else {
+ return data.sample_r
+ }
+ }
},
{
'title': "N",
@@ -518,7 +539,7 @@
},
{
'title': "Sample p({% if corr_method == 'pearson' %}r{% else %}rho{% endif %})",
- 'type': "natural-minus-na",
+ 'type': "scientific",
'width': "65px",
'data': "sample_p",
'orderSequence': [ "desc", "asc"]
--
cgit v1.2.3
From f09b3780ca8845a887db0c75564c76bd9a38bb64 Mon Sep 17 00:00:00 2001
From: Alexander Kabui
Date: Tue, 8 Dec 2020 15:02:42 +0300
Subject: replace d3-tip css in templates
---
wqflask/wqflask/templates/comparison_bar_chart.html | 2 +-
wqflask/wqflask/templates/correlation_matrix.html | 2 +-
wqflask/wqflask/templates/heatmap.html | 2 +-
wqflask/wqflask/templates/pair_scan_results.html | 2 +-
wqflask/wqflask/templates/show_trait.html | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
(limited to 'wqflask')
diff --git a/wqflask/wqflask/templates/comparison_bar_chart.html b/wqflask/wqflask/templates/comparison_bar_chart.html
index f791457f..b27a6b06 100644
--- a/wqflask/wqflask/templates/comparison_bar_chart.html
+++ b/wqflask/wqflask/templates/comparison_bar_chart.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}Comparison Bar Chart{% endblock %}
{% block css %}
-
+
{% endblock %}
{% block content %}
diff --git a/wqflask/wqflask/templates/correlation_matrix.html b/wqflask/wqflask/templates/correlation_matrix.html
index 4e150618..96ad9c35 100644
--- a/wqflask/wqflask/templates/correlation_matrix.html
+++ b/wqflask/wqflask/templates/correlation_matrix.html
@@ -4,7 +4,7 @@
-
+
{% endblock %}
{% block content %}
diff --git a/wqflask/wqflask/templates/heatmap.html b/wqflask/wqflask/templates/heatmap.html
index 497838dd..b16de42e 100644
--- a/wqflask/wqflask/templates/heatmap.html
+++ b/wqflask/wqflask/templates/heatmap.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}Heatmap{% endblock %}
{% block css %}
-
+
{% endblock %}
{% block content %}
diff --git a/wqflask/wqflask/templates/pair_scan_results.html b/wqflask/wqflask/templates/pair_scan_results.html
index f1646af7..d64bb4b4 100644
--- a/wqflask/wqflask/templates/pair_scan_results.html
+++ b/wqflask/wqflask/templates/pair_scan_results.html
@@ -4,7 +4,7 @@
-
+
{% endblock %}
diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html
index 3923ad2f..07efbe62 100644
--- a/wqflask/wqflask/templates/show_trait.html
+++ b/wqflask/wqflask/templates/show_trait.html
@@ -5,7 +5,7 @@
-
+
--
cgit v1.2.3