add Oxli datatypes

This commit is contained in:
Michael R. Crusoe
2015-09-13 14:21:33 -07:00
committed by Michael R. Crusoe
parent 51979deefb
commit 4064d0c598
2 changed files with 92 additions and 0 deletions
+12
View File
@@ -412,6 +412,12 @@
<datatype extension="xmfa" type="galaxy.datatypes.msa:MauveXmfa" display_in_upload="True" />
<datatype extension="RData" type="galaxy.datatypes.binary:RData" display_in_upload="true" description="Stored data from an R session"/>
<datatype extension="oxlicg" type="galaxy.datatypes.binary:OxliCountGraph" mimetype="application/octet-stream" display_in_upload="true"/>
<datatype extension="oxling" type="galaxy.datatypes.binary:OxliNodeGraph" mimetype="application/octet-stream" display_in_upload="true"/>
<datatype extension="oxlits" type="galaxy.datatypes.binary:OxliTagSet" mimetype="application/octet-stream" display_in_upload="true"/>
<datatype extension="oxlist" type="galaxy.datatypes.binary:OxliStopTags" mimetype="application/octet-stream" display_in_upload="true"/>
<datatype extension="oxliss" type="galaxy.datatypes.binary:OxliSubset" mimetype="application/octet-stream" display_in_upload="true"/>
<datatype extension="oxlils" type="galaxy.datatypes.binary:OxliLabelSet" mimetype="application/octet-stream" display_in_upload="true"/>
</registration>
<sniffers>
<!--
@@ -500,6 +506,12 @@
module is fixed to not read the entire file.
<sniffer type="galaxy.datatypes.assembly:Amos"/>
-->
<sniffer type="galaxy.datatypes.binary:OxliCountGraph"/>
<sniffer type="galaxy.datatypes.binary:OxliNodeGraph"/>
<sniffer type="galaxy.datatypes.binary:OxliTagSet"/>
<sniffer type="galaxy.datatypes.binary:OxliStopTags"/>
<sniffer type="galaxy.datatypes.binary:OxliSubset"/>
<sniffer type="galaxy.datatypes.binary:OxliLabelSet"/>
</sniffers>
<build_sites>
<!--
+80
View File
@@ -908,3 +908,83 @@ class RData( Binary ):
return False
Binary.register_sniffable_binary_format('RData', 'RData', RData)
class OxliBinary(Binary):
def __init__(self, **kwd):
Binary.__init__(self, **kwd)
def sniff(self, filename, filetype):
try:
with open(filename) as fileobj:
header = fileobj.read(4)
if binascii.b2a_hex(header) == binascii.hexlify('OXLI'):
fileobj.seek(1)
ftype = fileobj.read(1)
if binascii.b2a_hex(ftype) == filetype:
return True
return False
except IOError:
return False
class OxliCountGraph(OxliBinary):
def __init__(self, **kwd):
OxliBinary.__init__(self, **kwd)
def sniff(self, filename):
return OxliBinary.sniff(self, filename, "01")
class OxliNodeGraph(OxliBinary):
def __init__(self, **kwd):
OxliBinary.__init__(self, **kwd)
def sniff(self, filename):
return OxliBinary.sniff(self, filename, "02")
class OxliTagSet(OxliBinary):
def __init__(self, **kwd):
OxliBinary.__init__(self, **kwd)
def sniff(self, filename):
return OxliBinary.sniff(self, filename, "03")
class OxliStopTags(OxliBinary):
def __init__(self, **kwd):
OxliBinary.__init__(self, **kwd)
def sniff(self, filename):
return OxliBinary.sniff(self, filename, "04")
class OxliSubset(OxliBinary):
def __init__(self, **kwd):
OxliBinary.__init__(self, **kwd)
def sniff(self, filename):
return OxliBinary.sniff(self, filename, "05")
class OxliLabelSet(OxliBinary):
def __init__(self, **kwd):
OxliBinary.__init__(self, **kwd)
def sniff(self, filename):
return OxliBinary.sniff(self, filename, "06")
Binary.register_sniffable_binary_format("oxli.countgraph", "oxlicg", OxliCountGraph)
Binary.register_sniffable_binary_format("oxli.nodegraph", "oxling", OxliNodeGraph)
Binary.register_sniffable_binary_format("oxli.tagset", "oxlits", OxliTagSet)
Binary.register_sniffable_binary_format("oxli.stoptags", "oxlist", OxliStopTags)
Binary.register_sniffable_binary_format("oxli.subset", "oxliss", OxliSubset)
Binary.register_sniffable_binary_format("oxli.labelset", "oxlils", OxliLabelSet)