Skip to content

Commit

Permalink
Add wiff.tar extension and sniffer
Browse files Browse the repository at this point in the history
  • Loading branch information
chambm committed Feb 5, 2019
1 parent 413af14 commit d30852b
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 4 deletions.
2 changes: 2 additions & 0 deletions config/datatypes_conf.xml.sample
Expand Up @@ -224,6 +224,7 @@
<datatype extension="brukertdf.tar" type="galaxy.datatypes.binary:TdfTar" display_in_upload="true"/>
<datatype extension="agilentmasshunter.tar" type="galaxy.datatypes.binary:MassHunterTar" display_in_upload="true"/>
<datatype extension="watersmasslynxraw.tar" type="galaxy.datatypes.binary:MassLynxTar" display_in_upload="true"/>
<datatype extension="wiff.tar" type="galaxy.datatypes.binary:WiffTar" display_in_upload="true"/>
<datatype extension="mzml" type="galaxy.datatypes.proteomics:MzML" mimetype="application/xml" display_in_upload="true"/>
<datatype extension="nmrml" type="galaxy.datatypes.proteomics:NmrML" mimetype="application/xml" display_in_upload="true" description="nmrML is an open mark-up language for NMR data." description_url="http://nmrml.org/schema/"/>
<datatype extension="mgf" type="galaxy.datatypes.proteomics:Mgf" display_in_upload="true"/>
Expand Down Expand Up @@ -755,6 +756,7 @@
<sniffer type="galaxy.datatypes.binary:MassHunterTar"/>
<sniffer type="galaxy.datatypes.binary:MassLynxTar"/>
<sniffer type="galaxy.datatypes.binary:YepTar"/>
<sniffer type="galaxy.datatypes.binary:WiffTar"/>
<sniffer type="galaxy.datatypes.binary:Fast5ArchiveGz"/>
<sniffer type="galaxy.datatypes.binary:Fast5ArchiveBz2"/>
<sniffer type="galaxy.datatypes.binary:Fast5Archive"/>
Expand Down
38 changes: 34 additions & 4 deletions lib/galaxy/datatypes/binary.py
Expand Up @@ -2291,7 +2291,7 @@ class YepTar(BafTar):

def get_signature_file(self):
return "analysis.yep"

def get_type(self):
return "Agilent/Bruker YEP directory archive"

Expand All @@ -2302,7 +2302,7 @@ class TdfTar(BafTar):

def get_signature_file(self):
return "analysis.tdf"

def get_type(self):
return "Bruker TDF directory archive"

Expand All @@ -2313,7 +2313,7 @@ class MassHunterTar(BafTar):

def get_signature_file(self):
return "msscan.bin"

def get_type(self):
return "Agilent MassHunter directory archive"

Expand All @@ -2324,11 +2324,41 @@ class MassLynxTar(BafTar):

def get_signature_file(self):
return "_func001.dat"

def get_type(self):
return "Waters MassLynx RAW directory archive"


class WiffTar(BafTar):
"""
A tar'd up .wiff/.scan pair containing Sciex WIFF format data
>>> from galaxy.datatypes.sniff import get_test_fname
>>> fname = get_test_fname('some.wiff.tar')
>>> WiffTar().sniff(fname)
True
>>> fname = get_test_fname('brukerbaf.d.tar')
>>> WiffTar().sniff(fname)
False
>>> fname = get_test_fname('test.fast5.tar')
>>> WiffTar().sniff(fname)
False
"""
file_ext = "wiff.tar"

def sniff(self, filename):
try:
if tarfile.is_tarfile(filename):
with tarfile.open(filename) as rawtar:
return ".wiff" in [os.path.splitext(os.path.basename(f).lower())[1] for f in rawtar.getnames()]
return False
except Exception as e:
log.warning('%s, sniff Exception: %s', self, e)
return False

def get_type(self):
return "Sciex WIFF/SCAN archive"


if __name__ == '__main__':
import doctest
doctest.testmod(sys.modules[__name__])
Binary file added lib/galaxy/datatypes/test/some.wiff.tar
Binary file not shown.

0 comments on commit d30852b

Please sign in to comment.