diff --git a/config/datatypes_conf.xml.sample b/config/datatypes_conf.xml.sample
index 9f054936e65..4e38c97b638 100644
--- a/config/datatypes_conf.xml.sample
+++ b/config/datatypes_conf.xml.sample
@@ -54,6 +54,7 @@
+
@@ -734,6 +735,7 @@
+
diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py
index c4189b28ce1..5fed1320953 100644
--- a/lib/galaxy/datatypes/binary.py
+++ b/lib/galaxy/datatypes/binary.py
@@ -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
diff --git a/lib/galaxy/datatypes/test/diamond.rma b/lib/galaxy/datatypes/test/diamond.rma
new file mode 100644
index 00000000000..abc824d7e01
Binary files /dev/null and b/lib/galaxy/datatypes/test/diamond.rma differ