From fb00e2b7a2d3c18878c1a1fa8aad6dd3ef7c005f Mon Sep 17 00:00:00 2001 From: Kanwei Li Date: Thu, 19 Nov 2009 18:55:35 -0500 Subject: [PATCH] trackster: load block data incrementally, huge performance gains from drawing smaller tiles --- .../tracks/data/interval_index.py | 4 +- static/scripts/packed/galaxy.base.js | 2 +- static/scripts/packed/trackster.js | 2 +- static/scripts/trackster.js | 81 +++++++++---------- 4 files changed, 42 insertions(+), 47 deletions(-) diff --git a/lib/galaxy/visualization/tracks/data/interval_index.py b/lib/galaxy/visualization/tracks/data/interval_index.py index 9a99ad7b597..b6a627badde 100644 --- a/lib/galaxy/visualization/tracks/data/interval_index.py +++ b/lib/galaxy/visualization/tracks/data/interval_index.py @@ -18,11 +18,10 @@ class IntervalIndexDataProvider( object ): index = Indexes( self.converted_dataset.file_name ) results = [] - uid = 0 for start, end, offset in index.find(chrom, start, end): source.seek(offset) feature = source.readline().split() - payload = { 'uid': uid, 'start': start, 'end': end, 'name': feature[3] } + payload = { 'uid': offset, 'start': start, 'end': end, 'name': feature[3] } try: payload['strand'] = feature[5] except IndexError: @@ -44,6 +43,5 @@ class IntervalIndexDataProvider( object ): pass results.append(payload) - uid += 1 return results diff --git a/static/scripts/packed/galaxy.base.js b/static/scripts/packed/galaxy.base.js index 89c20a02370..44c6520185a 100644 --- a/static/scripts/packed/galaxy.base.js +++ b/static/scripts/packed/galaxy.base.js @@ -1 +1 @@ -$.fn.makeAbsolute=function(a){return this.each(function(){var b=$(this);var c=b.position();b.css({position:"absolute",marginLeft:0,marginTop:0,top:c.top,left:c.left,right:$(window).width()-(c.left+b.width())});if(a){b.remove().appendTo("body")}})};jQuery(document).ready(function(){jQuery("a[confirm]").click(function(){return confirm(jQuery(this).attr("confirm"))});jQuery("div[popupmenu]").each(function(){var c={};$(this).find("a").each(function(){var b=$(this).attr("confirm"),d=$(this).attr("href"),e=$(this).attr("target");c[$(this).text()]=function(){if(!b||confirm(b)){var g=window;if(e=="_parent"){g=window.parent}g.location=d}}});var a=$("#"+$(this).attr("popupmenu"));make_popupmenu(a,c);$(this).remove();a.show()})});function ensure_popup_helper(){if($("#popup-helper").length==0){$("