Merge pull request #1897 from dannon/pysam_compat

[16.01] Slight tweaks to our tabix usage.
This commit is contained in:
Martin Cech
2016-03-10 20:19:18 -05:00
@@ -196,7 +196,6 @@ class GenomeDataProvider( BaseDataProvider ):
except AttributeError:
# FIXME: some data providers do not have a close function implemented.
# Providers without a close function include:
# pysam Tabixfile
# bx IntervalIndex
pass
@@ -347,13 +346,16 @@ class TabixDataProvider( FilterableMixin, GenomeDataProvider ):
def open_data_file( self ):
return ctabix.Tabixfile(self.dependencies['bgzip'].file_name,
index_filename=self.converted_dataset.file_name)
index=self.converted_dataset.file_name)
def get_iterator( self, data_file, chrom, start, end, **kwargs ):
start, end = int(start), int(end)
# chrom must be a string, start/end integers.
# in previous versions of pysam, unicode was accepted for chrom, but not in 8.4
chrom = str(chrom)
start = int(start)
end = int(end)
if end >= (2 << 29):
end = (2 << 29 - 1) # Tabix-enforced maximum
# Get iterator using either naming scheme.
iterator = iter( [] )
if chrom in data_file.contigs: