comparison sra.py @ 12:b77840618b8f draft

debugging SRA datatype
author Matt Shirley <mdshw5@gmail.com>
date Mon, 17 Jun 2013 16:05:30 -0400
parents 28fda7631857
children 93a60318b9ca
comparison
equal deleted inserted replaced
11:cdba74ec9eca 12:b77840618b8f
1 """ 1 """
2 Sra class 2 Sra class
3 """ 3 """
4 4
5 import galaxy.datatypes.binary 5 import binascii
6 from galaxy.datatypes.binary import Binary 6 from galaxy.datatypes.binary import Binary
7 import data, logging, binascii 7 from galaxy.datatypes.data import Data
8 from galaxy.datatypes.metadata import MetadataElement 8 from galaxy.datatypes.metadata import MetadataElement
9 from galaxy.datatypes import metadata
10 from galaxy.datatypes.sniff import * 9 from galaxy.datatypes.sniff import *
11 from galaxy import eggs
12 import pkg_resources
13 pkg_resources.require( 'bx-python' )
14 import os, subprocess, tempfile
15 import struct
16 10
17 class Sra( Binary ): 11 class Sra( Binary ):
18 """ Sequence Read Archive (SRA) """ 12 """ Sequence Read Archive (SRA) """
19 file_ext = 'sra' 13 file_ext = 'sra'
20 14
26 """ 20 """
27 try: 21 try:
28 header = open(filename).read(8) 22 header = open(filename).read(8)
29 if binascii.b2a_hex(header) == binascii.hexlify('NCBI.sra'): 23 if binascii.b2a_hex(header) == binascii.hexlify('NCBI.sra'):
30 return True 24 return True
31 return False 25 else:
26 return False
32 except: 27 except:
33 return False 28 return False
34 def set_peek(self, dataset, is_multi_byte=False): 29 def set_peek(self, dataset, is_multi_byte=False):
35 if not dataset.dataset.purged: 30 if not dataset.dataset.purged:
36 dataset.peek = 'Binary sra file' 31 dataset.peek = 'Binary SRA file'
37 dataset.blurb = data.nice_size(dataset.get_size()) 32 dataset.blurb = data.nice_size(dataset.get_size())
38 else: 33 else:
39 dataset.peek = 'file does not exist' 34 dataset.peek = 'file does not exist'
40 dataset.blurb = 'file purged from disk' 35 dataset.blurb = 'file purged from disk'
41 def display_peek(self, dataset): 36 def display_peek(self, dataset):
42 try: 37 try:
43 return dataset.peek 38 return dataset.peek
44 except: 39 except:
45 return 'Binary sra file (%s)' % ( data.nice_size(dataset.get_size())) 40 return 'Binary sra file (%s)' % ( data.nice_size(dataset.get_size()))
46
47 Binary.register_sniffable_binary_format('sra', 'sra', Sra)