aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzsloan2019-03-01 10:30:52 -0600
committerzsloan2019-03-01 10:30:52 -0600
commite14f913da79111c3db8d6faced45d92281865cb1 (patch)
treee07bf923bdce9ce939f1d9580a5f70b6f60c956f
parent3dae9e9580ea535c22d862ca1c65f25378b69926 (diff)
downloadgenenetwork2-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.py67
-rw-r--r--wqflask/wqflask/templates/correlation_page.html56
-rw-r--r--wqflask/wqflask/views.py7
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():