rma: add RMA6 data type (MEGAN6 read-match archive)

This commit is contained in:
M Bernt
2018-11-01 23:46:41 +01:00
parent b47efd4ade
commit 0beac8fdf4
3 changed files with 25 additions and 0 deletions
+2
View File
@@ -54,6 +54,7 @@
<converter file="len_to_linecount.xml" target_datatype="linecount"/>
</datatype>
<datatype extension="daa" type="galaxy.datatypes.binary:DAA" display_in_upload="true"/>
<datatype extension="rma" type="galaxy.datatypes.binary:RMA" display_in_upload="true"/>
<datatype extension="dmnd" type="galaxy.datatypes.binary:DMND" display_in_upload="false"/>
<datatype extension="idat" type="galaxy.datatypes.binary:Idat" display_in_upload="true"/>
<datatype extension="bigbed" type="galaxy.datatypes.binary:BigBed" mimetype="application/octet-stream" display_in_upload="true">
@@ -734,6 +735,7 @@
<sniffer type="galaxy.datatypes.binary:Sra"/>
<sniffer type="galaxy.datatypes.binary:NetCDF"/>
<sniffer type="galaxy.datatypes.binary:DAA"/>
<sniffer type="galaxy.datatypes.binary:RMA"/>
<sniffer type="galaxy.datatypes.binary:DMND"/>
<sniffer type="galaxy.datatypes.binary:Fast5ArchiveGz"/>
<sniffer type="galaxy.datatypes.binary:Fast5ArchiveBz2"/>
+23
View File
@@ -2168,6 +2168,29 @@ class DAA(Binary):
return f.read(8) == self._magic
class RMA6(Binary):
"""
Class describing an RMA6 (MEGAN6 read-match archive) file
>>> from galaxy.datatypes.sniff import get_test_fname
>>> fname = get_test_fname('diamond.rma')
>>> DAA().sniff(fname)
True
>>> fname = get_test_fname('interval.interval')
>>> DAA().sniff(fname)
False
"""
file_ext = "rma6"
def __init__(self, **kwd):
Binary.__init__(self, **kwd)
self._magic = binascii.unhexlify("000003f600000006")
def sniff(self, filename):
# The first 8 bytes of any daa file are 0x3c0e53476d3ee36b
with open(filename, 'rb') as f:
return f.read(8) == self._magic
class DMND(Binary):
"""
Class describing an DMND file
Binary file not shown.