From 55c237db53037ee1f13ce782e224013aa12c51b9 Mon Sep 17 00:00:00 2001
From: zsloan
Date: Thu, 11 Aug 2022 18:24:13 +0000
Subject: Add data-trait-info attribute to checkboxes on search results page
Currently there's a separate trait_info_str function in
search_results.py, because search_results.py doesn't build the trait
objects (so it can't use the one in collect.py unless I change that to
accept traits as either a GeneralTrait class or dict - which might be
better, I'm not sure)
---
wqflask/wqflask/search_results.py | 45 +++++++++++++++++++++++
wqflask/wqflask/templates/search_result_page.html | 2 +-
2 files changed, 46 insertions(+), 1 deletion(-)
(limited to 'wqflask')
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index a82390cb..7134cc24 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -188,6 +188,8 @@ class SearchResultPage:
trait_dict['additive'] = "N/A" if not result[8] else f"{result[8]:.3f}"
+ trait_dict['trait_info_str'] = trait_info_str(trait_dict, self.dataset.type)
+
# Convert any bytes in dict to a normal utf-8 string
for key in trait_dict.keys():
if isinstance(trait_dict[key], bytes):
@@ -332,6 +334,49 @@ class SearchResultPage:
else:
return None
+def trait_info_str(trait, dataset_type):
+ """Provide a string representation for given trait"""
+ def __trait_desc(trt):
+ if dataset_type == "Geno":
+ return f"Marker: {trait['display_name']}"
+ return trait['description'] or "N/A"
+
+ def __symbol(trt):
+ if dataset_type == "ProbeSet":
+ return (trait['symbol'] or "N/A")[:20]
+
+ def __lrs(trt):
+ if dataset_type == "Geno":
+ return 0
+ else:
+ if trait['lod_score'] != "N/A":
+ return (
+ f"{float(trait['lod_score']):0.3f}" if float(trait['lod_score']) > 0
+ else f"{trait['lod_score']}")
+ else:
+ return "N/A"
+
+ def __lrs_location(trt):
+ if 'lrs_location' in trait:
+ return trait['lrs_location']
+ else:
+ return "N/A"
+
+ def __location(trt):
+ if 'location' in trait:
+ return trait['location']
+ else:
+ return None
+
+ def __mean(trt):
+ if 'mean' in trait:
+ return trait['mean']
+ else:
+ return 0
+
+ return "{}|||{}|||{}|||{}|||{}|||{}|||{}|||{}".format(
+ trait['display_name'], trait['dataset'], __trait_desc(trait), __symbol(trait),
+ __location(trait), __mean(trait), __lrs(trait), __lrs_location(trait))
def get_GO_symbols(a_search):
query = """SELECT genes
diff --git a/wqflask/wqflask/templates/search_result_page.html b/wqflask/wqflask/templates/search_result_page.html
index f0e179da..264b383d 100644
--- a/wqflask/wqflask/templates/search_result_page.html
+++ b/wqflask/wqflask/templates/search_result_page.html
@@ -200,7 +200,7 @@
'orderDataType': "dom-checkbox",
'targets': 0,
'render': function(data, type, row, meta) {
- return ''
+ return ''
}
},
{
--
cgit v1.2.3