1+ from anndata import AnnData
2+ from spatialdata_io .converters .legacy_anndata import to_legacy_anndata
3+ from spatialdata import SpatialData , match_sdata_to_table
4+
5+ def test_deconcatenate (
6+ full_sdata : SpatialData ,
7+ by : str ,
8+ target_coordinate_system : str ,
9+ sdata_table_name : str = "table" ,
10+ region_key : str = "region" ,
11+ join : str = "right" ) -> AnnData :
12+ """
13+ From a `SpatialData` object containing multiple regions, subset to a single region and return as an AnnData object.
14+
15+ Parameters
16+ ----------
17+ full_sdata : SpatialData
18+ `SpatialData` object containing regions to deconcatenate.
19+ by : str
20+ Value in `region_key` to use for subsetting.
21+ target_coordinate_system : str
22+ Coordinate system to use to populate `AnnData` object.
23+ sdata_table_name : str, optional
24+ Name of the table in `full_sdata` to subset. Default is "table".
25+ region_key : str, optional
26+ Name of obs column to filter `full_sdata` on. Default is "region".
27+ join : str, optional
28+ Join method to use in `match_sdata_to_table`. Default is "right" to keep all rows in the table.
29+
30+ Returns
31+ -------
32+ AnnData
33+ An `AnnData` object containing a subset of `full_sdata` filtered according to `region_key == by`.
34+ """
35+
36+ sdata_table = full_sdata [sdata_table_name ]
37+
38+ #maybe add "table" parameter coupled with "table_name" to follow match_sdata_to_table structure?
39+ sdata_deconcat = match_sdata_to_table (full_sdata , table = sdata_table [sdata_table .obs [region_key ] == by ], table_name = "table_name_test" , how = join )
40+ adata = to_legacy_anndata (sdata_deconcat , coordinate_system = target_coordinate_system , table_name = "table_name_test" , include_images = False )
41+ #TODO: support for adding images to anndata object?
42+
43+ return adata
0 commit comments