diff options
author | zsloan | 2016-04-11 21:46:04 +0000 |
---|---|---|
committer | zsloan | 2016-04-11 21:46:04 +0000 |
commit | 6c03a5aeb95f37c477bed3f432790329a0bd5038 (patch) | |
tree | 8f29ffec56ff4bada67456b615ed2f41bf25d1c7 /wqflask/base/trait.py | |
parent | ba2909f7dd931688f344536c422bb4ac27a3a183 (diff) | |
download | genenetwork2-6c03a5aeb95f37c477bed3f432790329a0bd5038.tar.gz |
Figured out how to load results into dataTable using AJAX, but still need to get it working with Scroller correctly
Added code getting the description, etc to trait.py since it was missed from last commit
Diffstat (limited to 'wqflask/base/trait.py')
-rw-r--r-- | wqflask/base/trait.py | 55 |
1 files changed, 51 insertions, 4 deletions
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py index ce3a7608..0bc10b97 100644 --- a/wqflask/base/trait.py +++ b/wqflask/base/trait.py @@ -2,7 +2,7 @@ from __future__ import absolute_import, division, print_function import string import resource - +import codecs from htmlgen import HTMLgen2 as HT @@ -309,13 +309,50 @@ class GeneralTrait(object): holder = unicode(trait_info[i], "utf8", "ignore") setattr(self, field, holder) + description_string = unicode(str(self.description).strip(codecs.BOM_UTF8), 'utf-8') + target_string = unicode(str(self.probe_target_description).strip(codecs.BOM_UTF8), 'utf-8') + + if len(description_string) > 1 and description_string != 'None': + description_display = description_string + else: + description_display = self.symbol + + if (len(description_display) > 1 and description_display != 'N/A' and + len(target_string) > 1 and target_string != 'None'): + description_display = description_display + '; ' + target_string.strip() + + # Save it for the jinja2 template + self.description_display = description_display + + #XZ: trait_location_value is used for sorting + trait_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) + #try: + # trait_location_value = int(self.chr)*1000 + self.mb + #except ValueError: + # if self.chr.upper() == 'X': + # trait_location_value = 20*1000 + self.mb + # else: + # trait_location_value = (ord(str(self.chr).upper()[0])*1000 + + # 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 self.dataset.type == 'Publish': self.confidential = 0 if self.pre_publication_description and not self.pubmed_id: self.confidential = 1 - - description = self.post_publication_description + description = self.post_publication_description + #If the dataset is confidential and the user has access to confidential #phenotype traits, then display the pre-publication description instead #of the post-publication description @@ -662,7 +699,17 @@ class GeneralTrait(object): ZValue = ZValue*sqrt(self.overlap-3) self.p_value = 2.0*(1.0 - reaper.normp(abs(ZValue))) - +def convert_location_to_value(chromosome, mb): + try: + location_value = int(chromosome)*1000 + float(mb) + except ValueError: + if chromosome.upper() == 'X': + location_value = 20*1000 + float(mb) + else: + location_value = (ord(str(chromosome).upper()[0])*1000 + + float(mb)) + + return location_value @app.route("/trait/get_sample_data") def get_sample_data(): |