From afa09962dcdfcd172d98339be9d70187bdb22d61 Mon Sep 17 00:00:00 2001
From: zsloan
Date: Mon, 20 Jul 2015 21:21:02 +0000
Subject: Fixed the code that generates the dataset selection drop-down for
correlations
Made changes to the tables of correlation results, collections, and search results:
- Added resizeable columns to correlation results and collections, but not to search results
because it seems that it requires Y scrolling to be set (I'll check if it makes sense to add scrolling
to the search results)
- Correlation results and collections are now in scrolling tables
- The style is the same across all of these tables now
Remaining issues:
- It doesn't seem like I can set the column width when initializing dataTables in
correlation results. I don't know why this is; it might be due to the table already being the size
of a full page. I want to be able to default to some good widths, even if the user can resize them
- I tried adding hoverForMore, but it doesn't seem to cooperate with datatable cells; I think this is
due to having to put the text in a div.
---
wqflask/base/data_set.py | 58 ++++++++++++++++++++++++++++++++----------------
1 file changed, 39 insertions(+), 19 deletions(-)
(limited to 'wqflask/base/data_set.py')
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index a572a607..c60efe65 100755
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -277,7 +277,7 @@ class DatasetGroup(object):
"""
def __init__(self, dataset):
"""This sets self.group and self.group_id"""
- print("dataset name:", dataset.name)
+ print("DATASET NAME2:", dataset.name)
self.name, self.id = g.db.execute(dataset.query_for_group).fetchone()
if self.name == 'BXD300':
self.name = "BXD"
@@ -306,13 +306,13 @@ class DatasetGroup(object):
self.markers = marker_class(self.name)
def datasets(self):
- key = "group_dataset_menu:v1:" + self.name
- print("key is:", key)
- with Bench("Loading cache"):
- result = Redis.get(key)
- if result:
- self._datasets = pickle.loads(result)
- return self._datasets
+ key = "group_dataset_menu:v2:" + self.name
+ print("key is2:", key)
+ #with Bench("Loading cache"):
+ # result = Redis.get(key)
+ #if result:
+ # self._datasets = pickle.loads(result)
+ # return self._datasets
dataset_menu = []
print("[tape4] webqtlConfig.PUBLICTHRESH:", webqtlConfig.PUBLICTHRESH)
@@ -342,18 +342,37 @@ class DatasetGroup(object):
self.name, webqtlConfig.PUBLICTHRESH,
"%" + self.name + "%", webqtlConfig.PUBLICTHRESH))
- for tissue_name, dataset in itertools.groupby(results.fetchall(), itemgetter(0)):
+ the_results = results.fetchall()
+
+ #for tissue_name, dataset in itertools.groupby(the_results, itemgetter(0)):
+ for dataset_item in the_results:
+ tissue_name = dataset_item[0]
+ dataset = dataset_item[1]
+ dataset_short = dataset_item[2]
if tissue_name in ['#PublishFreeze', '#GenoFreeze']:
- for item in dataset:
- dataset_menu.append(dict(tissue=None, datasets=[item[1:]]))
+ dataset_menu.append(dict(tissue=None, datasets=[(dataset, dataset_short)]))
else:
dataset_sub_menu = [item[1:] for item in dataset]
- dataset_menu.append(dict(tissue=tissue_name,
- datasets=dataset_sub_menu))
+
+ tissue_already_exists = False
+ tissue_position = None
+ for i, tissue_dict in enumerate(dataset_menu):
+ if tissue_dict['tissue'] == tissue_name:
+ tissue_already_exists = True
+ tissue_position = i
+ break
+
+ if tissue_already_exists:
+ print("dataset_menu:", dataset_menu[i]['datasets'])
+ dataset_menu[i]['datasets'].append((dataset, dataset_short))
+ else:
+ dataset_menu.append(dict(tissue=tissue_name,
+ datasets=[(dataset, dataset_short)]))
Redis.set(key, pickle.dumps(dataset_menu, pickle.HIGHEST_PROTOCOL))
Redis.expire(key, 60*5)
self._datasets = dataset_menu
+
return self._datasets
def get_f1_parent_strains(self):
@@ -499,6 +518,8 @@ class DataSet(object):
self.group.get_samplelist()
self.species = species.TheSpecies(self)
+ print("TESTING!!!")
+
def get_desc(self):
"""Gets overridden later, at least for Temp...used by trait's get_given_name"""
@@ -699,13 +720,13 @@ class PhenotypeDataSet(DataSet):
# Fields displayed in the search results table header
self.header_fields = ['Index',
- 'ID',
+ 'Record',
'Description',
'Authors',
'Year',
'Max LRS',
'Max LRS Location',
- 'Add. Effect ?']
+ 'Additive Effect']
self.type = 'Publish'
@@ -784,7 +805,6 @@ class PhenotypeDataSet(DataSet):
Geno.Name = %s and
Geno.SpeciesId = Species.Id
""", (species, this_trait.locus)).fetchone()
- #result = self.cursor.fetchone()
if result:
if result[0] and result[1]:
@@ -961,14 +981,14 @@ class MrnaAssayDataSet(DataSet):
# Fields displayed in the search results table header
self.header_fields = ['Index',
- 'ID',
+ 'Record',
'Symbol',
'Description',
'Location',
- 'Mean Expr',
+ 'Mean',
'Max LRS',
'Max LRS Location',
- 'Add. Effect ?']
+ 'Additive Effect']
# Todo: Obsolete or rename this field
self.type = 'ProbeSet'
--
cgit v1.2.3