Source code for spatialmeta.util._classes

import scanpy as sc
from anndata import AnnData

[docs]class AnnDataSM(AnnData): """ Anndata object for Spatial Metabolomics data """ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._spatialtk_type = 'AnnDataSM' @classmethod def from_anndata(cls, adata, *args, **kwargs): if not isinstance(adata, sc.AnnData): raise ValueError("Input must be a scanpy AnnData object") return cls(adata, *args, **kwargs) def _gen_repr(self, n_obs, n_vars) -> str: if self.isbacked: backed_at = f" backed at {str(self.filename)!r}" else: backed_at = "" descr = f"Spatial Metabolomics AnnData object with n_obs × n_vars = {n_obs} × {n_vars}{backed_at}" for attr in [ "obs", "var", "uns", "obsm", "varm", "layers", "obsp", "varp", ]: keys = getattr(self, attr).keys() if len(keys) > 0: descr += f"\n {attr}: {str(list(keys))[1:-1]}" return descr def __repr__(self) -> str: if self.is_view: return "View of " + self._gen_repr(self.n_obs, self.n_vars) else: return self._gen_repr(self.n_obs, self.n_vars)
[docs]class AnnDataST(AnnData): """ Anndata object for Spatial Transcriptomics data """ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._spatialtk_type = 'AnnDataST' @classmethod def from_anndata(cls, adata, *args, **kwargs): if not isinstance(adata, sc.AnnData): raise ValueError("Input must be a scanpy AnnData object") return cls(adata, *args, **kwargs) def _gen_repr(self, n_obs, n_vars) -> str: if self.isbacked: backed_at = f" backed at {str(self.filename)!r}" else: backed_at = "" descr = f"Spatial Transcriptomics AnnData object with n_obs × n_vars = {n_obs} × {n_vars}{backed_at}" for attr in [ "obs", "var", "uns", "obsm", "varm", "layers", "obsp", "varp", ]: keys = getattr(self, attr).keys() if len(keys) > 0: descr += f"\n {attr}: {str(list(keys))[1:-1]}" return descr def __repr__(self) -> str: if self.is_view: return "View of " + self._gen_repr(self.n_obs, self.n_vars) else: return self._gen_repr(self.n_obs, self.n_vars)
[docs]class AnnDataJointSMST(AnnData): """ Anndata object for Joint Spatial Metabolomics and Transcriptomics data """ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._spatialtk_type = 'AnnDataJointSTSM' def _gen_repr(self, n_obs, n_vars) -> str: if self.isbacked: backed_at = f" backed at {str(self.filename)!r}" else: backed_at = "" descr = f"Joint Spatial Transcriptomics and Metabolomics\n" + "AnnData object with n_obs × n_vars = {n_obs} × {n_vars}{backed_at}" for attr in [ "obs", "var", "uns", "obsm", "varm", "layers", "obsp", "varp", ]: keys = getattr(self, attr).keys() if len(keys) > 0: descr += f"\n {attr}: {str(list(keys))[1:-1]}" return descr def __repr__(self) -> str: if self.is_view: return "View of " + self._gen_repr(self.n_obs, self.n_vars) else: return self._gen_repr(self.n_obs, self.n_vars)