From 96f0f45ea87031a4b7ca83826a3d9c882b3ccdbd Mon Sep 17 00:00:00 2001 From: Jeremy Goecks Date: Fri, 8 Oct 2010 13:43:40 -0400 Subject: [PATCH] Finish refactoring of tracks data providers so that they all inherit from a single base object, TracksDataProvider. --- lib/galaxy/visualization/tracks/data/array_tree.py | 4 +--- lib/galaxy/visualization/tracks/data/bam.py | 9 ++------- lib/galaxy/visualization/tracks/data/summary_tree.py | 10 ++++------ 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/lib/galaxy/visualization/tracks/data/array_tree.py b/lib/galaxy/visualization/tracks/data/array_tree.py index a13123dc41d..6b38d41c41d 100644 --- a/lib/galaxy/visualization/tracks/data/array_tree.py +++ b/lib/galaxy/visualization/tracks/data/array_tree.py @@ -10,8 +10,6 @@ from math import floor, ceil, log, pow from base import TracksDataProvider class ArrayTreeDataProvider( TracksDataProvider ): - def __init__( self, dataset, original_dataset ): - self.dataset = dataset def get_stats( self, chrom ): f = open( self.dataset.file_name ) @@ -48,7 +46,7 @@ class ArrayTreeDataProvider( TracksDataProvider ): if 'stats' in kwargs: return self.get_stats(chrom) - f = open( self.dataset.file_name ) + f = open( self.converted_dataset.file_name ) d = FileArrayTreeDict( f ) # Get the right chromosome diff --git a/lib/galaxy/visualization/tracks/data/bam.py b/lib/galaxy/visualization/tracks/data/bam.py index 9278066a736..263f2a5920e 100644 --- a/lib/galaxy/visualization/tracks/data/bam.py +++ b/lib/galaxy/visualization/tracks/data/bam.py @@ -16,19 +16,14 @@ MAX_VALS = 5000 # only display first MAX_VALS datapoints class BamDataProvider( TracksDataProvider ): """ Provides access to intervals from a sorted indexed BAM file. - """ - def __init__( self, index, original_dataset ): - - self.index = index - self.original_dataset = original_dataset - + """ def get_data( self, chrom, start, end, **kwargs ): """ Fetch intervals in the region """ start, end = int(start), int(end) # Attempt to open the BAM file with index - bamfile = csamtools.Samfile( filename=self.original_dataset.file_name, mode='rb', index_filename=self.index.file_name ) + bamfile = csamtools.Samfile( filename=self.original_dataset.file_name, mode='rb', index_filename=self.converted_dataset.file_name ) message = None try: data = bamfile.fetch(start=start, end=end, reference=chrom) diff --git a/lib/galaxy/visualization/tracks/data/summary_tree.py b/lib/galaxy/visualization/tracks/data/summary_tree.py index afd5c0d48a5..a86d82b7f9e 100644 --- a/lib/galaxy/visualization/tracks/data/summary_tree.py +++ b/lib/galaxy/visualization/tracks/data/summary_tree.py @@ -6,18 +6,16 @@ import pkg_resources; pkg_resources.require( "bx-python" ) from galaxy.visualization.tracks.summary import * from math import ceil, log from galaxy.util.lrucache import LRUCache +from base import TracksDataProvider CACHE = LRUCache(20) # Store 20 recently accessed indices for performance -class SummaryTreeDataProvider( object ): - def __init__( self, dataset, original_dataset ): - self.dataset = dataset - +class SummaryTreeDataProvider( TracksDataProvider ): def get_summary( self, chrom, start, end, **kwargs): - filename = self.dataset.file_name + filename = self.converted_dataset.file_name st = CACHE[filename] if st is None: - st = summary_tree_from_file( self.dataset.file_name ) + st = summary_tree_from_file( self.converted_dataset.file_name ) CACHE[filename] = st # If chrom is not found in blocks, try removing the first three