From b818dad5dda5419c9e7adb3bb03265c7ab549123 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Fri, 3 Oct 2025 15:27:45 +0200 Subject: [PATCH 01/20] start adding spatialdata --- lib/galaxy/datatypes/binary.py | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index cba6a0f671d2..4c159e3f5a7f 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4963,3 +4963,53 @@ def sniff_prefix(self, file_prefix: FilePrefix) -> bool: except Exception: # Any exception during parsing means it's not a valid safetensors file return False + +class SpatialData(CompressedZarrZipArchive): + """ + Class for SpatialData file: https://spatialdata.scverse.org/ + + SpatialData: an open and universal framework for processing spatial omics data. + SpatialData aims at implementing a performant in-memory representation in Python + and an on-disk representation based on the Zarr and Parquet data formats + and following, when applicable, the OME-NGFF specification + + The format stores multi-modal spatial omics datasets including: + - Images (2D/3D multi-scale) + - Labels (segmentation masks) + - Shapes (polygons, circles) + - Points (transcript locations, point clouds) + - Tables (annotations) + """ + + file_ext = "spatialdata.zip" + + def sniff(self, filename: str) -> bool: + """ + Check if the file is a valid SpatialData zarr archive. + + SpatialData files are Zarr archives with specific structure containing + element directories like images/, labels/, shapes/, points/, or tables/. + + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname('spatialdata_example.spatialdata.zip') + >>> SpatialData().sniff(fname) + True + >>> fname = get_test_fname('test.zarr.zip') + >>> SpatialData().sniff(fname) + False + """ + + try: + with zipfile.ZipFile(filename) as zf: + # Look for SpatialData-specific structure + # SpatialData has element directories like images/, labels/, shapes/, points/, tables/ + spatialdata_elements = {'images', 'labels', 'shapes', 'points', 'tables'} + for file in zf.namelist(): + parts = file.split('/') + if len(parts) > 0 and parts[0] in spatialdata_elements: + return True + + return False + except Exception: + return False + From ac85e4077f8fc216a29e64a0f47df7da4ffb0bcc Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 08:35:47 +0200 Subject: [PATCH 02/20] add test --- lib/galaxy/datatypes/binary.py | 5 +---- .../test/subsampled_visium.spatialdata.zip | Bin 0 -> 221104 bytes 2 files changed, 1 insertion(+), 4 deletions(-) create mode 100644 lib/galaxy/datatypes/test/subsampled_visium.spatialdata.zip diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 4c159e3f5a7f..4b8cd403aa9b 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4991,12 +4991,9 @@ def sniff(self, filename: str) -> bool: element directories like images/, labels/, shapes/, points/, or tables/. >>> from galaxy.datatypes.sniff import get_test_fname - >>> fname = get_test_fname('spatialdata_example.spatialdata.zip') + >>> fname = get_test_fname('subsampled_visium.spatialdata.zarr') >>> SpatialData().sniff(fname) True - >>> fname = get_test_fname('test.zarr.zip') - >>> SpatialData().sniff(fname) - False """ try: diff --git a/lib/galaxy/datatypes/test/subsampled_visium.spatialdata.zip b/lib/galaxy/datatypes/test/subsampled_visium.spatialdata.zip new file mode 100644 index 0000000000000000000000000000000000000000..1040d76d785f17e039b00e35b4690a83d4c6de9f GIT binary patch literal 221104 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�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 Date: Wed, 15 Oct 2025 08:38:54 +0200 Subject: [PATCH 03/20] check the elements in root dir and first sub dir --- lib/galaxy/datatypes/binary.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 4b8cd403aa9b..0ce839272b66 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4991,7 +4991,7 @@ def sniff(self, filename: str) -> bool: element directories like images/, labels/, shapes/, points/, or tables/. >>> from galaxy.datatypes.sniff import get_test_fname - >>> fname = get_test_fname('subsampled_visium.spatialdata.zarr') + >>> fname = get_test_fname('subsampled_visium.spatialdata.zip') >>> SpatialData().sniff(fname) True """ @@ -5003,10 +5003,12 @@ def sniff(self, filename: str) -> bool: spatialdata_elements = {'images', 'labels', 'shapes', 'points', 'tables'} for file in zf.namelist(): parts = file.split('/') + # Check both root level and one level deeper + if len(parts) > 1 and parts[1] in spatialdata_elements: + return True if len(parts) > 0 and parts[0] in spatialdata_elements: return True return False except Exception: return False - From 39154227d35e6d295991ce0daa6e47191060d6e2 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 08:49:55 +0200 Subject: [PATCH 04/20] update class --- lib/galaxy/datatypes/binary.py | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 0ce839272b66..734a3513cfa8 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4865,6 +4865,54 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N header_bytes = handle.read(8) dataset.metadata.version = struct.unpack(" bool: + """ + Check if the file is a valid SpatialData zarr archive. + + SpatialData files are Zarr archives with specific structure containing + element directories like images/, labels/, shapes/, points/, or tables/. + + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname('subsampled_visium.spatialdata.zip') + >>> SpatialData().sniff(fname) + True + """ + + try: + with zipfile.ZipFile(filename) as zf: + # Look for SpatialData-specific structure + # SpatialData has element directories like images/, labels/, shapes/, points/, tables/ + spatialdata_elements = {'images', 'labels', 'shapes', 'points', 'tables'} + for file in zf.namelist(): + parts = file.split('/') + # Check both root level and one level deeper + if len(parts) > 1 and parts[1] in spatialdata_elements: + return True + if len(parts) > 0 and parts[0] in spatialdata_elements: + return True + + return False + except Exception: @build_sniff_from_prefix class Safetensors(Binary): From 9c5f921ff85debb2be93021caa63098cce879765 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 08:57:05 +0200 Subject: [PATCH 05/20] add metadataelement --- lib/galaxy/datatypes/binary.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 734a3513cfa8..65122a60e180 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4885,6 +4885,26 @@ class SpatialData(CompressedZarrZipArchive): file_ext = "spatialdata.zip" + MetadataElement( + name="elements", + desc="SpatialData elements", + default=None, + param=metadata.SelectParameter, + multiple=True, + readonly=True, + visible=False, + ) + + MetadataElement( + name="coordinate_systems", + desc="SpatialData coordinate systems", + default=None, + param=metadata.SelectParameter, + multiple=True, + readonly=True, + visible=False, + ) + def sniff(self, filename: str) -> bool: """ Check if the file is a valid SpatialData zarr archive. From df5171a2b48f2e6bf7a77ec37a73f392c8309ee6 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 09:01:06 +0200 Subject: [PATCH 06/20] add set peek --- lib/galaxy/datatypes/binary.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 65122a60e180..0ecd5ca9db91 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4905,6 +4905,18 @@ class SpatialData(CompressedZarrZipArchive): visible=False, ) + def set_peek(self, dataset: DatasetProtocol, **kwd) -> None: + if not dataset.dataset.purged: + dataset.peek = "SpatialData file" + dataset.blurb = f"{nice_size(dataset.get_size())}" + if dataset.metadata.zarr_format: + dataset.blurb += f"\nZarr Format v{dataset.metadata.zarr_format}" + if dataset.metadata.elements: + dataset.blurb += f"\nElements: {len(dataset.metadata.elements)}" + else: + dataset.peek = "file does not exist" + dataset.blurb = "file purged from disk" + def sniff(self, filename: str) -> bool: """ Check if the file is a valid SpatialData zarr archive. From 8c779420883d817f635743827573d75545a48701 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 09:07:06 +0200 Subject: [PATCH 07/20] fix identation --- lib/galaxy/datatypes/binary.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 0ecd5ca9db91..cb98c1f136fd 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4945,6 +4945,8 @@ def sniff(self, filename: str) -> bool: return False except Exception: + # Any exception during parsing means it's not a valid spatialdata file + return False @build_sniff_from_prefix class Safetensors(Binary): From d6cba645d6bf10f9f758e84ffeba7a93af31d3a9 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 09:45:04 +0200 Subject: [PATCH 08/20] add set_meta --- lib/galaxy/datatypes/binary.py | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index cb98c1f136fd..c5eda65aa4fa 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4917,6 +4917,47 @@ def set_peek(self, dataset: DatasetProtocol, **kwd) -> None: dataset.peek = "file does not exist" dataset.blurb = "file purged from disk" + def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> None: + super().set_meta(dataset, overwrite=overwrite, **kwd) + try: + with zipfile.ZipFile(dataset.get_file_name()) as zf: + # Look for SpatialData structure + elements = [] + coordinate_systems = set() + + for file in zf.namelist(): + # SpatialData elements are stored in zarr groups + # Common element types: images, labels, shapes, points, tables + parts = file.split('/') + if len(parts) > 1: + element_type = parts[0] + if element_type in ['images', 'labels', 'shapes', 'points', 'tables']: + if len(parts) > 1 and parts[1] not in elements: + elements.append(parts[1]) + + # Look for coordinate system information in zarr metadata + if file.endswith('.zattrs') or file.endswith('zarr.json'): + try: + with zf.open(file) as f: + attrs = json.load(f) + # Check for coordinate transformations + if 'coordinateTransformations' in attrs: + for transform in attrs['coordinateTransformations']: + if 'output' in transform: + coordinate_systems.add(transform['output']) + # Check for spatialdata transform attribute + if 'transform' in attrs: + transform_dict = attrs['transform'] + if isinstance(transform_dict, dict): + coordinate_systems.update(transform_dict.keys()) + except Exception: + pass + + dataset.metadata.elements = sorted(elements) + dataset.metadata.coordinate_systems = sorted(list(coordinate_systems)) + except Exception: + pass + def sniff(self, filename: str) -> bool: """ Check if the file is a valid SpatialData zarr archive. From 804aecd2601336d4d67c9fe5d84f71f4d064ce24 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 09:59:07 +0200 Subject: [PATCH 09/20] add the datatype to conf --- lib/galaxy/config/sample/datatypes_conf.xml.sample | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/galaxy/config/sample/datatypes_conf.xml.sample b/lib/galaxy/config/sample/datatypes_conf.xml.sample index dc057131f461..cdf9733b5ee2 100644 --- a/lib/galaxy/config/sample/datatypes_conf.xml.sample +++ b/lib/galaxy/config/sample/datatypes_conf.xml.sample @@ -1180,6 +1180,7 @@ + From 36d68db6031cf4a6e1133bc8b6ff39dfddd4a221 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 10:35:28 +0200 Subject: [PATCH 10/20] correct name --- lib/galaxy/config/sample/datatypes_conf.xml.sample | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/config/sample/datatypes_conf.xml.sample b/lib/galaxy/config/sample/datatypes_conf.xml.sample index cdf9733b5ee2..02f55caf3551 100644 --- a/lib/galaxy/config/sample/datatypes_conf.xml.sample +++ b/lib/galaxy/config/sample/datatypes_conf.xml.sample @@ -1180,7 +1180,7 @@ - + From ce2f76ffe80459b278b5186b2b4f973ee10c8f0b Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 11:42:20 +0200 Subject: [PATCH 11/20] add the spatialdata sniffer before generic zarr --- lib/galaxy/config/sample/datatypes_conf.xml.sample | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/galaxy/config/sample/datatypes_conf.xml.sample b/lib/galaxy/config/sample/datatypes_conf.xml.sample index 02f55caf3551..0d9872d96329 100644 --- a/lib/galaxy/config/sample/datatypes_conf.xml.sample +++ b/lib/galaxy/config/sample/datatypes_conf.xml.sample @@ -1288,6 +1288,7 @@ + From fd3ef7a82ec6b42a0c036b8df60c4f3025869017 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 11:44:39 +0200 Subject: [PATCH 12/20] check the spatialdata attr to get more specific sniff --- lib/galaxy/datatypes/binary.py | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index c5eda65aa4fa..d16c53d5c1bc 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4865,7 +4865,7 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N header_bytes = handle.read(8) dataset.metadata.version = struct.unpack(" bool: Check if the file is a valid SpatialData zarr archive. SpatialData files are Zarr archives with specific structure containing - element directories like images/, labels/, shapes/, points/, or tables/. + a root .zattrs file with spatialdata_attrs metadata and element directories + like images/, labels/, shapes/, points/, or tables/. >>> from galaxy.datatypes.sniff import get_test_fname >>> fname = get_test_fname('subsampled_visium.spatialdata.zip') @@ -4973,16 +4974,29 @@ def sniff(self, filename: str) -> bool: try: with zipfile.ZipFile(filename) as zf: - # Look for SpatialData-specific structure - # SpatialData has element directories like images/, labels/, shapes/, points/, tables/ - spatialdata_elements = {'images', 'labels', 'shapes', 'points', 'tables'} + # First, check if this is a zarr archive at all + if not super().sniff(filename): + return False + + # Look for the root .zattrs file with spatialdata_attrs. + # This can distinguish spatialdata from other zarr archives. for file in zf.namelist(): + # Look for .zattrs file at the root of the zarr store + # The zarr store can be at root or one level deeper parts = file.split('/') - # Check both root level and one level deeper - if len(parts) > 1 and parts[1] in spatialdata_elements: - return True - if len(parts) > 0 and parts[0] in spatialdata_elements: - return True + # Root level: .zattrs or one level deep: .zarr/.zattrs + if ( + file == '.zattrs' + or (len(parts) == 2 and parts[0].endswith('.zarr') and parts[1] == '.zattrs') + ): + try: + with zf.open(file) as f: + attrs = json.load(f) + # Check for SpatialData-specific metadata + if 'spatialdata_attrs' in attrs: + return True + except Exception: + pass return False except Exception: From 19679bbfbcaea9118af154c614789bc90cce7b8f Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 12:27:34 +0200 Subject: [PATCH 13/20] metadata display like AnnData --- lib/galaxy/datatypes/binary.py | 210 ++++++++++++++++++++++++++++----- 1 file changed, 181 insertions(+), 29 deletions(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index d16c53d5c1bc..137136f62ef1 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4886,33 +4886,120 @@ class SpatialData(CompressedZarrZipArchive): file_ext = "spatialdata.zip" MetadataElement( - name="elements", - desc="SpatialData elements", - default=None, + name="images", + desc="SpatialData image elements", + default=[], param=metadata.SelectParameter, multiple=True, readonly=True, - visible=False, + visible=True, + ) + + MetadataElement( + name="labels", + desc="SpatialData label elements", + default=[], + param=metadata.SelectParameter, + multiple=True, + readonly=True, + visible=True, + ) + + MetadataElement( + name="shapes", + desc="SpatialData shape elements", + default=[], + param=metadata.SelectParameter, + multiple=True, + readonly=True, + visible=True, + ) + + MetadataElement( + name="points", + desc="SpatialData point elements", + default=[], + param=metadata.SelectParameter, + multiple=True, + readonly=True, + visible=True, + ) + + MetadataElement( + name="tables", + desc="SpatialData table elements", + default=[], + param=metadata.SelectParameter, + multiple=True, + readonly=True, + visible=True, ) MetadataElement( name="coordinate_systems", desc="SpatialData coordinate systems", - default=None, + default=[], param=metadata.SelectParameter, multiple=True, readonly=True, - visible=False, + visible=True, + ) + + MetadataElement( + name="spatialdata_version", + desc="SpatialData software version", + default="", + readonly=True, + visible=True, + no_value="", ) def set_peek(self, dataset: DatasetProtocol, **kwd) -> None: if not dataset.dataset.purged: - dataset.peek = "SpatialData file" - dataset.blurb = f"{nice_size(dataset.get_size())}" + # Try to make a metadata like spatialdata file itself + peek_lines = ["SpatialData object"] + + # Show zarr format if available if dataset.metadata.zarr_format: - dataset.blurb += f"\nZarr Format v{dataset.metadata.zarr_format}" - if dataset.metadata.elements: - dataset.blurb += f"\nElements: {len(dataset.metadata.elements)}" + peek_lines[0] += f" (Zarr Format v{dataset.metadata.zarr_format})" + + # Show each element type if present + if dataset.metadata.images: + peek_lines.append(f"├── Images ({len(dataset.metadata.images)})") + for img in dataset.metadata.images: + peek_lines.append(f"│ └── '{img}'") + + if dataset.metadata.labels: + peek_lines.append(f"├── Labels ({len(dataset.metadata.labels)})") + for lbl in dataset.metadata.labels: + peek_lines.append(f"│ └── '{lbl}'") + + if dataset.metadata.shapes: + peek_lines.append(f"├── Shapes ({len(dataset.metadata.shapes)})") + for shp in dataset.metadata.shapes: + peek_lines.append(f"│ └── '{shp}'") + + if dataset.metadata.points: + peek_lines.append(f"├── Points ({len(dataset.metadata.points)})") + for pts in dataset.metadata.points: + peek_lines.append(f"│ └── '{pts}'") + + if dataset.metadata.tables: + peek_lines.append(f"└── Tables ({len(dataset.metadata.tables)})") + for tbl in dataset.metadata.tables: + peek_lines.append(f" └── '{tbl}'") + + # Show coordinate systems if available + if dataset.metadata.coordinate_systems: + peek_lines.append("") + peek_lines.append("with coordinate systems:") + for cs in dataset.metadata.coordinate_systems: + peek_lines.append(f" • {cs}") + + dataset.peek = "\n".join(peek_lines) + dataset.blurb = f"SpatialData file ({nice_size(dataset.get_size())})" + if dataset.metadata.spatialdata_version: + dataset.blurb += f"\nVersion: {dataset.metadata.spatialdata_version}" else: dataset.peek = "file does not exist" dataset.blurb = "file purged from disk" @@ -4921,31 +5008,90 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N super().set_meta(dataset, overwrite=overwrite, **kwd) try: with zipfile.ZipFile(dataset.get_file_name()) as zf: - # Look for SpatialData structure - elements = [] + # Initialize element dictionaries to track elements by type + images = set() + labels = set() + shapes = set() + points = set() + tables = set() coordinate_systems = set() + spatialdata_version = "" + # Find the root zarr directory + root_zarr = None for file in zf.namelist(): - # SpatialData elements are stored in zarr groups - # Common element types: images, labels, shapes, points, tables - parts = file.split('/') - if len(parts) > 1: - element_type = parts[0] - if element_type in ['images', 'labels', 'shapes', 'points', 'tables']: - if len(parts) > 1 and parts[1] not in elements: - elements.append(parts[1]) - - # Look for coordinate system information in zarr metadata - if file.endswith('.zattrs') or file.endswith('zarr.json'): + if file.endswith('.zarr/.zattrs'): + root_zarr = file.replace('/.zattrs', '') + break + + # Read root attributes for version info + if root_zarr: + root_attrs_path = f"{root_zarr}/.zattrs" + try: + with zf.open(root_attrs_path) as f: + root_attrs = json.load(f) + if 'spatialdata_attrs' in root_attrs: + spatialdata_attrs = root_attrs['spatialdata_attrs'] + spatialdata_version = spatialdata_attrs.get('spatialdata_software_version', '') + except Exception: + pass + + # Parse all files to extract elements and coordinate systems + for file in zf.namelist(): + # Extract elements based on directory structure + # Expected structure: .zarr///... + if root_zarr and file.startswith(root_zarr + '/'): + rel_parts = file[len(root_zarr) + 1:].split('/') + if len(rel_parts) >= 2: + element_type = rel_parts[0] + element_name = rel_parts[1] + + # Skip metadata files and empty names + if element_name and not element_name.startswith('.'): + if element_type == 'images': + images.add(element_name) + elif element_type == 'labels': + labels.add(element_name) + elif element_type == 'shapes': + shapes.add(element_name) + elif element_type == 'points': + points.add(element_name) + elif element_type == 'tables': + tables.add(element_name) + + # Extract coordinate system information from .zattrs files + if file.endswith('.zattrs'): try: with zf.open(file) as f: attrs = json.load(f) + # Check for coordinate transformations if 'coordinateTransformations' in attrs: - for transform in attrs['coordinateTransformations']: - if 'output' in transform: - coordinate_systems.add(transform['output']) - # Check for spatialdata transform attribute + transforms = attrs['coordinateTransformations'] + if isinstance(transforms, list): + for transform in transforms: + if isinstance(transform, dict) and 'output' in transform: + output = transform['output'] + if isinstance(output, dict) and 'name' in output: + coordinate_systems.add(output['name']) + elif isinstance(output, str): + coordinate_systems.add(output) + + # Check for multiscales (images/labels) + if 'multiscales' in attrs: + multiscales = attrs['multiscales'] + if isinstance(multiscales, list): + for ms in multiscales: + if isinstance(ms, dict) and 'coordinateTransformations' in ms: + for ct in ms['coordinateTransformations']: + if isinstance(ct, dict) and 'output' in ct: + output = ct['output'] + if isinstance(output, dict) and 'name' in output: + coordinate_systems.add(output['name']) + elif isinstance(output, str): + coordinate_systems.add(output) + + # Check for spatialdata transform attribute (legacy) if 'transform' in attrs: transform_dict = attrs['transform'] if isinstance(transform_dict, dict): @@ -4953,8 +5099,14 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N except Exception: pass - dataset.metadata.elements = sorted(elements) + # Set metadata + dataset.metadata.images = sorted(list(images)) + dataset.metadata.labels = sorted(list(labels)) + dataset.metadata.shapes = sorted(list(shapes)) + dataset.metadata.points = sorted(list(points)) + dataset.metadata.tables = sorted(list(tables)) dataset.metadata.coordinate_systems = sorted(list(coordinate_systems)) + dataset.metadata.spatialdata_version = spatialdata_version except Exception: pass From dfce6f1b014956c043024e045773aa25a6fe68ec Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 12:36:36 +0200 Subject: [PATCH 14/20] show table dimension --- lib/galaxy/datatypes/binary.py | 43 +++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 137136f62ef1..85c1d89eb4a9 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -4935,6 +4935,15 @@ class SpatialData(CompressedZarrZipArchive): visible=True, ) + MetadataElement( + name="table_shapes", + desc="SpatialData table shapes (n_obs, n_vars)", + default={}, + param=metadata.DictParameter, + readonly=True, + visible=False, + ) + MetadataElement( name="coordinate_systems", desc="SpatialData coordinate systems", @@ -4987,7 +4996,12 @@ def set_peek(self, dataset: DatasetProtocol, **kwd) -> None: if dataset.metadata.tables: peek_lines.append(f"└── Tables ({len(dataset.metadata.tables)})") for tbl in dataset.metadata.tables: - peek_lines.append(f" └── '{tbl}'") + # Add shape information if available + if dataset.metadata.table_shapes and tbl in dataset.metadata.table_shapes: + shape = dataset.metadata.table_shapes[tbl] + peek_lines.append(f" └── '{tbl}': AnnData {shape}") + else: + peek_lines.append(f" └── '{tbl}'") # Show coordinate systems if available if dataset.metadata.coordinate_systems: @@ -5099,12 +5113,39 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N except Exception: pass + # Extract table shapes (n_obs, n_vars) from AnnData tables + table_shapes = {} + for table_name in tables: + try: + # Get obs shape from obs/_index/.zarray + obs_index_path = f"{root_zarr}/tables/{table_name}/obs/_index/.zarray" + var_index_path = f"{root_zarr}/tables/{table_name}/var/_index/.zarray" + + n_obs = None + n_vars = None + + if obs_index_path in zf.namelist(): + with zf.open(obs_index_path) as f: + obs_array = json.load(f) + n_obs = obs_array.get('shape', [None])[0] + + if var_index_path in zf.namelist(): + with zf.open(var_index_path) as f: + var_array = json.load(f) + n_vars = var_array.get('shape', [None])[0] + + if n_obs is not None and n_vars is not None: + table_shapes[table_name] = (n_obs, n_vars) + except Exception: + pass + # Set metadata dataset.metadata.images = sorted(list(images)) dataset.metadata.labels = sorted(list(labels)) dataset.metadata.shapes = sorted(list(shapes)) dataset.metadata.points = sorted(list(points)) dataset.metadata.tables = sorted(list(tables)) + dataset.metadata.table_shapes = table_shapes dataset.metadata.coordinate_systems = sorted(list(coordinate_systems)) dataset.metadata.spatialdata_version = spatialdata_version except Exception: From 1cf17a98f1bd10c5325c53752d466489bc4608c3 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 12:57:15 +0200 Subject: [PATCH 15/20] add omezarr file for negative test --- lib/galaxy/datatypes/binary.py | 3 +++ .../datatypes/test/OMEzarrImages.ome_zarr.zip | Bin 0 -> 24422 bytes 2 files changed, 3 insertions(+) create mode 100644 lib/galaxy/datatypes/test/OMEzarrImages.ome_zarr.zip diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 85c1d89eb4a9..963ef1504201 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -5163,6 +5163,9 @@ def sniff(self, filename: str) -> bool: >>> fname = get_test_fname('subsampled_visium.spatialdata.zip') >>> SpatialData().sniff(fname) True + >>> fname = get_test_fname('OMEzarrImages.ome_zarr.zip') + >>> SpatialData().sniff(fname) + False """ try: diff --git a/lib/galaxy/datatypes/test/OMEzarrImages.ome_zarr.zip b/lib/galaxy/datatypes/test/OMEzarrImages.ome_zarr.zip new file mode 100644 index 0000000000000000000000000000000000000000..766aea5417d0d627ce9fa33393c17b9f5ebc4726 GIT binary patch literal 24422 zcmce+1CVA-w=P(=ZQHidW!tuGtIO)Ljkj#uc6C*kZJX2Ixi`+l-18qyOvL1ljffrb zEIqk0b7d;ZfP$d`{nHZ66?FdX<9|O8fQWz;vuPq<` z-v7MaJYj)=!J6fOfWTtGfPfVL4GRhg>i>a-^%oEQKVUI@^ev8NVKj8n||4Z~gn*X0>{72FMr!~+2TJ*oR z#u*d{2=6~w^S>b(yp3F4on8Jrqx_WT?FX3Pe2-}p^2#a~n$kWeRK*F3$p_%6Ohl!AGoKa%^TKqNE` zr&%uVW+{9yk|}jg%Nc{iQBq!R&3&(j87Q4cRj^d>&M6iAj;^T822W5s7GX_ zoy?V^*prpJGVms;jM<%GvD8C*GY8_EB&!U@7EE9=JKkuLG2-y=__LpGIr_71jDMT3 zdy49=)z~dBW7q11&FmKEIwDZAOR`ayU9*DUN4wj~bF}>lvh1&Q5ArN-6ORCG6z*&Q z70lVbi&s+A$cwkUt_7@Zd;$LxJ&09(WME(*pnn|tuU-95T>lGK|Nq1vtp6<7E=>P- zhxq<~L!susRuldgsDD}H>}=%q-?6AVK^S3x2ub`ox6o))%;uudo=ch^z-`ngfk2Q-t*RO>4zd_YrppHGO>0U$GSf^C*3UcHU~Uz9028Lpeiwve zZ9>&R`KQwl?l!B8mSY7b(7SjiDIZwdejwu)sAd5Ne7t{}Tr_^H|98isSZsxk9a;0% zW1EitKMa5qc|q#_8{>cc@vj+R`uFdDQu+9JaqI{G-Nyo?vkPi%|YgDe_mq ze@I;aDfRyn@1N`6`SD+p?_VJk{FfU4f5RsFZ?XTUn*X2U$nD=S5dRO*nf~1||H+s_ zrwi$uwcITDoNPM&o}9zQt0dwsDFU(Plgu?3x8Gf6TJ4}9wdF(M-hyhO@Z)zD51O=9 zLG;3_z6|DEsxtPQH0QOhl0Pw)MBff*SK0E3L=;btTDU zRLx`***<0^+0O^uN)ni;nu$u9$Sx|Wmr)e|yswJVeSoKu5}KBhs@x*GlrsAVp>H)2 zAefOTe75W1?Vb~&y~qdgSF2vfZwCm_B)T`iBn_W&akJL*GK5;t>Y#UdvsM)~bwwi2 ztU<4{e_O!L%k5UnPt~06Z%eIiG^>MqL`+!x?rQ12}z9tn>$)mw)z+A=63sb1++0vy*Gc|m#xF; zv6H}DS3kl4_m)d~yZ8W<3_LG1{jK0@p@KCvh!OOAylZ*^Wm+gP;gX_09y%e4N{3Dw z8XBt0UcSPz??3{aJ*aZ1(@bvksXJIQnO|(p-15p`1cQ-?{rdsnQ>?zoBZMmA2Ub0E zcmrt?>9>;&V#%_LJb3tOHgNfpI+9!P@CYgGCSV2hk(9-HL}uD)HL<> z5yiV6y(MJon9Ax38!9<|_QM=pPag6{M0oS~bY$Z2LUyd{WRZj`>S#G%+|=LkwC1fc z@sj5bswOf~vx%;{f@;L=j+87uX#CRT-(k5C2G<|J8}OuI8*cs`{!;;zc9VQgc7&|T zEk_`O;^q%=2e=1(E9K53c$R&)*Y|v5NQi~~M*GtC5}Fd1hm*ci^|qcP5umD}N?u*O zyRkL{Q1R$#&BvFTar}EmPr^pDo1dN@|I)5nZasngEn`oh$?pB?^HuG!O$*DCdW^P` z&hW`HlkPk`PW%UET<>U4kQVJvlH*YjL@-ccYPraj`nTo99d|0tj-<*x z`H2^Zw)c)8ZtR;SaD}d?nctf-q?i(nv2ZO<*#gTYs^<7JPgHx46E z8J$RC=AM+ZTW5NYE&t<`KN<`MSXb7nUiUAJ`Z{#h6+848HY<=y4{nnhH-Vsa*^o_i!a2V$pgPaJ*kP zTXQ>^oxPzFMQ`3n2FrA4IR(33h5W6w)N)qO_dnd!4#kHbWBop3)gVv6h@MZg=QsZ!DD%7ZKHJOgN3c&I{2SAQ!?c7yLG8NE;-48 zQu4HmW_cVR93K%**Ty&ffU75Q`JP8{Xakg~RgI0$Fg^olD6x)2*RB#uG zq6Z?X7mNm3EfD5oR7fch%Vvpt)n2xT37_qN$1}wMiI6=&bq!}kjouY%h`A1`hML;s zX{=uvWM`+2oElPA_>UQc7C>&)M8`T0aq&xtutN6&9){J`3V4&FC|U7arOoZT@bVJ* z8k7W+g{%qXplyR6N4x;2cm_}~soX{Q7wTtD^`&38c^@Vc)#4tf8O;$IOaqp!S`R8A zzbGt*XgpJ;B61Kf$?nz5Flz0`O+@Xs0RPI#EPJ&L>b-+^UA)$bF|7)|%?B+#OQ!`sS6~p<bGnW-<+7RIiuAI=#hwK8f zN~|c*>|%;ZJHc`jB{0MAn+e<-saPmy=3E;~%YSgJak$pDt02xl%gK=)95=Iz7thoc zw|uRgBKM+i=Z$HUD>8pbQ4_=L^F}Jiw%%8?_P!2GH-h5Z6+~Uy5N3WWmKvba#9wT+ zGnQrU`!&0sqjR!2T@d-2w=O?U)HQuRkLTWtDkonD+;Q8@_RdrD(Z`RTg89a z>>MY$m}uklL)TOPfT1a&p!rEAjn)8y;mJy@9h7noK>N}2G}5Rs3-|cQwsPg`__cAE zu~mvukA+%Z+JcZG?SEDO;q1`%{L;7cI-1w(ap;*W=(1d?h8v$@QO`C2Z&XuQhXrV* zz&gFKMcPbBS#HJ~APFwThOt81J^c26D3Z#nO=Y?eh%cKN+>Lw6#^GlDy}7cm_6HsM z?c*0MQ;y<=GIme^aVd;tT|E?2nDK~MirwveNV<1Y?Z}_^1Hh~vZ;;wzDMnSmO#ywo zv5rF49^e_E8Pa@ccKDjn*>cSY&GCd7uaAoj1qo@_0ZZV+=IIfpo#IAB%S=;T>iS(^WI zG|hc8wyRt$Nsl$B)2aO+WTs?g)=#Rl>cFEo!s*e>8IiJnA-X2f*eElc`lE)Alh$Q* zW~!@UA!%U1IX-_3*uzaOCw{al)f812(gn{6IZ>}jEEH=1yvt3E9k{63$FQxJ98DPf z_Z;3lsa?*dQ2=`sk}Osgdgc46aRp9MLmCVaa|7CkQ;mQf$)CN*DErC`Z;@g=G;B3zG$-sYat&FfY z>S}tZ$$?c&3Q_9Hx)@rwJ~a=kS!E5|q(SrOgm}nPwzqn$B>fqMP=y!dx|ZS2UBBDM ztGu?hbKd14amv@gBtprF2|!}W#tFFE5RGt-zI&?n^BkQo{1}8}VSTpKZ~e5C^Rt`p ziOur3*lIC4zna=WffHP)SUm>R)>Pg{KbTl0TB**T{7Rd%&WGt6(?~;Ky(yS!j2C$Q z9ShK4$PrvyUE}BaU1^j*+(E;+ynv=al{|bfIEtWtA?aSRaN()`BFtAW(qtg!P?`T- zQ@J#=)#LX%Wf-B$>+x>rQ`aON#n#Mm`sk%aF1(!A?EbhiILhK-zg_Ql+!Cv! zbYkn}IXsy4e6`(dCSmTc<|e0RXXn;D8d13sLKwFedtyw4Wiq1thpdor*N+{&#OyG| z4Y=8DXXACZC)Kg-a_IH`Sb`xw_rl6y0c4r|(Z6!hb?`-NLZvAz|CHIhvh@eyFk10S z2#q(H-UgWX4P=+u;a=a#a3|P$HPr-x0X2ivYR~_l>(3y>j|PGpB-lYSDZM0z^E^Dp?PgB z18ueAJNLr?C4*kCv(>}Lno3CbXBneGk7GwKcru@&&c1L|O2TaU>6|eFZmUp{bZKN? zXX>pn&7RmgZ@zPcz09175`iWDk9^x*+GuANY2V;7vfkhO3=CEAt{zb2+aK2ye^CES0=~wua_tFOYoU5oRtdK_BpNFJ`u}jK~^82)0ZUuOL zmzv!lPi3^4t~ErgIBd4t1i0%vahFC@A_;}wsBp`xXrnNX4WRhAMicB~Hno?tp4(JT z%1m?>^v|ECN!04LyFV_p_fv?vYNQn6&P-P$cy2bgLpI2qeNed@1Bu&tS7j98EFJkL ziG3MI6U0Q~tdA&FRLv(giE7WydR1;Hmp7Mn4$qNFtErpo=d9$L}BrA3~y4bz3A;J=|@A`PKSz%5ODK|I0i<;g0L`x|R>8g~ZrfH*YLWRi<>tyQS*q&TitAY@Cm??b)RoiGx<$d-IKx$NN zCaP%7N-ed(*2k68_$^n8A{5g@ou-GW`6nak#Z%Kbq78Dzj~-W7|C$wef6J=n^D=Qg z7)Zh8tjRtj=<+_-Re*g=p<0<%%&#i1D=%yyDr=j;L^FnGo5IlhHu><(4mwXRZ!b-e z=SJt$S|5w4Ez}Y2N9|S6RY(k4(%$OwU zBC-@l7zFcol?|h!qKFo6~YaJIU>7_#6lNnxZdHmzNNmQe~wucpPD7 z?Th4E@wl4cX~`*)_Wh?a&aI1!(T*moO#kDl^;*#7e&BT;;8A11#mVCQb};@0wSJcB z@_YqX7+%Zpx6w^ZQdiv&i9t7=lP&AyoXw(MkK*i-ptDCghwUoL!$7gE9Gn#+b)0!hQK+?lqh8Z?%CimOnFItAAahx&*(P5}( zPj-kImC<+nok+4d9zVABeoa-+tBfib^mx6Wo$fA{y=8??6#2McF+y$nKKMqTR8uof z@njlk>L0_8WUgxd5qQUPmaWPlmCDpI!AC`(!hCD48T0skV!fVRfRA(5XZjXqWtllY zXSl#q^2shZ&?xp^_2c(aIYhBvZY|Fzn|Qf|>;aQNI1P=1yra}!bMY;`W+fgtI{(6w z|JQ5lmhb8K=#?%vFB{v^_F{Z*xOd84$U7ndx9^UjA1069uMBc-375%)XXXHQm;jv1 zWMd4HHd!erD{FZk)Ad4kX+DyMB)Xx@bslYUQBGy87ln0CFv1C_A|uY*c;w^YF6mYv zyY8SUooIeec=~uZ5h=~r3DUh8>n6fzb;46%&XCk9lv6xBuRWV*gD#)PCsu`Re17KN ztHJUocboHZ9fKKbk|}P(;JP{zKV8xe@y8izhP4x@srPVCmeM61Gbkj<**0Z$yjRcwfY zZJtBoGSVJNsE9*^^jo7?`Gqo=KcMZbZ1*`@>Y zBJ8TW*2h+wt3uKYt>I>W94RH=2uCzfW2i|V?0R)=n3UN zR*f03IU5mv(xM+Fl_#$xzpCvcb7phsR9xo2DMdDSi^KZL=Wjx@?x)X#NrI>cg!F0s zq`)Tr1UyyY$skKxeoqS@O5$LXK6iBL7Obvf39Zb`C^1#kv*srV;22&9(Oxjh+=)k z=k~b;%P8P~DjT5jy_UEy2lZ_A4Ls5~>fDoGMX>BE;l3V<*->XyeA za(s882?m71DCK=|bf0P9*QFSg|dn0go2`sJBvK5L}LrE%yzBWl~>C9mtbW&lO7y>-&r6$E!gR0e*dG z-h|b|oSagRscuJ$`NWI7*nVnIbSt6X!@N$K{8Nj2o`B#|fn(BzTQvMMy^%m*CHkOE z{{3TxoF3)uLk0P}JN{JdE|nND(_#w_e~+kj5mSX#vwOoxCPNSE@j{G&LRPh;1r#5K zV5u^LqRD7k!!!iqX#E)?_PRrv9LtAvN^ttOHA#>>g&ZCQgZP_ip-kHG`mT_#YrVCY zH^YYi#YhS5>Wmx5b2cyM@3r+nUloJPBkCO=n{Iy(x$cF9RO{2|5M%s6GrH2)B_BmgfcC*oIwjL)g^>Q?Hxf`nU=T6&xR+$Uc zzM`&_T3~=}=1)W=iV4M$q*JM8qfp!vr>XDX2?*b;$Xk+s=Vg3Lagf!lqyuq>N=};_Z%q_X z$K*{O$t8itdYO*_i-x1}1*cx+Vin5*5ipeN4olP!bTT>BxP(fDB^3`ilXmg1Q0;(Gz_t z8!CuPDCvb6Q!*WIfAV>PM#=Za$_2xS03p}rf*}O;1pb&66_30wZ}*1@NrNFcPBxBk z61(c~V(|f-W6Y1`LxSdJddG*K$3r=k*ZTaMd%PXyYa^s;*>^yovujM`CXGnGifnWG z*liyb951!ivyKz>TStD zI(UxkxoTG=x&=oPtbUtUFsGY{F^m$>6>c#bogS}4edCLiJaAez_K`aX;2+W^jpL9h zj=ybfZP4%C9oGHXe$O*t;Pbf}Zbs3sE%OO{tHai7>lNOqve?u}JDou_pR#h3=@XbN zLo>mS5u$1ys?gGQlr`QdW9kk#cZqWG%Oa92t-!qm_P4dG-r^hDqad6o65L*-Pgc%n z)J2Ki!&wugg!k|=Zt`yb@pzkVtJPYA zU8Boux}}lp`WsB>Bp5RJj>CmPFml<&th8H>f%i#46T02ODh z*Vpo>{4+u>cDHZK-?Abn$E{h3{o2naHrSF^wZa0K=7^T-*{x>hznc<8Su6J29p?AD zQ9^JzOVLvMQk4WO6=Nmpm{x4zrOfArr&*|)ML=O#{wl?Y6aj9=gt+?sY4g9tZAv8t zrK4D2@P!jk4MFT8jdHqw^)(@3MSj~-k{DvKqK8pTaK34&&UkFRu1|W*Jh(k0xYGhJ z4epL8=I4$+BMlphyX(8@+3DT(>*_xrU9I`tB=Y;X*BCT*&Pfc@G15>j(xNRP8j-whQ~ zyGk^+deK$ct)bU($N$~vKUqNI3g3iHKR>wsaR9@!-WSbVMr2>qwEPGGJ0%@HiFS8x z%ans1KNz@MXhQ#@X=>7_^{fb5B^4T9my`r-@GjJ)B8V3c11peuq$(g8S@XBJ@hq^j z@00hsZUWk|BApY2{Qy>1Bcd#1W0&-)M!qb}TKGC~7i}GrC=t=!9&fwV<#PUp??oX0 zr3Nx3;#KVaH<29gMRLZ4$FGMnLcQLL-AxX?TcTRZz|qR0d>;Wx(8#vbci>xTy+ux! zSo`zJHgBeV+gzN6_gaTx;C6ikPQraMr!1E-Vj0A};KIH5$$4yf9y&M9&vF0Wu5xkn zA6N8SHe1#el~GAn);UxoGw`yHRAA2X?!YDenra5D*iKg>R5cF%NbNc|ER`eEJW7}% zvfONTWHW>kQQ*?cbVek%jqV0%M5jFpSRl>@Yh6TAW`0?cS1OR;bs|CMJBvYk;RLPW zQqNQ{BhK-I4m*`hnDE-ztEhMAcC80A`&hQoE2@PZ=^s}{MOlN>g(hel5bkt`#ha!= zptGN#4s6ODo~PBWW#}kuYZvs$@LvP56ZE7bZZ{8G_ubzX&%(4qS=UBY%yA;)rCPdAT}k(JoUNCRZu#$z z!&1)bwzDiDJ$Q0A7f4mmQX_`LF=O2Nju$rfPkcS%j#g ze#XS3#3|ZDnTLT0g1kCz*vfrMfLP=|4&vZv;+oafSS@N5sUxxjj1K0`qNaV@>8gSV zY+AqAX84s!S~;-b>2o&uW5Fj=Z719(VetLmD+ecC7=Mpps*lMBI!uw# zN@ivn?w&+~OjJ^Us4R|OQy6;lgjI<*x;<{HrkQU^htcp>#Z!(`n^cN@Lg9BRE>&Zc z{|v!E(TkUrIL0`|_LZ}H8NuE5MJ7Kh*;PkJ#^xS`i&WE!$K%TOd-z?St;{&v9_?I- z8v&8&)?9JzdD54J&KnKdg>InFavC zBBT(aO8G-Gb{b^(NR-Jd!DmS}zYw(fZ z88Znc11w*WDa*q#EiR}#>yrWad7`pWtlS`%L0 zdV=z<1BPdc&^%nQHX}Dd6n5O1BpPw9sXD$?T+J%Cf}I{b=f_2(hL1=rD5Vc>jG`ud z+iPlELhr%clNz8EU;L%&kp@{zt>pcqdGeSs8``W!^IkGCKDTDbTPgU>DOd)DC7~?w z9ZdeCIW}fp^Kn?*){+|Koe=MaU|%@~8gXypPU~d=K?g-D5uE`z-W@^|z>|EnA8ta# zu3A@!80P2?*ZQPLl+QGX z!@A~WnTiEqVlr~-QLHT!4zRD-?yj{<_nu09i3{1c!kx2=Eic zhQXiD@kh+jwe5MjYb??$2>(j%Mh3T;z?@s}#4!!98}GO4yq~*)JQ%6rC^;J|*pSX^ zz1XRIMZ9FVRZcARC- z;@hWk?r?H#*N0a*yV*(E*_EpyI(>QRytaF3!+EjM>@=P&o^=Nr<-EaCI@d0~zADTE zR}iO@b+nYH4cD6kmYj1VOwu?AtovcBW!Jw6`Z66uX@%aav~5z!@gXJ^|x4VPsnIFn&)}=+PTUYt1qy50svH0R=|h)c;k2~?N1_H z@M!L#KbFQ_r3(Gsz2R_JYqJir`Fb-ESjR{-DHC;71sU`{1y%>dm^6EF{N@W=R)v*~ z6g?NESc#WBl^lQ3iF~7M# zNHQxjfoL}~wmry!SzlyERpvopNgP!OwDfTyd$%&lxR%_-G<#hEKi_;nw|E6DL&Yvxb$e$wb?9E7LAqO0 zeiaXq=cIGo5gvD)(|FROg!Q51P+v|YzP6&2o%NE7bdy6F$-&91(-b3?Ci`#+l$MoZ zGElF45G!oobOJiH(hudoC!V}*S!6~X&#$$KO$ra$i5Pb%M*9O$h-pFn*?2o}?)7eD zE=gOjHagrMWgTX3cMDKM{P-`Yk=tA9iW&MM&3zmce2OTR(+-Z(R^Hm)?y~)KJTAOF z=NII-3D#>mY(fxAZ^ud~tm~$s<@Xs^V0638tsyn0r&8sTS9Ut+tl3tD*79cz&<< zy^Nr^n*M@Hys#or zMN8=Gvc3Z|1~sjS$9=3KLIp_RQ{u1;4qmjkdeoJ5&0Fr{bfY;@E1C?lLsOJCTSYnZ z$vyD_-PQq0pnK)9SyU~z5LmL};aUnauHN;vMI=|3>SLy2%pdajgm^qoUA?WH-Sa#A zu6q7TO5h4wN@0Xnn;QCxzZ(6Y9@=dX)nQ&Ps7m;S^qmLX!&ep2jH^F#3f%ALj1C2O zeeFXCLl)ao!M3Aaq`KPCw!lt6(y9>2MHz!ep;Xs*>Ow>X#JbeJ!%;quZ|4Mn0lLL+ zZl&xU+9<)!It~D312yueTmk|fpVx&9m9p7v-nH$`2^e%cmyZRI(D?YBXeJAU3jKo{;9W#`h?anRt3}KGQDBe+(lq#G;UK z|KMctDCo9%9vwuYih}xu_~FM|zIf%8brd$tU?Q;>P<-!P;oA`E)>$rJkr)sW)KH*k zz;xvZA(Rc!B6#BL%&{FEQ&&Z`e+xy?nvxX@aR5890GdV`3$EouFAk(5TQHl=gjnbf zG!P577U8`!fLRsgghI@}Oj)?hd6%=r=MP^t6&(y3MJ%MmYf20Cuek)+<~DhmT+bfb zSwAoFtBvIDI{ATxk3b*UC0c8=>TORaT*3Kxbf*&DHWTgxUN8>|2b) z2Hr}k*Lc=>)>3iw7_F=E<(dqnSvL%H7$bN)abp~PzAIdgXY;THwzikI*2@dRpF053 z4IK2^b-vR_{8}mHbx3X}iGuiIB3d|t!2V3QD=bxCwQP0TK-?6`{X#A;Xb>w))2ern zxEInR)7SMP!JuDk=vx`%vUPsBlJV#DKhf6bW2PCXX!uhkw7vwT81NT)JF??mINh3w zJQhe{9NhRRIXzm!hdLHeYUf!T?f>rYwC@J_%gWPh8tDCMwiq1Ddcvcoaw~FxkJxfX zqD#O;nM+^f=HKUpE(cvjSvg2b5GA?<=1T8LhPbTu#3H_7c0`eARm)+?(Qgx;V)ibp zU-yw$|2_b2>qtlUKR0|d#q2VTPzwJ*D2#^BtTlIO#5gz|s=s)4G?%fk5LPqKfk3hf+*luPjAk+tkN- z0!@T3g;rB0aa{0{j2u8Fj_kVyM0j>4F*fg7@49^if8KhJ0cV(I$@QKj40H+oz3u_2ab?@A`7VZ)L#`(UcWD$1i!dy=nv`03BQ z;bq*`I(+ciRm+6RulZDO0_kDD)`VV^;l*^W**+SU{z@Cq!*a9mDZC7RN^Gg@@qBFD->jGgbYwOTOx-v~(&}LkE@VPEFu1>{L!MUveI; zZ0L>?VUMn)la+}gx8M|nLRrYVNWR8qOv$X=hkNk4^SxGt?LAt7Y?=d+k_NYIpr@p+ ztDWmZ#mag=H$PCAgwu*C9(i*OcG6mKo<`1&_eMUzJYl=n+Yx{gvG)RzbJX z&B|}#_x)^4XuSw$ygsvSUs+~)!tJ;$-K?DAkeOb>aM zH!pSIU#Q}5N&z>$@9J%ei9ks{pkQ}{>HV`Hvmik@o>s1s%oI6C0f1i!=R1I;+P5jQ z`v*fk!1By9yYk#XFR8Gz_|(}Jjd3|Hy@F>4JRIGfd|)3Tjjj^6=w256QhjtM1GdcD z=bbm^tO(pKslw^e&EBKBY)j^NO>EtAnaXFrEgzM-Uc{ZIs!<$URd)Ah+y^quyq0d& zFx$_pnJ~xEL>c=5JaIoBXm3oel*&jZYKG|-6&Py+wSnplyInCJQ)CwZmbfC7VO4*w zf{}3=%bj?BsP7E8UU~CFVcdgZi5z(TGDcmVwelZ4+9{PLTJ2`~m0KZShD=CMFj3Cz zamr&VK(y6W{((|^QeJFzIaAw;1Y>NK!9>mdeBiJ?v^`Zm6(dvD4;&`k*wWm_ zB8?f2S3VK4JzDD8nwlptW;aU<91!s>j=yD06#*$D}=CQr zK_^oncQ4;*IXVrbM=ev%-%|`TG3*|boExqLK<*5JrBU=Ifn^24lh%VVXMW2D(R27l zBhfdB$$+bKI`5|mo!lOgO~##8@%);CQ3C^9V`a8EtnXf{-|>UQs*GF~tOP}CNI+=6 zG;CzE=pUX{o{KGB81Cp)Fo=6?03$NrWSPD|fRZEjg}c7EB2%&M#A;<1+>uC!wrV*O zfo|!*zG{N2d$JI?gI+iX(#O%6(ID9|1wA8A2`t59wf{~blIsm~Nc$jL5G;k@?_on6 zxn^@!6Er6kbm>Q+%?YtQ5p+57)RBBl!N5?3FF3EV5bX=GlnDB5NNntCvDmLK@I84^(m#bESi`Qj&3KA zHZq?9tGmfVX(OKt`krJYf#SM0#t7_;<(RNWHNd(JQ#w=A@?-eC0zgAs z?F749$8amGpPv0|8e01|mCFF8lj9V~>T!QOzF14JWe|I`BdKy0z2au0>khPbnxQd@{Cazp5Gx!Tx85U!kqJ!+$@OG&NHya3uP1yYGe_kUR$H77?Zn{-pd_eG(kU_?PvhxsD7eY`%b(LQG&QO}oP8Cyu3Qi9QQ(f=t(TwY7 zl!_TZP>&J_`_gIV3KW^$S3kuA6JM(uR)V?$qodLnDf)eY-dPLb2E>0Vqv!mLj+Mnh z9cA;T)Py}PEI#+adbp{Zo0*@?ODgu|!9GGEDG^E!N^Ts54%5ihr$GCqh$VGME)w5| zIofG@=oLW20|2o>dk<=6Fc&O)A}VzLy5AS8Czj(Ehrg5udd059fY$Y7a~B* z2HG_nlg!jDiOHhY7}O&t`RRdacVd?4V_>@o?5|VgAy}q_Lw){USbd8*SF{bDfNqXrEwh-S}ZO?kRR+DF}O*q$~!SlYb1f_&v?~AIQpMCEbEJH%ks0>A!%RME!QmW9htG~zg|5o>ddWRCr@x$rsMnMRfiBMixkZ+^eY0HEeLBBi= z=?=DOccnlGU_WR<`IvNm)uMQMvUdUB7~-&z^+$lMTL^IqQEO-Z%^E*PpPj>|+sAM6 z$nGq{H_`{s=sCEOjMu~r@5vIJ9G1Xf`S_3pKt0ogqN)2pT^OKKfbb94R*~8oVDMhB zVC@brx$$72y_sHCtWR>GzFqq!)mO?5cld%wKGvYJuoLoR{S|h&1C1f1DFgo~6I1^n zGj_c^LfSof9A8@`@?x1HySe829mBOB19}ilE5ntTd@_IfLZI1+2Lh%{AurbRXsU-9g-tG0Vp-Bip_Ml;!`Mi%4CNz5-Bo-7$^(B zCoZM=4-7kW)f>oJ>t2SVb)k$3?!w>88 z-%SasJ&#^gdOgb3NWTQa3w=h-l9sD{ zjmdTE`uK6XQowQ=$2kna!E)vQ;K^P40rl|X3zTWIc!1CVtvhOL+*W;Az_KwVB=wzb zN0JIsGTDPtfTIL1yCn73A*b{`SJy=*@MEQ3Gxcd3nt+rInG>XhfNlMOJ!jS2HKDYf z47^mShnbUUT=0oT7B!Ss&b0NYvmS)g#}G%Cdn|)PqbE%rHw5X*fijSZc=2jvzlR9& zYuxoNw7Uhl1CEN1NKW@@3oYSLm&t;3(B7rAWd13G(n%1ShV8k9Fp0TcmNtFzkyP+= z0-81kS<~1IT>-Dl4ixcg`rS&=I*63xH^wYZ7UiI*Iu}#)#z2xn;HCVF0j-6ks zpeix-=+>l}lzfl_`mk+_K3c1T2spZI7}f>N*Cz0%h8yC(tlOI_o~2EBGhm?}@D=%R z&P&@9TnmLAfSb7ClG8=XepSj3 z{DPoeG&qt5p9p-F2)GgCT6_fi&`T+%M*V_1Cy%XS@*2ARe0*BIwFU>*CC}$KOED-{i?^PE(xy!;$3`9zbid zhOHsX)=Zq!@hx1-3deo#51DZJQ@v(E+ts1;SV&niO7U{RTO#fbUw>6skAy9(~OLb`~@XsrX~GhMAV){Qb>DGH|i#WO%vx>Re^;; zt@9UDuP%@RH?0{vp8BCosBwSUZ6kVnLf|5T!H7xooDZoqcTkLH`M}+knWmWx1bBil zEC79&m|%B>qL25MNiZ@+Cy85X$LjhP5zaR_|L{kv5EtVWt#S$|`p=B4*v*E?hb` zpdQZ`R;RGX?#Z3|2+ay7;=+{> zgtn|7E3A&eW=Jf@MAF|Az+sBSDwqW>PB$>XOTY7g*Dw$hrK+@oM$R2<$~UBbI5+rv^F0Sv{Xpwe z{W=J27tCCa(CkI;ai9tU7ZaiUaEK2nE>G%&bsi|S79<1geN?Pkyr!WkGTO`mSmKuQ ze6D+fAn*8~`wJI=f94PlU1jF1I*|E^MY3Mv908HdX$lgn@m!uj@ZF6~sBP|#IC7A6 z4e0qK;=@HIBaa50HHEUlg!+?i=Ntk79OBDn>Z*rNu+R%6ZSK#wY3i;7S(s#^4B}+u ztEZB_Ypgp;2;I}2Fg7bUmKdF}=|Z@pvdACG@6r0R=&d(i9LyI0&E2_c?RUz2CXlJNLI| z_RRigJ^Ovv+G}Rdp8XU{%a`2V!Jfrh*&PW@4hOV&k#}HYdo<{r#0b}sH685uaNd9* zbIqJ@m*AM^$fM$RKd>xAyM^T(|4+sgm zTk)1o8WZd)&S~63dg%-D;m>)>u^0LIXd%=KQ#P*8Yss{QN7%mY zN)T=6NisqEy`AQ>Oke8Vn$s{~kb%=&X+uAGaspqr<1Y7I83xfrV#TbMihCd#^!{JlQJm``){AAYaS=a_H#%$W5UpW^836Th#5JT2l>a7dxiCk1(al& zb?@5zGzg!UMl!E9F(#ug708lFJ8vhz<59nv4SG6{kgb9qgeU4mg~r*BP$h7ce^Stm ziB%*!z`K{EdBm#0Xmo!F-=3=(2kJw@$LuHcMf0U*s2v-s=0J^-mi331#!AYZu7ud1MIC}V|g#MHwI~< z{U4+@koOiuWb3+#>l>~cT2$iAYR{S{P2dV?>$@=f}6HpLJX|;BYWf9nvq1XJpQvzy%E(#C3~raH+>1 z22-|`0NU%UD>*2o#a!ZfYj5uzJ;HSD-REIk7{9MX$?Au5sKE`=FQf|jw374EN*4;H zCzRScfkeBXrq&*hlHBq2OrGojuh?wRp8CGr_;3fINBs5XgTqxSwslvleb zVNjldGyiL@3qxyAMs*Jjo@ORVPj|y4{pWaxQj)iLR^nve_16XNdWnZSyP0e@025l+73H#s11S5xgIKSgnyNEAJ1JRWsnoi;rT|PXoczbMcAELy#t6GMJe%Sk!({QG$8SWrXmVCA%T&z$7C?0CLrXlq^{5zxwPjqS$$)X<#hYSJKKQDuB#LVD4SFItX- z1>Fh1%Yoe0=wUFb8(@)F+)qY7-5mFge@)eE{%(2$s^DlzV1NR#;qOGjt(EBL8L8E~ z)>p})$d+#ol-Xj}Pr=GIn^%0B{I@GMvuOoT;wg~TUykPmY5F@ z(#}(}XO@wsNG2jUVH#XSI$1Z%OlvU?-yPqtlXLRsZsg$yG-}9h&B6#;UeV zG+ItY+FAf=+w0nX<*%Kl+C`$^Mi!g-f2=$|`5bYwlCOmJ9Ny1z)5!2!oqBWsG@Mii zLACsNP#$>Z*|y`8GxKhwze`<+ialHgKt5#88=q;lv^n@nYN5(Zg~bQ&ZSCXY#N7c? zx55;h?0fnVe43r9*uqnJPHCs%k_qn`utW~pfcZvf=cC#RZI0PfvUdWC#q@1@GciI3=hbdTMaSuMaDm&=z?O#48TtC6gdhCc4-tt;_%NBKi z_;OYVB?2$$ZA@B2?FXFu@I63*9~ z?r~=MVCd#WDP|aE?~2*5hKM!#es)AvL{`76C^fs)m~0GmiD05iM9il?`!GuwgucIZ zcrRCqtIEYfdF!4@gHt%gS@y8^vEz5YGhAAV6lb7BT&R&N;RZ2EtL<&{vgRB{l!b^< zKy;DbrxTvUYg-!E%Od}-3+i!?`vA><;tj!k?m)VQvWfFawlHtVwv9vO?ZFu* zoX1Zn&dskClm8Y#pv&5VMJny~Dx9nntvRZ6Zc-<$&soVa6QXe6Ziz*@csWUgpyO$f zUdbOdTN#_R=T-x$lskZi^8KnPV&sA!(8-)q>BEo@gMXP|oS{8UX3=5acJJ4r(6x${qPnx<0 zcWk1w&6U20l$i4Oj~ix1rtDot-#*$l(dGV1firB?{aC9W#+o;q+tN6TpiP;Si>;kf zqoT8)pEQeuUjyXLNT}Avl%f{A`dDbry~LGWDb^{gT5}UOq(d?aC%D~G|ZZLi8O@N4%(^ejXo=SJ<`1$zCH^m#trTTe0REHK%=iw*#1^-^4M(BTe~2I}tX zj2!PMXLVS$YoW@(sRctttc2&29yp}XUC-V&f}cn$q0DgLt#vk%$_dIeY{z#toiwpG z!ZX~Y(*RipZ3zrt?_`Ji+Uk`srwiI=wfN6pY7XQ&$ySxEQ1qqosjVw62rXd?Uu+fz zJ)9|?ntGA(g*{41Wyg~uLC*inz*`&5^E*5xx^B-lq(FVm76W23=^JAenE)_<-%8gp zDu!(qQ4vv$wvZEDvCfl5YxT_LPW2|el4z)Z9#PNcRq=r}{v_D@;GK>FCpQ%xGS2Nw zT|-_8=|FwzLx=6f&Wp8@RB%)Nk8d;&*%sJ+>YtWB0sGPhfV6P?JSrS(xG+$O;}Iko zYZ@waVdo?1Lz!6iA_?4NTDz8Dx@h@1*&#@A!iLCgBt4ME0LwL`WiW4f=ON$YC8RDK z9afV$1KE#4t^rrLvF~xe738nC7gS6q1)S+QwWvY}4+5jkZ}vHBVQ$1bDJRZsdS`P&@#Xl|09B7>pkm_*-JdasJW5sCZl9i|n5U&t61eip!q9xaLDUgDk z*2}3%=kG(sU}^3WmP`VG#IF%<70>GnF3Q(LcsPTnGg|HV56Ufi4FFLhhSdclxAUX| z7?0_9JLQ>coQvr`*XYm<-oA#WlfLao6z8u>Y8A`COpWtYP{x)kbCXvxh*00*+KUO` zWrM0!ncFoCEE}a?x^0_pI-b|-lXv-KtEo957ltK{ZuQ~9NqJSkcUTM?47+S5%S*lkVoQV}l1Y(*+8?Y@2-DT)&mzjd|oTgj9e&XDL!N$9>KEFn_qq&bz`e5w!I{%e|cT$%c8CXX9sD zuZj?sLkho|m`i+tKc+}?8PA$KP%ht1e!OVMX6#!rkuc|9t9VvaK_1B}-#2b+7aNrl zH?5LX*1IxQOg57ipfKUC$EG?61S~EJEon+-forDS6?_1QVA9GM(Z(+W#K5DyZ-Z$N zlf1fxiedYgUAdU*QNS}si|jQ!mWyqi5DsA3V@KPY;zKWrU&03JZhUh<_F2sk-jlY6 z_0CXXHuiCG!mB@VQ7@mLL$kDIr3hAttC>BSC9W=xWKt>r@lqdb@52*9h^CVFgVVeg@ZvFWI^C~)4-a~@+ zLe1+{3A~~Hnq<}P@AIq+M=(dvXj&eQ?(TvNz@?$DvE_J+j-0{*{gd%3T|dNFig|4Ay2a`HDDMq?HU)Mu`{zZB1NUlo%?TN zS>c*PP!{3b82sDqF~%|Yu}>Sl6j3h_Iu*XeNPyp5x|&c7!EebYCVI2YvZ2K%F6nei zKA<|;at`7m^i9>iC4IEI0-SNiA>crbUKsL7aaKTcr-c9&*USX%Py&smn}N(NwRA~`ZS&usxl~E_ane^0$c<@xQR*xGLmXQwG8p4Jln=}y0L4E;j|R&kRfj?SioEq zUB7J+*5O*Mv9_}&$49CPGYvXFV~Go`HuDU%eySuhC(UmhXu+zb12)tI>35i;I%}%R zR!@f1@T)a6Vlc7x7$K!CI?{gFLbeWYp=rj@8Xq$(%ETvg0~amHn)!9OhqV0jfvNz+4Kmv+_A5DYdStXi{q5yPii_dmXyL?q?eLCc|L^XBjio znNHxF=R&sj#i3_Wr=JXb_mG1~+X*g_^8#zoQRzb3o&SAJ@T>b1{Y39pBhXYN6{Y#= zDYZ0#h~+!^*W5rALx!YSd~deiAVk0lhGM{~WprNmMYdAtw{|9fHg9|sm|MJ5LDZX_ z*Ne8XTVM#?JK9o&5Dzuxm~V+A6(B%7UN1;YU=TVSE=m|s7>d;beO=fb}KU*QSyZm3-8MA^cnDZ6O?vTXgk}}`S6eCSeRo# zbweU!bVotItz0v-4Lfr2j2u~&Xea3o;TXg|m1NF{QUbOBnx9iKII<4;iwF?PHdI8( zF>`(Ek5&S8jrZ~xvJ(DQr+Yi7?cwuWB}E3dsj#Zuz~2scHN$k~c}}>=x@6*-y?F|( zQ$31FcH4YOBJ2B{De^yZ0AofdI;(!{&~7_^CE;TM74F4-Oc$d)1qrVStP?s%(PP;f zn(-r(TnVj}(pepHk0+Wpq>>>BnN3lBTtV%m5%Emtw?NXa)^!e`l1W-*$DXF1heFzn zQ|ikBWUkM=GlFYI&B(&F^my8i&tLjz5mBI8Mg$>7pe8PEDBfLx+uRNp z*nEp}pveg~5Oh(dqtUBOa^Jz-TQ+p*YwJN_@0&6#(9+i4i$}nnn*jb}jJnXTPhh`G z_`yD$#(Z%s6c@XHs%%G|yw@;|kS`y>*5XXQ=n~~u_V3ycQzI~vwN%K zrS(V%n}Q8(t!tP!^dQF4Y4Y-fGxg^7IdwhqzT5|U3aF7B6xV-Vs3fctEUzFTv)|8w z0L-8uO%MFzO0o5fpOr>E@UtQfYCaXWu`LjuH8aK5WqzGB!?#m4mcN4>B|}3Qd2G?7 zTyFx>x@Sh2A=HixtJmEKJJG57#MvGYxK%4HXd#+`H7VvL!+Mrt z`0bj@Jw9<;0ofB5d_D;Z;%d(2;V#UYUd#}KVHM}hy^S~3H+(O}pr0)u9dF3p`QCqY zz;FihCUS~Mi#HnhlU4diOPwLyxRTk&#X@zx40wgu!oqP&KP-355pdnN7^_|N-1yVT zqV*JH|JOgNAAx`?uO@B4yL{hM#K&dSXnpL7Jh z^4CGk=7p7)npVnne6QztY{j91j||@)sfi3dk!x#kj!j6fgWj^fI862gCp-uq*AUeA zZ=^o~e2}{){Cb}0`6WZYuJt9=m3OsS(#rkZ6c6u8sA&SjC!i<%dja&7KJ+U4YFFp~ zR0sXPWB(L+{@K@jWo7=Es%V3M8v7UZ(EsZ8|BTpI8~P{2FKeLxTE(Be#aD{fpQ(yw z#{b6-{byR}pT+!t{rW5E0m0vre#wgblXP|O|LDuU@*V%oz8dg{o%ye`{(m+7lKuFv zo%^%z_sZ(~GgZ;I{srY1ZOA`M`q{icyLk0spFdSEAxyr~O Date: Wed, 15 Oct 2025 13:45:58 +0200 Subject: [PATCH 16/20] remove the redundant class caused by merging conflicts --- lib/galaxy/datatypes/binary.py | 49 ---------------------------------- 1 file changed, 49 deletions(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 963ef1504201..c346318560ae 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -5296,52 +5296,3 @@ def sniff_prefix(self, file_prefix: FilePrefix) -> bool: except Exception: # Any exception during parsing means it's not a valid safetensors file return False - -class SpatialData(CompressedZarrZipArchive): - """ - Class for SpatialData file: https://spatialdata.scverse.org/ - - SpatialData: an open and universal framework for processing spatial omics data. - SpatialData aims at implementing a performant in-memory representation in Python - and an on-disk representation based on the Zarr and Parquet data formats - and following, when applicable, the OME-NGFF specification - - The format stores multi-modal spatial omics datasets including: - - Images (2D/3D multi-scale) - - Labels (segmentation masks) - - Shapes (polygons, circles) - - Points (transcript locations, point clouds) - - Tables (annotations) - """ - - file_ext = "spatialdata.zip" - - def sniff(self, filename: str) -> bool: - """ - Check if the file is a valid SpatialData zarr archive. - - SpatialData files are Zarr archives with specific structure containing - element directories like images/, labels/, shapes/, points/, or tables/. - - >>> from galaxy.datatypes.sniff import get_test_fname - >>> fname = get_test_fname('subsampled_visium.spatialdata.zip') - >>> SpatialData().sniff(fname) - True - """ - - try: - with zipfile.ZipFile(filename) as zf: - # Look for SpatialData-specific structure - # SpatialData has element directories like images/, labels/, shapes/, points/, tables/ - spatialdata_elements = {'images', 'labels', 'shapes', 'points', 'tables'} - for file in zf.namelist(): - parts = file.split('/') - # Check both root level and one level deeper - if len(parts) > 1 and parts[1] in spatialdata_elements: - return True - if len(parts) > 0 and parts[0] in spatialdata_elements: - return True - - return False - except Exception: - return False From be72931178dc76be3369292112020845ae9e82aa Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 13:55:44 +0200 Subject: [PATCH 17/20] fix python lint --- lib/galaxy/datatypes/binary.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index c346318560ae..f5f4121d8d20 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -5140,13 +5140,13 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N pass # Set metadata - dataset.metadata.images = sorted(list(images)) - dataset.metadata.labels = sorted(list(labels)) - dataset.metadata.shapes = sorted(list(shapes)) - dataset.metadata.points = sorted(list(points)) - dataset.metadata.tables = sorted(list(tables)) + dataset.metadata.images = sorted(images) + dataset.metadata.labels = sorted(labels) + dataset.metadata.shapes = sorted(shapes) + dataset.metadata.points = sorted(points) + dataset.metadata.tables = sorted(tables) dataset.metadata.table_shapes = table_shapes - dataset.metadata.coordinate_systems = sorted(list(coordinate_systems)) + dataset.metadata.coordinate_systems = sorted(coordinate_systems) dataset.metadata.spatialdata_version = spatialdata_version except Exception: pass From 3323d5706d462fb71e8e600ebe8dc0d59a86683f Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 14:14:41 +0200 Subject: [PATCH 18/20] fix lint --- lib/galaxy/datatypes/binary.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index f5f4121d8d20..6df21bcc8091 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -5199,6 +5199,7 @@ def sniff(self, filename: str) -> bool: # Any exception during parsing means it's not a valid spatialdata file return False + @build_sniff_from_prefix class Safetensors(Binary): """ From bd010a1f8d7ef3cb5e820c2f2c322fb9667b9e95 Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 14:31:39 +0200 Subject: [PATCH 19/20] fix lint with black --- lib/galaxy/datatypes/binary.py | 73 ++++++++++++++++------------------ 1 file changed, 35 insertions(+), 38 deletions(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 6df21bcc8091..2d6e60951d15 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -5034,8 +5034,8 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N # Find the root zarr directory root_zarr = None for file in zf.namelist(): - if file.endswith('.zarr/.zattrs'): - root_zarr = file.replace('/.zattrs', '') + if file.endswith(".zarr/.zattrs"): + root_zarr = file.replace("/.zattrs", "") break # Read root attributes for version info @@ -5044,9 +5044,9 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N try: with zf.open(root_attrs_path) as f: root_attrs = json.load(f) - if 'spatialdata_attrs' in root_attrs: - spatialdata_attrs = root_attrs['spatialdata_attrs'] - spatialdata_version = spatialdata_attrs.get('spatialdata_software_version', '') + if "spatialdata_attrs" in root_attrs: + spatialdata_attrs = root_attrs["spatialdata_attrs"] + spatialdata_version = spatialdata_attrs.get("spatialdata_software_version", "") except Exception: pass @@ -5054,60 +5054,60 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N for file in zf.namelist(): # Extract elements based on directory structure # Expected structure: .zarr///... - if root_zarr and file.startswith(root_zarr + '/'): - rel_parts = file[len(root_zarr) + 1:].split('/') + if root_zarr and file.startswith(root_zarr + "/"): + rel_parts = file[len(root_zarr) + 1 :].split("/") if len(rel_parts) >= 2: element_type = rel_parts[0] element_name = rel_parts[1] # Skip metadata files and empty names - if element_name and not element_name.startswith('.'): - if element_type == 'images': + if element_name and not element_name.startswith("."): + if element_type == "images": images.add(element_name) - elif element_type == 'labels': + elif element_type == "labels": labels.add(element_name) - elif element_type == 'shapes': + elif element_type == "shapes": shapes.add(element_name) - elif element_type == 'points': + elif element_type == "points": points.add(element_name) - elif element_type == 'tables': + elif element_type == "tables": tables.add(element_name) # Extract coordinate system information from .zattrs files - if file.endswith('.zattrs'): + if file.endswith(".zattrs"): try: with zf.open(file) as f: attrs = json.load(f) # Check for coordinate transformations - if 'coordinateTransformations' in attrs: - transforms = attrs['coordinateTransformations'] + if "coordinateTransformations" in attrs: + transforms = attrs["coordinateTransformations"] if isinstance(transforms, list): for transform in transforms: - if isinstance(transform, dict) and 'output' in transform: - output = transform['output'] - if isinstance(output, dict) and 'name' in output: - coordinate_systems.add(output['name']) + if isinstance(transform, dict) and "output" in transform: + output = transform["output"] + if isinstance(output, dict) and "name" in output: + coordinate_systems.add(output["name"]) elif isinstance(output, str): coordinate_systems.add(output) # Check for multiscales (images/labels) - if 'multiscales' in attrs: - multiscales = attrs['multiscales'] + if "multiscales" in attrs: + multiscales = attrs["multiscales"] if isinstance(multiscales, list): for ms in multiscales: - if isinstance(ms, dict) and 'coordinateTransformations' in ms: - for ct in ms['coordinateTransformations']: - if isinstance(ct, dict) and 'output' in ct: - output = ct['output'] - if isinstance(output, dict) and 'name' in output: - coordinate_systems.add(output['name']) + if isinstance(ms, dict) and "coordinateTransformations" in ms: + for ct in ms["coordinateTransformations"]: + if isinstance(ct, dict) and "output" in ct: + output = ct["output"] + if isinstance(output, dict) and "name" in output: + coordinate_systems.add(output["name"]) elif isinstance(output, str): coordinate_systems.add(output) # Check for spatialdata transform attribute (legacy) - if 'transform' in attrs: - transform_dict = attrs['transform'] + if "transform" in attrs: + transform_dict = attrs["transform"] if isinstance(transform_dict, dict): coordinate_systems.update(transform_dict.keys()) except Exception: @@ -5127,12 +5127,12 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N if obs_index_path in zf.namelist(): with zf.open(obs_index_path) as f: obs_array = json.load(f) - n_obs = obs_array.get('shape', [None])[0] + n_obs = obs_array.get("shape", [None])[0] if var_index_path in zf.namelist(): with zf.open(var_index_path) as f: var_array = json.load(f) - n_vars = var_array.get('shape', [None])[0] + n_vars = var_array.get("shape", [None])[0] if n_obs is not None and n_vars is not None: table_shapes[table_name] = (n_obs, n_vars) @@ -5179,17 +5179,14 @@ def sniff(self, filename: str) -> bool: for file in zf.namelist(): # Look for .zattrs file at the root of the zarr store # The zarr store can be at root or one level deeper - parts = file.split('/') + parts = file.split("/") # Root level: .zattrs or one level deep: .zarr/.zattrs - if ( - file == '.zattrs' - or (len(parts) == 2 and parts[0].endswith('.zarr') and parts[1] == '.zattrs') - ): + if file == ".zattrs" or (len(parts) == 2 and parts[0].endswith(".zarr") and parts[1] == ".zattrs"): try: with zf.open(file) as f: attrs = json.load(f) # Check for SpatialData-specific metadata - if 'spatialdata_attrs' in attrs: + if "spatialdata_attrs" in attrs: return True except Exception: pass From 49bf354b20071c29420f2225e48e9b3627d840bd Mon Sep 17 00:00:00 2001 From: Amirhossein Naghsh Nilchi Date: Wed, 15 Oct 2025 23:04:26 +0200 Subject: [PATCH 20/20] change data type of zarr object to zarr.zip --- lib/galaxy/datatypes/binary.py | 8 +++++++- .../{OMEzarrImages.ome_zarr.zip => Images.zarr.zip} | Bin 2 files changed, 7 insertions(+), 1 deletion(-) rename lib/galaxy/datatypes/test/{OMEzarrImages.ome_zarr.zip => Images.zarr.zip} (100%) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 2d6e60951d15..88f98039b95c 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -490,6 +490,12 @@ def set_meta(self, dataset: DatasetProtocol, overwrite: bool = True, **kwd) -> N dataset.metadata.zarr_format = format_version def sniff(self, filename: str) -> bool: + """ + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname('Images.zarr.zip') + >>> CompressedZarrZipArchive().sniff(fname) + True + """ # Check if the zip file contains a zarr store. # In theory, the zarr store must be in the root of the zip file. # See: https://github.com/zarr-developers/zarr-python/issues/756#issuecomment-852134901 @@ -5163,7 +5169,7 @@ def sniff(self, filename: str) -> bool: >>> fname = get_test_fname('subsampled_visium.spatialdata.zip') >>> SpatialData().sniff(fname) True - >>> fname = get_test_fname('OMEzarrImages.ome_zarr.zip') + >>> fname = get_test_fname('Images.zarr.zip') >>> SpatialData().sniff(fname) False """ diff --git a/lib/galaxy/datatypes/test/OMEzarrImages.ome_zarr.zip b/lib/galaxy/datatypes/test/Images.zarr.zip similarity index 100% rename from lib/galaxy/datatypes/test/OMEzarrImages.ome_zarr.zip rename to lib/galaxy/datatypes/test/Images.zarr.zip