Mercurial > repos > crusoe > oxli_datatypes
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 |
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) |