diff options
author | zsloan | 2016-08-24 19:01:20 +0000 |
---|---|---|
committer | zsloan | 2016-08-24 19:01:20 +0000 |
commit | 4695840f6100d566c251eaa09498a60f6d7cfe29 (patch) | |
tree | 486bea7fd4ef2b4a11c32cd2e7aa6c0504efe724 | |
parent | 75b025f4cceb8c67aa487f3f8e4ef297dd6b1cbf (diff) | |
download | genenetwork2-4695840f6100d566c251eaa09498a60f6d7cfe29.tar.gz |
Replaced post-publication description with pre-publication description for confidential phenotype traits in search results and trait pages
Fixed table style for mapping results and interval analyst tables and added additive/dominance effect columns to the former
Fixed mapping figure X-axis to accurately label Centimorgans vs Megabases (previously it would always say Megabases)
Removed the "Sequence Site" marker from mapping result figure when mapping with genetics (centimorgans) scale
Removed some unused javascript libary imports from search/global search pages
-rw-r--r-- | wqflask/base/trait.py | 15 | ||||
-rw-r--r-- | wqflask/wqflask/marker_regression/marker_regression.py | 2 | ||||
-rw-r--r-- | wqflask/wqflask/marker_regression/marker_regression_gn1.py | 13 | ||||
-rw-r--r-- | wqflask/wqflask/templates/gsearch_gene.html | 2 | ||||
-rw-r--r-- | wqflask/wqflask/templates/gsearch_pheno.html | 2 | ||||
-rw-r--r-- | wqflask/wqflask/templates/marker_regression_gn1.html | 77 | ||||
-rw-r--r-- | wqflask/wqflask/templates/search_result_page.html | 2 |
7 files changed, 78 insertions, 35 deletions
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py index f18481a8..900e050c 100644 --- a/wqflask/base/trait.py +++ b/wqflask/base/trait.py @@ -322,7 +322,7 @@ class GeneralTrait(object): #phenotype traits, then display the pre-publication description instead #of the post-publication description if self.confidential: - self.description_display = "" + self.description_display = self.pre_publication_description #if not webqtlUtil.hasAccessToConfidentialPhenotypeTrait( # privilege=self.dataset.privilege, @@ -330,11 +330,11 @@ class GeneralTrait(object): # authorized_users=self.authorized_users): # # description = self.pre_publication_description - - if description: - self.description_display = description.strip() else: - self.description_display = "" + if description: + self.description_display = description.strip() + else: + self.description_display = "" if not self.year.isdigit(): self.pubmed_text = "N/A" @@ -612,7 +612,10 @@ class GeneralTrait(object): if self.probe_target_description: formatted += "; " + self.probe_target_description elif self.dataset.type == 'Publish': - formatted = self.post_publication_description + if self.confidential: + formatted = self.pre_publication_description + else: + formatted = self.post_publication_description else: formatted = "Not available" return formatted.capitalize() diff --git a/wqflask/wqflask/marker_regression/marker_regression.py b/wqflask/wqflask/marker_regression/marker_regression.py index 89af856e..a53afd5a 100644 --- a/wqflask/wqflask/marker_regression/marker_regression.py +++ b/wqflask/wqflask/marker_regression/marker_regression.py @@ -702,8 +702,6 @@ class MarkerRegression(object): control = control_geno, nboot = self.num_bootstrap) else: - # reaper_results = genotype.regression(strains = self.samples, - # trait = self.vals) reaper_results = genotype.regression(strains = trimmed_samples, trait = trimmed_values) diff --git a/wqflask/wqflask/marker_regression/marker_regression_gn1.py b/wqflask/wqflask/marker_regression/marker_regression_gn1.py index 4f52bd55..f902afb7 100644 --- a/wqflask/wqflask/marker_regression/marker_regression_gn1.py +++ b/wqflask/wqflask/marker_regression/marker_regression_gn1.py @@ -810,7 +810,7 @@ class MarkerRegression(object): #draw bootstap #if self.bootChecked and not self.multipleInterval: - # self.drawBootStrapResult(canvas, self.nboot, drawAreaHeight, plotXScale, offset=newoffset) + # self.drawBootStrapResult(canvas, self.nboot, drawAreaHeight, plotXScale, offset=newoffset, zoom= zoom, startMb=startMb, endMb = endMb) # Draw clickable region and gene band if selected if self.plotScale == 'physic' and self.selectedChr > -1: @@ -857,7 +857,7 @@ class MarkerRegression(object): BootCoord = [] i = 0 startX = xLeftOffset - + if self.selectedChr == -1: #ZS: If viewing full genome/all chromosomes for j, _chr in enumerate(self.genotype): BootCoord.append( []) @@ -876,7 +876,7 @@ class MarkerRegression(object): for _locus in _chr: if _chr.name == self.ChrList[self.selectedChr][0]: if self.plotScale == 'physic': - Xc = startX + (_locus.Mb-self.startMb)*plotXScale + Xc = startX + (_locus.Mb-startMb)*plotXScale else: Xc = startX + (_locus.cM-_chr[0].cM)*plotXScale BootCoord[-1].append([Xc, self.bootResult[i]]) @@ -1017,7 +1017,7 @@ class MarkerRegression(object): else: locPixel += (Mb*(_chr[-1].cM-_chr[0].cM)/self.ChrLengthCMList[i])*plotXScale break - if locPixel >= 0: + if locPixel >= 0 and self.plotScale == 'physic': traitPixel = ((locPixel, yZero), (locPixel-6, yZero+12), (locPixel+6, yZero+12)) canvas.drawPolygon(traitPixel, edgeColor=pid.black, fillColor=self.TRANSCRIPT_LOCATION_COLOR, closed=1) @@ -1762,6 +1762,7 @@ class MarkerRegression(object): strYLoc + canvas.fontHeight(MBLabelFont)+ 10*(zoom%2) + 10, font=megabaseLabelFont, color=pid.black) pass else: + strYLoc = yZero + spacingFromLabelToAxis + canvas.fontHeight(MBLabelFont) + 8 ChrAInfo = [] preLpos = -1 distinctCount = 0.0 @@ -1847,6 +1848,10 @@ class MarkerRegression(object): if j == 0: canvas.drawLine(startPosX,yZero,startPosX,yZero+40, color=lineColor) startPosX += (self.ChrLengthDistList[j]+self.GraphInterval)*plotXScale + + centimorganLabelFont = pid.Font(ttf="verdana", size=18*zoom*1.5, bold=0) + canvas.drawString("Centimorgans", xLeftOffset + (plotWidth - canvas.stringWidth("Megabases", font=centimorganLabelFont))/2, + strYLoc + canvas.fontHeight(MBLabelFont)+ 10*(zoom%2) + 10, font=centimorganLabelFont, color=pid.black) canvas.drawLine(xLeftOffset, yZero, xLeftOffset+plotWidth, yZero, color=pid.black, width=X_AXIS_THICKNESS) # Draw the X axis itself diff --git a/wqflask/wqflask/templates/gsearch_gene.html b/wqflask/wqflask/templates/gsearch_gene.html index a50157ce..2d970b36 100644 --- a/wqflask/wqflask/templates/gsearch_gene.html +++ b/wqflask/wqflask/templates/gsearch_gene.html @@ -93,7 +93,7 @@ {% block js %} <script language="javascript" type="text/javascript" src="/static/new/javascript/search_results.js"></script> - <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script> + <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/dataTables.buttons.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/buttons.html5.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/buttons.bootstrap.min.js"></script> diff --git a/wqflask/wqflask/templates/gsearch_pheno.html b/wqflask/wqflask/templates/gsearch_pheno.html index b28a34df..be4981bb 100644 --- a/wqflask/wqflask/templates/gsearch_pheno.html +++ b/wqflask/wqflask/templates/gsearch_pheno.html @@ -86,7 +86,7 @@ {% block js %} <script language="javascript" type="text/javascript" src="/static/new/javascript/search_results.js"></script> - <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script> + <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/dataTables.buttons.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/buttons.html5.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/buttons.bootstrap.min.js"></script> diff --git a/wqflask/wqflask/templates/marker_regression_gn1.html b/wqflask/wqflask/templates/marker_regression_gn1.html index c5cb278c..7454b650 100644 --- a/wqflask/wqflask/templates/marker_regression_gn1.html +++ b/wqflask/wqflask/templates/marker_regression_gn1.html @@ -169,14 +169,16 @@ </div> </form> - <div style="width:48%;"> - {% if selectedChr == -1 %} + {% if selectedChr == -1 %} + <div style="width:{% if 'additive' in trimmed_markers[0] %}50%{% else %}35%{% endif %};"> <h2>Results</h2> + <div id="table_container" style="background-color: #eeeeee; border: 1px solid black;"> <table id="qtl_results" class="table table-hover table-striped"> <thead> <tr> <th></th> - <th>Index</th> + <th>Row</th> + <th>Locus</th> <th>{{ LRS_LOD }}</th> <th>Chr</th> {% if plotScale == "centimorgan" %} @@ -184,7 +186,12 @@ {% else %} <th>Mb</th> {% endif %} - <th>Locus</th> + {% if 'additive' in trimmed_markers[0] %} + <th>Add Eff</th> + {% endif %} + {% if 'dominance' in trimmed_markers[0] %} + <th>Dom Eff</th> + {% endif %} </tr> </thead> <tbody> @@ -196,6 +203,7 @@ value="{{ marker.name }}" checked="checked"> </td> <td align="right">{{ loop.index }}</td> + <td>{{ marker.name }}</td> {% if LRS_LOD == "LOD" %} {% if 'lod_score' in marker %} <td>{{ '%0.2f' | format(marker.lod_score|float) }}</td> @@ -211,13 +219,22 @@ {% endif %} <td>{{marker.chr}}</td> <td>{{ '%0.6f' | format(marker.Mb|float) }}</td> - <td>{{ marker.name }}</td> + {% if 'additive' in marker %} + <td>{{ '%0.3f' | format(marker.additive|float) }}</td> + {% endif %} + {% if 'dominance' in marker %} + <td>{{ '%0.2f' | format(marker.dominance|float) }}</td> + {% endif %} </tr> {% endfor %} </tbody> </table> - {% else %} + </div> + </div> + {% else %} + <div> <h2>Interval Analyst</h2> + <div id="table_container" style="background-color: #eeeeee; border: 1px solid black;"> <table id="interval_analyst" class="table table-hover table-striped"> <thead> <tr> @@ -236,8 +253,9 @@ {% endfor %} </tbody> </table> - {% endif %} + </div> </div> + {% endif %} </div> <!-- End of body --> @@ -251,7 +269,7 @@ <script type="text/javascript" src="/static/new/js_external/underscore.string.min.js"></script> <script type="text/javascript" src="/static/new/js_external/d3-tip.min.js"></script> - <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.js"></script> + <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/dataTables.buttons.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/buttons.html5.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/buttons.bootstrap.min.js"></script> @@ -274,26 +292,35 @@ <script type="text/javascript" charset="utf-8"> $(document).ready( function () { console.time("Creating table"); - $('#qtl_results').dataTable( { + $('#qtl_results').DataTable( { "columns": [ - { "type": "natural", "sWidth": "10%", "bSortable": false }, + { "type": "natural", "width": "5%", "bSortable": false }, + { "type": "natural", "width": "6%" }, + { "type": "natural" }, { "type": "natural" }, { "type": "natural" }, { "type": "natural" }, { "type": "natural" }, - { "type": "natural", "sWidth": "30%"} + { "type": "natural" } ], - "order": [[1, "asc"]], + "order": [[1, "asc" ]], "buttons": [ - 'csv' + { + extend: 'csvHtml5', + text: 'Download CSV', + title: 'search_results', + fieldBoundary: '"', + exportOptions: { + columns: [1, 2, 3, 4, 5, 6, 7, 8] + } + } ], "sDom": "RZBtir", "iDisplayLength": -1, - "autoWidth": true, "bDeferRender": true, "bSortClasses": false, - "scrollY": "700px", - "scrollCollapse": true, + "scrollY": true, + "scrollCollapse": false, "paging": false } ); @@ -302,12 +329,24 @@ "targets": 0, "sortable": false }], - "order": [[3, "asc"]], - "sDom": "RZtir", + "order": [[3, "asc" ]], + "buttons": [ + { + extend: 'csvHtml5', + text: 'Download CSV', + title: 'search_results', + fieldBoundary: '"', + exportOptions: { + columns: [1, 2, 3, 4, 5, 6, 7, 8, 9] + } + } + ], + "sDom": "RZBtir", "iDisplayLength": -1, - "autoWidth": true, "bDeferRender": true, "bSortClasses": false, + "scrollY": true, + "scrollCollapse": false, "paging": false } ); diff --git a/wqflask/wqflask/templates/search_result_page.html b/wqflask/wqflask/templates/search_result_page.html index 4ba2d802..523037f8 100644 --- a/wqflask/wqflask/templates/search_result_page.html +++ b/wqflask/wqflask/templates/search_result_page.html @@ -163,7 +163,6 @@ <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/dataTables.buttons.min.js"></script> - <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/scroller/1.4.1/js/dataTables.scroller.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/buttons.html5.min.js"></script> <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/buttons.bootstrap.min.js"></script> <script language="javascript" type="text/javascript" src="/static/new/js_external/jszip.min.js"></script> @@ -171,7 +170,6 @@ <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.colResize.js"></script> <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.colReorder.js"></script> <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.fixedHeader.min.js"></script> - <script language="javascript" type="text/javascript" src="//cdn.datatables.net/fixedcolumns/3.0.4/js/dataTables.fixedColumns.min.js"></script> <script type="text/javascript" charset="utf-8"> function getValue(x) { |