From 62b45e611b76394da9b81539315a489db1f1d144 Mon Sep 17 00:00:00 2001 From: gboscagli Date: Thu, 5 Mar 2026 14:56:34 +0100 Subject: [PATCH 1/2] adding test_deconcatenate.py --- tests/test_deconcatenate.py | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tests/test_deconcatenate.py diff --git a/tests/test_deconcatenate.py b/tests/test_deconcatenate.py new file mode 100644 index 00000000..bb6bbb51 --- /dev/null +++ b/tests/test_deconcatenate.py @@ -0,0 +1,43 @@ +from anndata import AnnData +from spatialdata_io.converters.legacy_anndata import to_legacy_anndata +from spatialdata import SpatialData, match_sdata_to_table + +def test_deconcatenate( + full_sdata: SpatialData, + by: str, + target_coordinate_system: str, + sdata_table_name: str = "table", + region_key: str = "region", + join: str = "right") -> AnnData: + """ + From a `SpatialData` object containing multiple regions, subset to a single region and return as an AnnData object. + + Parameters + ---------- + full_sdata : SpatialData + `SpatialData` object containing regions to deconcatenate. + by : str + Value in `region_key` to use for subsetting. + target_coordinate_system : str + Coordinate system to use to populate `AnnData` object. + sdata_table_name : str, optional + Name of the table in `full_sdata` to subset. Default is "table". + region_key : str, optional + Name of obs column to filter `full_sdata` on. Default is "region". + join : str, optional + Join method to use in `match_sdata_to_table`. Default is "right" to keep all rows in the table. + + Returns + ------- + AnnData + An `AnnData` object containing a subset of `full_sdata` filtered according to `region_key == by`. + """ + + sdata_table = full_sdata[sdata_table_name] + + #maybe add "table" parameter coupled with "table_name" to follow match_sdata_to_table structure? + sdata_deconcat = match_sdata_to_table(full_sdata, table=sdata_table[sdata_table.obs[region_key] == by], table_name="table_name_test", how=join) + adata = to_legacy_anndata(sdata_deconcat, coordinate_system=target_coordinate_system, table_name="table_name_test", include_images=False) + #TODO: support for adding images to anndata object? + + return adata \ No newline at end of file From 3a77cdc5ab34ad85091e961b3bd95b034021f647 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 14:18:27 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/test_deconcatenate.py | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/tests/test_deconcatenate.py b/tests/test_deconcatenate.py index bb6bbb51..b1129ff9 100644 --- a/tests/test_deconcatenate.py +++ b/tests/test_deconcatenate.py @@ -1,16 +1,18 @@ from anndata import AnnData -from spatialdata_io.converters.legacy_anndata import to_legacy_anndata from spatialdata import SpatialData, match_sdata_to_table +from spatialdata_io.converters.legacy_anndata import to_legacy_anndata + + def test_deconcatenate( - full_sdata: SpatialData, - by: str, - target_coordinate_system: str, - sdata_table_name: str = "table", - region_key: str = "region", - join: str = "right") -> AnnData: - """ - From a `SpatialData` object containing multiple regions, subset to a single region and return as an AnnData object. + full_sdata: SpatialData, + by: str, + target_coordinate_system: str, + sdata_table_name: str = "table", + region_key: str = "region", + join: str = "right", +) -> AnnData: + """From a `SpatialData` object containing multiple regions, subset to a single region and return as an AnnData object. Parameters ---------- @@ -32,12 +34,15 @@ def test_deconcatenate( AnnData An `AnnData` object containing a subset of `full_sdata` filtered according to `region_key == by`. """ - sdata_table = full_sdata[sdata_table_name] - #maybe add "table" parameter coupled with "table_name" to follow match_sdata_to_table structure? - sdata_deconcat = match_sdata_to_table(full_sdata, table=sdata_table[sdata_table.obs[region_key] == by], table_name="table_name_test", how=join) - adata = to_legacy_anndata(sdata_deconcat, coordinate_system=target_coordinate_system, table_name="table_name_test", include_images=False) - #TODO: support for adding images to anndata object? + # maybe add "table" parameter coupled with "table_name" to follow match_sdata_to_table structure? + sdata_deconcat = match_sdata_to_table( + full_sdata, table=sdata_table[sdata_table.obs[region_key] == by], table_name="table_name_test", how=join + ) + adata = to_legacy_anndata( + sdata_deconcat, coordinate_system=target_coordinate_system, table_name="table_name_test", include_images=False + ) + # TODO: support for adding images to anndata object? - return adata \ No newline at end of file + return adata