diff --git a/lib/galaxy/config/sample/datatypes_conf.xml.sample b/lib/galaxy/config/sample/datatypes_conf.xml.sample
index f3b9d767c86..2efd24f4af4 100644
--- a/lib/galaxy/config/sample/datatypes_conf.xml.sample
+++ b/lib/galaxy/config/sample/datatypes_conf.xml.sample
@@ -296,6 +296,7 @@
+
@@ -305,6 +306,7 @@
+
diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py
index 6e12b0cc6ea..06549c4713b 100644
--- a/lib/galaxy/datatypes/binary.py
+++ b/lib/galaxy/datatypes/binary.py
@@ -4002,6 +4002,34 @@ class WiffTar(BafTar):
return "Sciex WIFF/SCAN archive"
+class Wiff2Tar(BafTar):
+ """
+ A tar'd up .wiff2/.scan pair containing Sciex WIFF format data
+
+ >>> from galaxy.datatypes.sniff import get_test_fname
+ >>> fname = get_test_fname('some.wiff2.tar')
+ >>> Wiff2Tar().sniff(fname)
+ True
+ >>> fname = get_test_fname('brukerbaf.d.tar')
+ >>> Wiff2Tar().sniff(fname)
+ False
+ >>> fname = get_test_fname('test.fast5.tar')
+ >>> Wiff2Tar().sniff(fname)
+ False
+ """
+
+ file_ext = "wiff2.tar"
+
+ def sniff(self, filename: str) -> bool:
+ if tarfile.is_tarfile(filename):
+ with tarfile.open(filename) as rawtar:
+ return ".wiff2" in [os.path.splitext(os.path.basename(f).lower())[1] for f in rawtar.getnames()]
+ return False
+
+ def get_type(self) -> str:
+ return "Sciex WIFF2/SCAN archive"
+
+
@build_sniff_from_prefix
class Pretext(Binary):
"""
diff --git a/lib/galaxy/datatypes/proteomics.py b/lib/galaxy/datatypes/proteomics.py
index 5135ab419dc..1d8d948e916 100644
--- a/lib/galaxy/datatypes/proteomics.py
+++ b/lib/galaxy/datatypes/proteomics.py
@@ -75,6 +75,47 @@ class Wiff(Binary):
rval.append("