Skip to main content
WSI Tile Extraction Module. This module provides the TileExtractor class, which generates a grid of tile region specifications from a Whole Slide Image (WSI). It uses a binary tissue mask to filter out background tiles and supports resolution scaling via Level, Magnification, or MPP. The class follows a scikit-learn–style API:
  1. Configure — instantiate with a TileSpec, optional tissue mask, and threshold.
  2. Fit — call fit with an open WSIReader to bind the extractor to a specific slide.
  3. Extract — call extract (or the shortcut fit_extract) to compute tile positions. Results are stored in region_specs_ and also returned.
  4. Export — call save, to_csv, or to_json to persist the results. These methods use the fitted state so you do not need to pass the reader or regions again.
Typical usage example:

TileExtractor

Extracts a grid of tile regions from a WSI, filtered by a tissue mask. The extractor follows a scikit-learn–style lifecycle: Or more concisely via method chaining: Configuration attributes (set at init, do not change after fitting):
Attributes:
  • tile_spec TileSpec - Tile size, stride, resolution, and measurement unit.
  • mask np.ndarray | None - Binary tissue mask (non-zero = tissue).
  • mask_provider TissueMaskProvider | None - Provider that generates a per-slide mask during fit. When set, takes precedence over the static mask array.
  • mask_threshold float | None - Minimum mean mask value for a tile to be kept.
  • save_mask bool - Whether to include the per-tile mask array in each RegionMaskSpec. Fitted attributes (populated by fit / extract):
Attributes:
  • source_ WSIReader - The WSI reader bound by fit.
  • slide_name_ str - Stem of the slide filename (e.g. "slide_001").
  • region_specs_ List[RegionSpec] - Tile regions produced by extract. Empty until extraction is run.

fit

Binds the extractor to an open WSI reader. Stores the reader and slide name so that subsequent calls to extract, save, to_csv, and to_json do not need the reader passed again. If a mask_provider is set, its generate method is called here so that each slide receives its own tissue mask automatically. Following scikit-learn convention, fitted attributes are suffixed with an underscore (source_, slide_name_, region_specs_).
An open WSI reader for the target slide.
Returns:
  • TileExtractor - self, to allow method chaining (e.g. extractor.fit(reader).extract()).
Example:

extract

Extracts tile region specs from a WSI. If source is provided it is used directly (and the extractor is automatically fit to it). If omitted, the previously fitted source is used — call fit first in that case. The method operates in four stages:
  1. Reference-level setup — identifies the lowest-resolution pyramid level and computes the relative downsample between it and the target resolution.
  2. Mask scaling — resizes the tissue mask (or creates an all-tissue mask) to match the reference level’s bounded dimensions.
  3. Tile-spec scaling — converts tile size and stride from the target resolution (pixels or microns) into reference-level pixel coordinates.
  4. Grid walk — iterates over the reference-level grid, filters by mask_threshold, and maps surviving tile coordinates back to the target resolution.
In coordinate mode (coordinates set), the grid walk and tissue masking are skipped: one RegionSpec is emitted per supplied (x, y) position. Results are stored in region_specs_ and returned.
An open WSI reader. When given, the extractor is fitted to it automatically. When None (default), the extractor must already be fitted.
Returns:
  • List[RegionSpec] - Region specifications for every tile that passes the tissue-mask threshold (grid mode) or one per supplied coordinate (coordinate mode).
Raises:
  • RuntimeError - If no source is provided and fit has not been called.
  • ValueError - If tile_spec.unit is not MeasurementUnit.PIXELS or MeasurementUnit.UM.
  • BioptimusValueError - In coordinate mode, if any coordinate is negative or would place a tile outside the slide bounds.
Example:

fit_extract

Convenience method: fit + extract in one call.
An open WSI reader.
Returns:
  • List[RegionSpec] - Extracted tile region specifications.
Example:

to_csv

Saves region metadata to a CSV file named after the slide. The file is written as <output_dir>/<slide_name>.csv, reusing the slide_name_ captured during fit. Uses the internally stored region_specs_ by default. Pass regions explicitly to override. Each row contains the slide name, location, shape, resolution, and tissue ratio. Mask arrays are not included — use save to persist tile images instead.
Destination directory. Created (including parents) if it does not exist.
Region specifications to serialise. Defaults to region_specs_.
Returns:
  • Path - The resolved path of the written CSV file (e.g. output/slide_001.csv).
Raises:
  • RuntimeError - If the extractor has not been fitted or no regions are available.
Example:

to_json

Saves region metadata to a JSON file named after the slide. The file is written as <output_dir>/<slide_name>.json, reusing the slide_name_ captured during fit. Uses the internally stored region_specs_ by default. Pass regions explicitly to override. The output is a JSON array of objects, one per RegionSpec, containing the slide name, location, shape, resolution, and tissue ratio. Mask arrays are not included.
Destination directory. Created (including parents) if it does not exist.
Region specifications to serialise. Defaults to region_specs_.
Number of spaces for pretty-printing. Defaults to 2. Set to 0 or None for compact output.
Returns:
  • Path - The resolved path of the written JSON file (e.g. output/slide_001.json).
Raises:
  • RuntimeError - If the extractor has not been fitted or no regions are available.
Example:

save

Saves extracted tile images to disk using multi-threaded I/O. Uses the fitted source_ and internally stored region_specs_ by default. Pass regions explicitly to override the region list. Each tile is read from the WSI via WSIReader.read_region and written to output_dir with a metadata-rich filename: Where {res} encodes the resolution (e.g. l_0, mpp_0.25, mag_40.0x) and {ratio} is the tissue fraction rounded to two decimal places. Note: The tile coordinates produced by extract are absolute slide coordinates, so this method reads regions with bounded=False to avoid double-offsetting.
Directory where tile images will be written. Created (including parents) if it does not exist.
Region specifications to save. Defaults to region_specs_.
Maximum number of threads for parallel I/O. Defaults to 4.
Image file extension / format accepted by PIL.Image.save (e.g. "png", "jpeg", "tiff"). Defaults to "png".
Returns: None Raises:
  • RuntimeError - If the extractor has not been fitted, no regions are available, or one or more tiles fail to save.
Example: