From 5f0a4131dfdba219a0298f1ad3f8e7270b499a17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gr=C3=BCning?= Date: Sun, 1 Jan 2017 18:02:08 +0100 Subject: [PATCH 1/8] Add diamond database --- config/datatypes_conf.xml.sample | 1 + 1 file changed, 1 insertion(+) diff --git a/config/datatypes_conf.xml.sample b/config/datatypes_conf.xml.sample index 8e8445aadac..054bb6274c5 100644 --- a/config/datatypes_conf.xml.sample +++ b/config/datatypes_conf.xml.sample @@ -38,6 +38,7 @@ + From 0518cbf02e5541514dbbca6178213dcc046b7bc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Thu, 5 Jan 2017 16:37:12 +0100 Subject: [PATCH 2/8] Add sniffer for dmnd extension --- config/datatypes_conf.xml.sample | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/datatypes_conf.xml.sample b/config/datatypes_conf.xml.sample index 054bb6274c5..bd4d1cb5b01 100644 --- a/config/datatypes_conf.xml.sample +++ b/config/datatypes_conf.xml.sample @@ -38,7 +38,7 @@ - + @@ -593,6 +593,7 @@ + From 87000dca9ef49d7d6e068cf50313dec43dd10a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Thu, 5 Jan 2017 16:39:05 +0100 Subject: [PATCH 3/8] Add dmnd class --- lib/galaxy/datatypes/binary.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 87882101b50..3bd00f025ec 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1436,3 +1436,34 @@ class NetCDF( Binary ): Binary.register_sniffable_binary_format("netcdf", "netcdf", NetCDF) + +class DMND( Binary ): + """ + Class describing an DMND file + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname( 'test.dmnd' ) + >>> DMND().sniff( fname ) + True + >>> fname = get_test_fname( 'interval.interval' ) + >>> DMND().sniff( fname ) + False + """ + + file_ext = "dmnd" + edam_format = "" + + def __init__( self, **kwd ): + Binary.__init__( self, **kwd ) + self._magic = binascii.unhexlify("24af8a415ee186dllu") + + def sniff( self, filename ): + # The first 8 bytes of any hdf5 file are 0x24af8a415ee186dllu + try: + header = open( filename, 'rb' ).read(8) + if header == self._magic: + return True + return False + except: + return False + +Binary.register_sniffable_binary_format("dmnd", "dmnd", DMND) From 8cfbfcdaff4cfdeefe4e11733ac1530eebb80da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Thu, 5 Jan 2017 16:40:49 +0100 Subject: [PATCH 4/8] Add test to dmnd --- lib/galaxy/datatypes/sniff.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/galaxy/datatypes/sniff.py b/lib/galaxy/datatypes/sniff.py index d7bfdd0a95b..23f18b8f192 100644 --- a/lib/galaxy/datatypes/sniff.py +++ b/lib/galaxy/datatypes/sniff.py @@ -356,6 +356,9 @@ def guess_ext( fname, sniff_order, is_multi_byte=False ): >>> fname = get_test_fname('1.gg') >>> guess_ext(fname, sniff_order) 'gg' + >>> fname = get_test_fname('test.dmnd') + >>> guess_ext(fname, sniff_order) + 'dmnd' """ file_ext = None for datatype in sniff_order: From 275f2fb84beffb89c7a8a22d14a176455d9bf328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Thu, 5 Jan 2017 16:53:14 +0100 Subject: [PATCH 5/8] Add test data for diamond datatype --- lib/galaxy/datatypes/binary.py | 2 +- lib/galaxy/datatypes/sniff.py | 2 +- lib/galaxy/datatypes/test/diamond_db.dmnd | Bin 0 -> 423 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 lib/galaxy/datatypes/test/diamond_db.dmnd diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 3bd00f025ec..bad76cdfd15 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1441,7 +1441,7 @@ class DMND( Binary ): """ Class describing an DMND file >>> from galaxy.datatypes.sniff import get_test_fname - >>> fname = get_test_fname( 'test.dmnd' ) + >>> fname = get_test_fname( 'diamond_db.dmnd' ) >>> DMND().sniff( fname ) True >>> fname = get_test_fname( 'interval.interval' ) diff --git a/lib/galaxy/datatypes/sniff.py b/lib/galaxy/datatypes/sniff.py index 23f18b8f192..7188bafdba5 100644 --- a/lib/galaxy/datatypes/sniff.py +++ b/lib/galaxy/datatypes/sniff.py @@ -356,7 +356,7 @@ def guess_ext( fname, sniff_order, is_multi_byte=False ): >>> fname = get_test_fname('1.gg') >>> guess_ext(fname, sniff_order) 'gg' - >>> fname = get_test_fname('test.dmnd') + >>> fname = get_test_fname('diamond_db.dmnd') >>> guess_ext(fname, sniff_order) 'dmnd' """ diff --git a/lib/galaxy/datatypes/test/diamond_db.dmnd b/lib/galaxy/datatypes/test/diamond_db.dmnd new file mode 100644 index 0000000000000000000000000000000000000000..b5322de561778c8dcd2c7608d8f0e663d3b7e10a GIT binary patch literal 423 zcmZ{gKWkJ`5XI-+n|<@7)YFD2+heCWK-dgFPh!BRqSa#dNY- zL*}f#3F-Am1i0k_&X&_ujItqxVUpR#r7Dyv2?lSLW-vDp6fRBrnqoaFe4Yj`1%ts? zeYymqWT0aa_La46{fch~!ii&xw2=KTES tX1~7q_WAMV{^R5Bc745m_xk)qAYhuxQdyrdWZdHbPFzX5V@D5?Me literal 0 HcmV?d00001 From 34471bbc47b5bd428099c8f5518c0329b3c86582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Thu, 5 Jan 2017 17:34:55 +0100 Subject: [PATCH 6/8] Correct the header --- lib/galaxy/datatypes/binary.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index bad76cdfd15..8a0a8a96f7f 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1454,10 +1454,11 @@ class DMND( Binary ): def __init__( self, **kwd ): Binary.__init__( self, **kwd ) - self._magic = binascii.unhexlify("24af8a415ee186dllu") + self._magic = binascii.unhexlify("24af8a415ee186d") def sniff( self, filename ): - # The first 8 bytes of any hdf5 file are 0x24af8a415ee186dllu + # The first 8 bytes of any dmnd file are 0x24af8a415ee186d + try: header = open( filename, 'rb' ).read(8) if header == self._magic: From 5dcb2f317bc3a3f07e30e1fce070ed012f0e7379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Mon, 9 Jan 2017 09:53:01 +0100 Subject: [PATCH 7/8] Change the header to find for dmnd --- lib/galaxy/datatypes/binary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 8a0a8a96f7f..294d0ecfbc3 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1454,7 +1454,7 @@ class DMND( Binary ): def __init__( self, **kwd ): Binary.__init__( self, **kwd ) - self._magic = binascii.unhexlify("24af8a415ee186d") + self._magic = binascii.unhexlify("6d18ee15a4f84a02") def sniff( self, filename ): # The first 8 bytes of any dmnd file are 0x24af8a415ee186d From 50f9f74884068690f7c5e125b4aae10fd48bf41e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Mon, 9 Jan 2017 10:37:56 +0100 Subject: [PATCH 8/8] Add extra line to fix flake8 --- lib/galaxy/datatypes/binary.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 294d0ecfbc3..161d25a854a 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1437,6 +1437,7 @@ class NetCDF( Binary ): Binary.register_sniffable_binary_format("netcdf", "netcdf", NetCDF) + class DMND( Binary ): """ Class describing an DMND file @@ -1448,7 +1449,6 @@ class DMND( Binary ): >>> DMND().sniff( fname ) False """ - file_ext = "dmnd" edam_format = "" @@ -1467,4 +1467,5 @@ class DMND( Binary ): except: return False + Binary.register_sniffable_binary_format("dmnd", "dmnd", DMND)