about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/search_results.py45
-rw-r--r--wqflask/wqflask/templates/search_result_page.html2
2 files changed, 46 insertions, 1 deletions
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 '<input type="checkbox" name="searchResult" class="checkbox trait_checkbox" value="' + data.hmac + '">'
+                return '<input type="checkbox" name="searchResult" class="checkbox trait_checkbox" value="' + data.hmac + '" data-trait-info="' + data.trait_info_str + '">'
               }
             },
             {