aboutsummaryrefslogtreecommitdiff
path: root/wqflask
diff options
context:
space:
mode:
authorzsloan2020-10-27 18:00:20 -0500
committerGitHub2020-10-27 18:00:20 -0500
commit4dac73ae7f3cabe037e44892a12600f0e4625ca5 (patch)
tree5705fd7a095edc4c1cd85490f00dce4d5a0dc27c /wqflask
parent05ad2319f96bd9fa3852079bd6f605e1b13d6dd1 (diff)
parenta63528cbae4c9fdb3fffa402fed6cc2fedce02d5 (diff)
downloadgenenetwork2-4dac73ae7f3cabe037e44892a12600f0e4625ca5.tar.gz
Merge pull request #466 from zsloan/show_trait_attributes_fix
Fix issue where attribute values were displayed in the wrong columns
Diffstat (limited to 'wqflask')
-rw-r--r--wqflask/base/webqtlCaseData.py13
-rw-r--r--wqflask/wqflask/show_trait/SampleList.py18
-rw-r--r--wqflask/wqflask/static/new/javascript/initialize_show_trait_tables.js32
3 files changed, 32 insertions, 31 deletions
diff --git a/wqflask/base/webqtlCaseData.py b/wqflask/base/webqtlCaseData.py
index 3cf2d80d..aa55470f 100644
--- a/wqflask/base/webqtlCaseData.py
+++ b/wqflask/base/webqtlCaseData.py
@@ -41,8 +41,6 @@ class webqtlCaseData:
self.this_id = None # Set a sane default (can't be just "id" cause that's a reserved word)
self.outlier = None # Not set to True/False until later
- self.first_attr_col = self.get_first_attr_col()
-
def __repr__(self):
case_data_string = "<webqtlCaseData> "
if self.value is not None:
@@ -80,13 +78,4 @@ class webqtlCaseData:
def display_num_cases(self):
if self.num_cases is not None:
return "%s" % self.num_cases
- return "x"
-
- def get_first_attr_col(self):
- col_num = 4
- if self.variance is not None:
- col_num += 2
- if self.num_cases is not None:
- col_num += 1
-
- return col_num \ No newline at end of file
+ return "x" \ No newline at end of file
diff --git a/wqflask/wqflask/show_trait/SampleList.py b/wqflask/wqflask/show_trait/SampleList.py
index e7676458..37c1d6d5 100644
--- a/wqflask/wqflask/show_trait/SampleList.py
+++ b/wqflask/wqflask/show_trait/SampleList.py
@@ -8,7 +8,6 @@ from pprint import pformat as pf
from utility import Plot
from utility import Bunch
-
class SampleList(object):
def __init__(self,
dataset,
@@ -68,6 +67,12 @@ class SampleList(object):
self.sample_list.append(sample)
self.se_exists = any(sample.variance for sample in self.sample_list)
+ self.num_cases_exists = any(sample.num_cases for sample in self.sample_list)
+
+ first_attr_col = self.get_first_attr_col()
+ for sample in self.sample_list:
+ sample.first_attr_col = first_attr_col
+
self.do_outliers()
def __repr__(self):
@@ -148,6 +153,15 @@ class SampleList(object):
attribute_values[self.attributes[item.Id].name] = attribute_value
self.sample_attribute_values[sample_name] = attribute_values
+ def get_first_attr_col(self):
+ first_attr_col = 4
+ if self.se_exists:
+ first_attr_col += 2
+ if self.num_cases_exists:
+ first_attr_col += 1
+
+ return first_attr_col
+
def natural_sort(list, key=lambda s: s):
"""
Sort the list into natural alphanumeric order.
@@ -156,4 +170,4 @@ def natural_sort(list, key=lambda s: s):
def convert(text): return int(text) if text.isdigit() else text
return lambda s: [convert(c) for c in re.split('([0-9]+)', key(s))]
sort_key = get_alphanum_key_func(key)
- list.sort(key=sort_key)
+ list.sort(key=sort_key) \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/initialize_show_trait_tables.js b/wqflask/wqflask/static/new/javascript/initialize_show_trait_tables.js
index 49822cd2..5a4f151c 100644
--- a/wqflask/wqflask/static/new/javascript/initialize_show_trait_tables.js
+++ b/wqflask/wqflask/static/new/javascript/initialize_show_trait_tables.js
@@ -75,7 +75,7 @@ build_columns = function() {
);
}
- if (js_data.has_num_cases === "true") {
+ if (js_data.has_num_cases === true) {
column_list.push(
{
'title': "<div style='text-align: right;'>N</div>",
@@ -101,7 +101,8 @@ build_columns = function() {
'type': "natural",
'data': null,
'render': function(data, type, row, meta) {
- attr_name = Object.keys(data.extra_attributes).sort((a, b) => (a > b) ? 1 : -1)[meta.col - data.first_attr_col]
+ attr_name = Object.keys(data.extra_attributes).sort()[meta.col - data.first_attr_col]
+
if (attr_name != null && attr_name != undefined){
return data.extra_attributes[attr_name]
} else {
@@ -111,7 +112,6 @@ build_columns = function() {
}
)
}
-
return column_list
}
@@ -132,23 +132,22 @@ var primary_table = $('#samples_primary').DataTable( {
$('td', row).eq(3).addClass("column_name-Value")
if (js_data.se_exists) {
$('td', row).eq(5).addClass("column_name-SE")
- if (js_data.has_num_cases === "true") {
+ if (js_data.has_num_cases === true) {
$('td', row).eq(6).addClass("column_name-num_cases")
} else {
- if (js_data.has_num_cases === "true") {
+ if (js_data.has_num_cases === true) {
$('td', row).eq(4).addClass("column_name-num_cases")
}
}
} else {
- if (js_data.has_num_cases === "true") {
+ if (js_data.has_num_cases === true) {
$('td', row).eq(4).addClass("column_name-num_cases")
}
}
- sorted_key_list = Object.keys(js_data.attributes).sort()
- for (i=0; i < sorted_key_list.length; i++) {
- $('td', row).eq(attribute_start_pos + i + 1).addClass("column_name-" + js_data.attributes[sorted_key_list[i]].name)
- $('td', row).eq(attribute_start_pos + i + 1).attr("style", "text-align: " + js_data.attributes[sorted_key_list[i]].alignment + "; padding-top: 2px; padding-bottom: 0px;")
+ for (i=0; i < attr_keys.length; i++) {
+ $('td', row).eq(attribute_start_pos + i).addClass("column_name-" + js_data.attributes[attr_keys[i]].name)
+ $('td', row).eq(attribute_start_pos + i).attr("style", "text-align: " + js_data.attributes[attr_keys[i]].alignment + "; padding-top: 2px; padding-bottom: 0px;")
}
},
'data': js_data['sample_lists'][0],
@@ -190,23 +189,22 @@ if (js_data.sample_lists.length > 1){
$('td', row).eq(3).addClass("column_name-Value")
if (js_data.se_exists) {
$('td', row).eq(5).addClass("column_name-SE")
- if (js_data.has_num_cases === "true") {
+ if (js_data.has_num_cases === true) {
$('td', row).eq(6).addClass("column_name-num_cases")
} else {
- if (js_data.has_num_cases === "true") {
+ if (js_data.has_num_cases === true) {
$('td', row).eq(4).addClass("column_name-num_cases")
}
}
} else {
- if (js_data.has_num_cases === "true") {
+ if (js_data.has_num_cases === true) {
$('td', row).eq(4).addClass("column_name-num_cases")
}
}
- sorted_key_list = Object.keys(js_data.attributes).sort()
- for (i=0; i < sorted_key_list.length; i++) {
- $('td', row).eq(attribute_start_pos + i + 1).addClass("column_name-" + js_data.attributes[sorted_key_list[i]].name)
- $('td', row).eq(attribute_start_pos + i + 1).attr("style", "text-align: " + js_data.attributes[sorted_key_list[i]].alignment + "; padding-top: 2px; padding-bottom: 0px;")
+ for (i=0; i < attr_keys.length; i++) {
+ $('td', row).eq(attribute_start_pos + i + 1).addClass("column_name-" + js_data.attributes[attr_keys[i]].name)
+ $('td', row).eq(attribute_start_pos + i + 1).attr("style", "text-align: " + js_data.attributes[attr_keys[i]].alignment + "; padding-top: 2px; padding-bottom: 0px;")
}
},
'data': js_data['sample_lists'][1],