diff --git a/CHANGELOG.md b/CHANGELOG.md index c4d77d2..30e2f15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## Version 0.0.4 +## Version 0.0.4-0.0.5 - Implement `to_anndata()` to convert from spatial feature experiment to AnnData diff --git a/src/spatialfeatureexperiment/sfe.py b/src/spatialfeatureexperiment/sfe.py index 90acfb1..ad979f1 100644 --- a/src/spatialfeatureexperiment/sfe.py +++ b/src/spatialfeatureexperiment/sfe.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, List, Optional, Union +from typing import Any, Dict, List, Optional, Union, Tuple from warnings import warn import biocutils as ut @@ -790,15 +790,26 @@ def set_column_data( ######>> AnnData interop <<##### ################################ - def to_anndata(self, include_alternative_experiments: bool = False) -> "anndata.AnnData": + def to_anndata( + self, include_alternative_experiments: bool = False + ) -> Tuple["anndata.AnnData", Dict[str, "anndata.AnnData"]]: """Transform :py:class:`~SpatialFeatureExperiment`-like into a :py:class:`~anndata.AnnData` representation. + This method extends the :py:meth:`~SpatialExperiment.to_anndata` method from the parent class + by adding SpatialFeatureExperiment-specific elements to the AnnData object's `uns["spatial"]` + dictionary. The additional elements include: + - `col_geometries` + - `row_geometries` + - `annot_geometries` + - `spatial_graphs` + - `unit` + Args: include_alternative_experiments: Whether to transform alternative experiments. Returns: - An ``AnnData`` representation of the experiment. + A tuple containing an ``AnnData`` object with spatial information and a list of alternative experiments. """ obj, alt_exps = super().to_anndata(include_alternative_experiments=include_alternative_experiments)