mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-30 18:13:23 +08:00
Finish refactoring of tracks data providers so that they all inherit from a single base object, TracksDataProvider.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user