annotate oxli.py @ 0:08a714ff4ea5 draft default tip

planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
author crusoe
date Tue, 07 Jul 2015 11:58:46 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
1 """
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
2 k-mer count and presence
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
3 """
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
4
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
5 from galaxy.datatypes.binary import Binary
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
6 import binascii
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
7
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
8 import logging
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
9
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
10 log = logging.getLogger(__name__)
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
11
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
12
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
13 class OxliBinary(Binary):
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
14
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
15 def __init__(self, **kwd):
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
16 Binary.__init__(self, **kwd)
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
17
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
18 def sniff(self, filename, filetype):
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
19 try:
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
20 with open(filename) as fileobj:
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
21 header = fileobj.read(4)
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
22 if binascii.b2a_hex(header) == binascii.hexlify('OXLI'):
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
23 fileobj.seek(1)
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
24 ftype = fileobj.read(1)
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
25 if binascii.b2a_hex(ftype) == filetype:
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
26 return True
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
27 return False
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
28 except IOError:
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
29 return False
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
30
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
31
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
32 class Count(OxliBinary):
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
33
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
34 def __init__(self, **kwd):
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
35 OxliBinary.__init__(self, **kwd)
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
36
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
37 def sniff(self, filename):
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
38 return OxliBinary.sniff(self, filename, "01")
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
39
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
40
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
41 class Presence(OxliBinary):
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
42
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
43 def __init__(self, **kwd):
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
44 OxliBinary.__init__(self, **kwd)
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
45
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
46 def sniff(self, filename):
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
47 return OxliBinary.sniff(self, filename, "02")
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
48
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
49
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
50 Binary.register_sniffable_binary_format("ct", "ct", Count)
08a714ff4ea5 planemo upload commit d8e0950d53e504e02ee5db43c0804142b14d7fd2-dirty
crusoe
parents:
diff changeset
51 Binary.register_sniffable_binary_format("pt", "pt", Presence)