ComposedImagingDataset#

class spora_io.datasets.compose.ComposedImagingDataset(name, modalities, tile_size, resolution, path=None, verbose=True, load_cell_metadata=False, tile_strategy=None, split=None, *, modality_kwargs=None)[source]#

Bases: object

Compose multiple unimodal datasets (HE, Multiplex, etc.) into a single handle.

  • Uniform interface to fetch tissues/tiles per modality.

  • Ensures consistent tile strategy across modalities by construction.

  • Extensible via modality_kwargs to pass per-modality constructor arguments.

Notes on behavior: - get_tissue_ids() returns the union of tissue IDs across all instantiated modalities. - get_modalities_of_tissue(tissue_id) lists which modalities contain that tissue ID. - Marker-specific helpers (indices/metadata) are forwarded to each unimodal dataset when available.

Parameters:
  • name (str)

  • modalities (Iterable[ModKey])

  • tile_size (int)

  • resolution (float | str)

  • path (Union[str, Path] | None)

  • verbose (bool)

  • load_cell_metadata (bool)

  • tile_strategy (Optional[str])

  • split (Optional[str])

  • modality_kwargs (Optional[Mapping[str, Mapping[str, Any]]])

get_dataset(modality)[source]#

Get the unimodal dataset instance for a given modality key.

Parameters:

modality (ModKey) – The modality key (string or object with ‘name’ attribute) to retrieve the dataset for.

Returns:

Any: The unimodal dataset instance corresponding to the modality key.

Raises:

KeyError – If the modality key is not part of this composed dataset.

get_available_modalities()[source]#

Get the list of available modalities in this composed dataset.

Returns:

List[str]: A list of modality keys representing the available modalities.

get_tissue_ids(modality=None)[source]#

Get the list of tissue IDs available in the dataset. If a modality is specified, return only tissue IDs for that modality.

Parameters:

modality (Optional[ModKey]) – The modality key to filter tissue IDs by. If None, returns tissue IDs across all modalities.

Returns:

List[str]: A list of tissue IDs available in the dataset (filtered by modality if specified).

get_modalities_of_tissue(tissue_id)[source]#

Get the list of modalities available for a given tissue ID.

Parameters:

tissue_id (str) – The tissue ID to query modalities for.

Returns:

List[str]: A list of modality keys representing the modalities available for the given tissue ID.

get_unimodal_tissue(tissue_id, modality, kind='uniprot_filtered', preprocess=True, image_mode='CHW')[source]#

Get the tissue image for a given tissue ID and modality, with options for kind of image and preprocessing.

Parameters:
  • tissue_id (str) – The tissue ID to retrieve.

  • modality (ModKey) – The modality key to specify which unimodal dataset to query.

  • kind (str) – The kind of tissue image to retrieve. Default is “uniprot_filtered”. Valid options are “complete”, “qc_filtered”, and “uniprot_filtered”.

  • preprocess (bool) – If True, preprocess the image (normalize). Default is True.

  • image_mode (str) – The desired image mode of the returned tissue image. Valid options are “CHW” and “HWC”. Default is “CHW”.

Returns:

Tissue: The tissue image as returned by the unimodal dataset’s get_tissue method.

get_unimodal_tissue_mask(tissue_id, modality)[source]#

Get the quality control mask for a given tissue ID and modality.

Parameters:
  • tissue_id (str) – The tissue ID to retrieve the mask for.

  • modality (ModKey) – The modality key to specify which unimodal dataset to query.

Returns:

np.ndarray: The quality control mask as returned by the unimodal dataset’s get_tissue_mask method.

get_unimodal_tissue_size(tissue_id, modality)[source]#

Get the tissue size (C,H,W) for a given tissue ID and modality.

Parameters:
  • tissue_id (str) – The tissue ID to retrieve the size for.

  • modality (ModKey) – The modality key to specify which unimodal dataset to query.

Returns:

Tuple[int, int, int]: The tissue size (C,H,W) as returned by the unimodal dataset’s _get_tissue_size method.

get_unimodal_tile(tissue_id, tile_id, modality, kind='uniprot_filtered', preprocess=True, image_mode='CHW')[source]#

Get a specific tile for a given tissue ID and modality.

Parameters:
  • tissue_id (str) – The tissue ID to retrieve the tile for.

  • tile_id (int) – The tile ID to retrieve.

  • modality (ModKey) – The modality key to specify which unimodal dataset to query.

  • kind (str) – The kind of image to retrieve. Valid options depend on modality.

  • preprocess (bool) – If True, preprocess the tile before returning.

  • image_mode (str) – The returned image layout, usually “CHW” or “HWC”.

Returns:

Tissue: The tile image as returned by the unimodal dataset’s get_tile method.

get_composed_tissue(tissue_id, kind='uniprot_filtered', preprocess=True, image_mode='CHW')[source]#

Get a composed tissue sample for a given tissue ID, which includes all available modalities for that tissue.

Parameters:
  • tissue_id (str) – The tissue ID to retrieve.

  • kind (str) – The kind of tissue image to retrieve. Default is “uniprot_filtered”. Valid options are “complete”, “qc_filtered”, and “uniprot_filtered”.

  • preprocess (bool) – If True, preprocess the images (normalize). Default is True.

  • image_mode (str) – The desired image mode of the returned tissue images. Valid options are “CHW” and “HWC”. Default is “CHW”.

Returns:

ComposedTissue: A ComposedTissue instance containing the tissue ID and a dictionary of modality-specific Tissue instances.

get_composed_tile(tissue_id, tile_id, kind='uniprot_filtered', preprocess=True, image_mode='CHW')[source]#

Get a composed tile for a given tissue ID and tile ID, which includes all available modalities for that tissue.

Parameters:
  • tissue_id (str) – The tissue ID to retrieve.

  • tile_id (int) – The tile ID to retrieve.

  • kind (str) – The kind of tile image to retrieve. Default is “uniprot_filtered”. Valid options are “complete”, “qc_filtered”, and “uniprot_filtered”.

  • preprocess (bool) – If True, preprocess the images (normalize). Default is True.

  • image_mode (str) – The desired image mode of the returned tile images. Valid options are “CHW” and “HWC”. Default is “CHW”.

Returns:

ComposedTissue: A ComposedTissue instance containing the tissue ID and a dictionary of modality-specific tile images.

get_composed_tissue_by_patient(patient_id, kind='uniprot_filtered', preprocess=True, image_mode='CHW')[source]#

Get composed tissue samples for all tissues associated with a given patient ID.

Parameters:
  • patient_id (str) – The patient ID to retrieve tissues for.

  • kind (str) – The kind of tissue image to retrieve. Default is “uniprot_filtered”. Valid options are “complete”, “qc_filtered”, and “uniprot_filtered”.

  • preprocess (bool) – If True, preprocess the images (normalize). Default is True.

  • image_mode (str) – The desired image mode of the returned tissue images. Valid options are “CHW” and “HWC”. Default is “CHW”.

Returns:

Sequence[ComposedTissue]: A list of ComposedTissue instances for each tissue associated with the patient.