aboutsummaryrefslogtreecommitdiff
path: root/wqflask/base/trait.py
diff options
context:
space:
mode:
authorzsloan2016-11-02 20:00:04 +0000
committerzsloan2016-11-02 20:00:04 +0000
commit717677b0c09f6ba08268db12d4889503cc2606d9 (patch)
treee362121714dcffec39c68b22e1780fd0a4125aba /wqflask/base/trait.py
parent684f461b815e3920419874fccb036c359cae35d8 (diff)
downloadgenenetwork2-717677b0c09f6ba08268db12d4889503cc2606d9.tar.gz
Added Scroller functionality to regular (but not global) search, which increases table load speed
In order to implement Scroller (and make table look nicer), all rows are the same height and excess description/authors text is shown in a tooltip Increased table width for non-Geno DBs Fixed issue where Genotype traits did not fetch their location_repr (text for displaying location), causing that column to be blank in searches Fixed issue causing Correlation Matrix cells to not be colored corresponding with their correlation and also increased cell font a little Fixed issue where dataset link in the Correlation Page did not correctly point to corresponding GN1 page
Diffstat (limited to 'wqflask/base/trait.py')
-rw-r--r--wqflask/base/trait.py103
1 files changed, 91 insertions, 12 deletions
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index 276c624a..8788d983 100644
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -91,16 +91,27 @@ class GeneralTrait(object):
additive=self.additive
)
elif self.dataset.type == "Publish":
- return dict(name=self.name,
- dataset=self.dataset.name,
- description=self.description_display,
- authors=self.authors,
- pubmed_text=self.pubmed_text,
- pubmed_link=self.pubmed_link,
- lrs_score=self.LRS_score_repr,
- lrs_location=self.LRS_location_repr,
- additive=self.additive
- )
+ if self.pubmed_id:
+ return dict(name=self.name,
+ dataset=self.dataset.name,
+ description=self.description_display,
+ authors=self.authors,
+ pubmed_text=self.pubmed_text,
+ pubmed_link=self.pubmed_link,
+ lrs_score=self.LRS_score_repr,
+ lrs_location=self.LRS_location_repr,
+ additive=self.additive
+ )
+ else:
+ return dict(name=self.name,
+ dataset=self.dataset.name,
+ description=self.description_display,
+ authors=self.authors,
+ pubmed_text=self.pubmed_text,
+ lrs_score=self.LRS_score_repr,
+ lrs_location=self.LRS_location_repr,
+ additive=self.additive
+ )
elif self.dataset.type == "Geno":
return dict(name=self.name,
dataset=self.dataset.name,
@@ -109,6 +120,62 @@ class GeneralTrait(object):
else:
return dict()
+ def jsonable_table_row(self, index, search_type):
+ """Return a list suitable for json and intended to be displayed in a table
+
+ Actual turning into json doesn't happen here though"""
+
+ if self.dataset.type == "ProbeSet":
+ if self.mean == "":
+ mean = "N/A"
+ else:
+ mean = "%.3f" % round(float(self.additive), 2)
+ if self.additive == "":
+ additive = "N/A"
+ else:
+ additive = "%.3f" % round(float(self.additive), 2)
+ return ['<input type="checkbox" name="searchResult" class="checkbox trait_checkbox" style="transform: scale(1.5);" value="{{ data_hmac(\'{}:{}\'.format(' + str(self.name) + ',' + self.dataset.name + ')) }}">',
+ index,
+ '<a href="/show_trait?trait_id='+str(self.name)+'&dataset='+self.dataset.name+'">'+str(self.name)+'</a>',
+ self.symbol,
+ self.description_display,
+ self.location_repr,
+ mean,
+ self.LRS_score_repr,
+ self.LRS_location_repr,
+ additive]
+ elif self.dataset.type == "Publish":
+ if self.additive == "":
+ additive = "N/A"
+ else:
+ additive = "%.2f" % round(float(self.additive), 2)
+ if self.pubmed_id:
+ return ['<input type="checkbox" name="searchResult" class="checkbox trait_checkbox" style="transform: scale(1.5);" value="{{ data_hmac(\'{}:{}\'.format(' + str(self.name) + ',' + self.dataset.name + ')) }}">',
+ index,
+ '<a href="/show_trait?trait_id='+str(self.name)+'&dataset='+self.dataset.name+'">'+str(self.name)+'</a>',
+ self.description_display,
+ self.authors,
+ '<a href="' + self.pubmed_link + '">' + self.pubmed_text + '</href>',
+ self.LRS_score_repr,
+ self.LRS_location_repr,
+ additive]
+ else:
+ return ['<input type="checkbox" name="searchResult" class="checkbox trait_checkbox" style="transform: scale(1.5);" value="{{ data_hmac(\'{}:{}\'.format(' + str(self.name) + ',' + self.dataset.name + ')) }}">',
+ index,
+ '<a href="/show_trait?trait_id='+str(self.name)+'&dataset='+self.dataset.name+'">'+str(self.name)+'</a>',
+ self.description_display,
+ self.authors,
+ self.pubmed_text,
+ self.LRS_score_repr,
+ self.LRS_location_repr,
+ additive]
+ elif self.dataset.type == "Geno":
+ return ['<input type="checkbox" name="searchResult" class="checkbox trait_checkbox" style="transform: scale(1.5);" value="{{ data_hmac(\'{}:{}\'.format(' + str(self.name) + ',' + self.dataset.name + ')) }}">',
+ index,
+ '<a href="/show_trait?trait_id='+str(self.name)+'&dataset='+self.dataset.name+'">'+str(self.name)+'</a>',
+ self.location_repr]
+ else:
+ return dict()
def get_name(self):
stringy = ""
@@ -418,7 +485,7 @@ class GeneralTrait(object):
self.description_display = description_display
#XZ: trait_location_value is used for sorting
- trait_location_repr = 'N/A'
+ self.location_repr = 'N/A'
trait_location_value = 1000000
if self.chr and self.mb:
@@ -438,6 +505,18 @@ class GeneralTrait(object):
self.location_repr = 'Chr%s: %.6f' % (self.chr, float(self.mb))
self.location_value = trait_location_value
+ elif self.dataset.type == "Geno":
+ self.location_repr = 'N/A'
+ trait_location_value = 1000000
+
+ if self.chr and self.mb:
+ #Checks if the chromosome number can be cast to an int (i.e. isn't "X" or "Y")
+ #This is so we can convert the location to a number used for sorting
+ trait_location_value = convert_location_to_value(self.chr, self.mb)
+
+ #ZS: Put this in function currently called "convert_location_to_value"
+ self.location_repr = 'Chr%s: %.6f' % (self.chr, float(self.mb))
+ self.location_value = trait_location_value
if get_qtl_info:
#LRS and its location
@@ -459,7 +538,7 @@ class GeneralTrait(object):
logger.sql(query)
trait_qtl = g.db.execute(query).fetchone()
if trait_qtl:
- self.locus, self.lrs, self.pvalue, self.mean, self.additive= trait_qtl
+ self.locus, self.lrs, self.pvalue, self.mean, self.additive = trait_qtl
if self.locus:
query = """
select Geno.Chr, Geno.Mb from Geno, Species