Skip to main content
Multi-modal dataset for joint histology and omics inference. Wraps a single WSI together with optional bulk RNA data, providing lazy patch access and a PyTorch-compatible __getitem__ interface.

MultiModalData

Wraps a single Whole Slide Image with its extraction plan. On construction the slide is opened via WSI and the extractor is fitted + executed to produce a list of RegionSpec. Each spec describes one tile/patch location. Patches are read lazily via get_patch.
Path to the WSI file (any format supported by WSI).
Optional path to bulk RNA CSV.
A configured TileExtractor. A fresh fit_extract is called for every slide so the same extractor object can be reused across slides.
Optional callable applied to the raw np.ndarray patch before it is returned. Receives (H, W, C) uint8 and should return a transformed array (or tensor).
Attributes:
  • path Path - Resolved slide path.
  • bulk_rna_path Path | None - Resolved path to bulk RNA CSV.
  • reader WSIReader - Open reader for the slide.
  • specs List[RegionSpec] - Extraction plan (one entry per patch).
  • slide_name str - Stem of the slide filename.
Example:

__len__

Returns the number of patches in the extraction plan. Returns:
  • int - Total patch count for this slide.
Example:

get_patch

Reads a single patch from the slide.
Index into specs.
Returns: A tuple (patch, metadata) where patch is an np.ndarray of shape (H, W, C) (or whatever the transform returns), and metadata is a dict with at minimum source, x, y, width, height, slide_name, and tissue_ratio. Raises:
  • IndexError - If idx is out of range.

close

Closes the underlying WSI reader and releases resources. Example: