diff options
author | zsloan | 2019-03-01 10:30:52 -0600 |
---|---|---|
committer | zsloan | 2019-03-01 10:30:52 -0600 |
commit | e14f913da79111c3db8d6faced45d92281865cb1 (patch) | |
tree | e07bf923bdce9ce939f1d9580a5f70b6f60c956f | |
parent | 3dae9e9580ea535c22d862ca1c65f25378b69926 (diff) | |
download | genenetwork2-e14f913da79111c3db8d6faced45d92281865cb1.tar.gz |
Added more information to the top-right corner of the mapping results
Fixed sorting issues on correlation page
-rw-r--r-- | wqflask/wqflask/marker_regression/display_mapping_results.py | 67 | ||||
-rw-r--r-- | wqflask/wqflask/templates/correlation_page.html | 56 | ||||
-rw-r--r-- | wqflask/wqflask/views.py | 7 |
3 files changed, 70 insertions, 60 deletions
diff --git a/wqflask/wqflask/marker_regression/display_mapping_results.py b/wqflask/wqflask/marker_regression/display_mapping_results.py index fa20e8ad..2d0ed1d7 100644 --- a/wqflask/wqflask/marker_regression/display_mapping_results.py +++ b/wqflask/wqflask/marker_regression/display_mapping_results.py @@ -24,7 +24,7 @@ # # Last updated by Zach 12/14/2010 -import time +import datetime import string from math import * import piddle as pid @@ -146,6 +146,7 @@ class DisplayMappingResults(object): self.dataset = start_vars['dataset'] self.this_trait = start_vars['this_trait'] + self.n_samples = len(start_vars['vals']) self.species = start_vars['species'] if 'genofile_string' in start_vars: self.genofile_string = start_vars['genofile_string'] @@ -474,10 +475,10 @@ class DisplayMappingResults(object): #calculating margins xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset if self.multipleInterval: - yTopOffset = max(80, yTopOffset) + yTopOffset = max(90, yTopOffset) else: if self.legendChecked: - yTopOffset = max(80, yTopOffset) + yTopOffset = max(90, yTopOffset) else: pass @@ -879,52 +880,68 @@ class DisplayMappingResults(object): labelFont = pid.Font(ttf="verdana",size=12*fontZoom) labelColor = pid.black - if self.selectedChr == -1: - string1 = 'Mapping for Dataset: %s, mapping on All Chromosomes' % self.dataset.group.name + if self.dataset.type == "Publish" or self.dataset.type == "Geno": + dataset_label = self.dataset.fullname else: - string1 = 'Mapping for Dataset: %s, mapping on Chromosome %s' % (self.dataset.group.name, self.ChrList[self.selectedChr][0]) + dataset_label = "%s - %s" % (self.dataset.group.name, self.dataset.fullname) - string3 = '' + string1 = 'Dataset: %s' % (dataset_label) + + string2 = 'Using Genotype File: %s' % self.genofile_string + + string4 = '' if self.mapping_method == "gemma" or self.mapping_method == "gemma_bimbam": if self.use_loco == "True": - string2 = 'Using GEMMA mapping method with LOCO and ' + string3 = 'Using GEMMA mapping method with LOCO and ' else: - string2 = 'Using GEMMA mapping method with ' + string3 = 'Using GEMMA mapping method with ' if self.covariates != "": - string2 += 'the cofactors below:' + string3 += 'the cofactors below:' cofactor_names = ", ".join([covar.split(":")[0] for covar in self.covariates.split(",")]) - string3 = cofactor_names + string4 = cofactor_names else: - string2 += 'no cofactors' + string3 += 'no cofactors' elif self.mapping_method == "rqtl_plink" or self.mapping_method == "rqtl_geno": - string2 = 'Using R/qtl mapping method with ' + string3 = 'Using R/qtl mapping method with ' if self.controlLocus and self.doControl != "false": - string2 += '%s as control' % self.controlLocus + string3 += '%s as control' % self.controlLocus else: - string2 += 'no control for other QTLs' - elif self.mapping_method == "plink": - string2 = 'Using PLINK mapping method with no control for other QTLs' + string3 += 'no control for other QTLs' else: - string2 = 'Using Haldane mapping function with ' + string3 = 'Using Haldane mapping function with ' if self.controlLocus and self.doControl != "false": - string2 += '%s as control' % self.controlLocus + string3 += '%s as control' % self.controlLocus else: - string2 += 'no control for other QTLs' + string3 += 'no control for other QTLs' if self.this_trait.name: + if self.selectedChr == -1: + identification = "Mapping on All Chromosomes for " + else: + identification = "Mapping on Chromosome %s for " % (self.ChrList[self.selectedChr][0]) + if self.this_trait.symbol: - identification = "Trait ID: %s : %s : %s" % (self.this_trait.symbol, self.dataset.fullname, self.this_trait.name) + identification += "Trait: %s - %s" % (self.this_trait.name, self.this_trait.symbol) + elif self.this_trait.post_publication_abbreviation: + identification += "Trait: %s - %s" % (self.this_trait.name, self.this_trait.post_publication_abbreviation) + elif self.this_trait.pre_publication_abbreviation: + identification += "Trait: %s - %s" % (self.this_trait.name, self.this_trait.pre_publication_abbreviation) else: - identification = "Trait ID: %s : %s" % (self.dataset.fullname, self.this_trait.name) + identification += "Trait: %s" % (self.this_trait.name) + identification += " with %s samples" % (self.n_samples) + d = 4+ max(canvas.stringWidth(identification, font=labelFont), canvas.stringWidth(string1, font=labelFont), canvas.stringWidth(string2, font=labelFont)) canvas.drawString(identification,canvas.size[0] - xRightOffset-d,20*fontZoom,font=labelFont,color=labelColor) else: d = 4+ max(canvas.stringWidth(string1, font=labelFont), canvas.stringWidth(string2, font=labelFont)) canvas.drawString(string1,canvas.size[0] - xRightOffset-d,35*fontZoom,font=labelFont,color=labelColor) canvas.drawString(string2,canvas.size[0] - xRightOffset-d,50*fontZoom,font=labelFont,color=labelColor) - if string3 != '': - canvas.drawString(string3,canvas.size[0] - xRightOffset-d,65*fontZoom,font=labelFont,color=labelColor) - + canvas.drawString(string3,canvas.size[0] - xRightOffset-d,65*fontZoom,font=labelFont,color=labelColor) + if string4 != '': + canvas.drawString(string4,canvas.size[0] - xRightOffset-d,80*fontZoom,font=labelFont,color=labelColor) + canvas.drawString("Created at: " + str(datetime.datetime.now()).split('.')[0], canvas.size[0] - xRightOffset-d,95*fontZoom,font=labelFont,color=labelColor) + else: + canvas.drawString("Created at: " + str(datetime.datetime.now()).split('.')[0], canvas.size[0] - xRightOffset-d,80*fontZoom,font=labelFont,color=labelColor) def drawGeneBand(self, canvas, gifmap, plotXScale, offset= (40, 120, 80, 10), zoom = 1, startMb = None, endMb = None): if self.plotScale != 'physic' or self.selectedChr == -1 or not self.geneCol: diff --git a/wqflask/wqflask/templates/correlation_page.html b/wqflask/wqflask/templates/correlation_page.html index 76513c82..2b5a7f33 100644 --- a/wqflask/wqflask/templates/correlation_page.html +++ b/wqflask/wqflask/templates/correlation_page.html @@ -229,42 +229,36 @@ <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script> <script type="text/javascript" charset="utf-8"> - jQuery.fn.dataTableExt.oSort['numeric-html-asc'] = function(a,b) { - a = Math.abs(parseFloat($(a).text())); - b = Math.abs(parseFloat($(b).text())); + var table_json = {{ json_results | safe }} + </script> + + <script type="text/javascript" charset="utf-8"> + + $.fn.dataTable.ext.order['dom-innertext'] = function (settings, col) { + return this.api().column(col, { order: 'index' }).nodes().map(function (td, i) { + return Math.abs(parseFloat($('a', td).text())); + }); + } + + $.fn.dataTableExt.oSort['numeric-html-asc'] = function(a,b) { + a = Math.abs(parseFloat(a)); + b = Math.abs(parseFloat(b)); return ((a < b) ? -1 : ((a > b) ? 1 : 0)); }; - jQuery.fn.dataTableExt.oSort['numeric-html-desc'] = function(a,b) { - a = Math.abs(parseFloat($(a).text())); - b = Math.abs(parseFloat($(b).text())); + $.fn.dataTableExt.oSort['numeric-html-desc'] = function(a,b) { + a = Math.abs(parseFloat(a)); + b = Math.abs(parseFloat(b)); return ((a < b) ? 1 : ((a > b) ? -1 : 0)); }; - jQuery.fn.dataTableExt.oSort['cust-txt-asc'] = function (a, b) { - if (a == 'N/A' || a == '') { - return 1; - } - else if (b == 'N/A' || b == '') { - return -1; - } - else { - return ((a < b) ? -1 : ((a > b) ? 1 : 0)); - } - }; - - jQuery.fn.dataTableExt.oSort['cust-txt-desc'] = function (a, b) { - return ((a < b) ? 1 : ((a > b) ? -1 : 0)); - }; - - - jQuery.fn.dataTableExt.oSort['scientific-asc'] = function ( a, b ) { + $.fn.dataTableExt.oSort['scientific-asc'] = function ( a, b ) { var x = parseFloat(a); var y = parseFloat(b); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }; - jQuery.fn.dataTableExt.oSort['scientific-desc'] = function ( a, b ) { + $.fn.dataTableExt.oSort['scientific-desc'] = function ( a, b ) { var x = parseFloat(a); var y = parseFloat(b); return ((x < y) ? 1 : ((x > y) ? -1 : 0)); @@ -272,8 +266,6 @@ $(document).ready( function () { - - var table_json = {{ json_results | safe }} $('#trait_table tr').click(function(event) { if (event.target.type !== 'checkbox') { @@ -346,11 +338,11 @@ { "type": "natural" }, { "type": "natural" }, { "type": "natural" }, - { "type": "natural" }, + { "orderDataType": "dom-innertext", 'orderSequence': [ "desc", "asc"] }, { "type": "natural" }, { "type": "scientific" }, - { "type": "natural" }, - { "type": "natural" }, + { "type": "numeric-html", 'orderSequence': [ "desc", "asc"] }, + { "type": "numeric-html", 'orderSequence': [ "desc", "asc"] }, { "type": "scientific" } ], "createdRow": function ( row, data, index ) { @@ -402,7 +394,7 @@ { "type": "natural" }, { "type": "natural" }, { "type": "natural" }, - { "type": "numeric-html" }, + { "orderDataType": "dom-innertext", 'orderSequence': [ "desc", "asc"] }, { "type": "natural" }, { "type": "scientific" } ], @@ -447,7 +439,7 @@ { "type": "natural" }, { "type": "natural" }, { "type": "natural" }, - { "type": "numeric-html" }, + { "orderDataType": "dom-innertext", 'orderSequence': [ "desc", "asc"] }, { "type": "natural" }, { "type": "scientific" } ], diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py index 0b0871b1..3aea2541 100644 --- a/wqflask/wqflask/views.py +++ b/wqflask/wqflask/views.py @@ -615,6 +615,9 @@ def mapping_results_page(): wanted = ( 'trait_id', 'dataset', + 'group', + 'species', + 'vals', 'geno_db_exists', 'method', 'mapping_results_path', @@ -654,9 +657,7 @@ def mapping_results_page(): 'haplotypeAnalystCheck', 'mapmethod_rqtl_geno', 'mapmodel_rqtl_geno', - 'temp_trait', - 'group', - 'species' + 'temp_trait' ) start_vars = {} for key, value in initial_start_vars.iteritems(): |