Skip to main content

Crate slideforge

Crate slideforge 

Source
Expand description

Fast whole slide image (WSI) tile extraction, with tissue detection and stain normalization.

Whole slide images are gigapixel-scale microscopy scans used in digital pathology, stored as tiled, pyramidal (multi-resolution) TIFF files. Slideforge currently reads the Aperio SVS format.

Slide opens a single WSI and extracts tiles at a specific pyramid level or a target microns-per-pixel value, optionally dropping background-only tiles (Otsu thresholding) and normalizing stain color (Reinhard normalization) along the way. Extracted tiles can be written out as loose JPEGs, a .tfrecord file for ML training pipelines, and/or summarized in a PDF report. Dataset extends this across a whole directory of slides at once.

§Example

use slideforge::slide::{Slide, SlideOutputs};
use slideforge::ExtractionOptions;

let slide = Slide::open("slide.svs")?;

let options = ExtractionOptions::parallel()
    .with_target_mpp(0.5)
    .with_min_tissue_fraction(0.1)
    .with_stain_normalization();

let outputs = SlideOutputs::default().with_tile_dir("tiles/");

slide.extract(&options, &outputs, |tile| {
    println!("kept tile ({}, {})", tile.tile_x(), tile.tile_y());
    Ok(())
})?;

Re-exports§

pub use extraction::ExtractionOptions;
pub use extraction::Parallelism;
pub use filter::TissueMask;
pub use logging::ExtractionObserver;
pub use logging::ExtractionStats;
pub use logging::ProgressBar;
pub use logging::ReportCollector;
pub use logging::SimpleLogging;
pub use metadata::Dimensions;
pub use metadata::Level;
pub use metadata::Metadata;
pub use metadata::TileSize;
pub use report::ExtractionReport;
pub use stain::normalize_reinhard;

Modules§

backend
Vendor-specific WSI format parsers. Currently just Aperio SVS.
dataset
Batch tile extraction across a directory of slides.
decoder
Tile image decoding. Currently just JPEG, via JpegDecoder.
error
The crate’s single error type, WsiError.
extraction
Extraction options controlling how tiles are decoded and processed during extraction.
filter
Basic tissue filtering methods for tiles
logging
Modular logging/observability utilities.
metadata
Vendor-independent metadata representations for Whole Slide Images (WSIs).
report
Extraction report generation.
slide
Whole slide image (WSI) reading and tile extraction.
stain
Reinhard color/stain normalization for RGB tile images.
tfrecord
Writes tile records to the .tfrecord format used by TensorFlow
tile
Tile directory and tile reading functionality for tiled TIFF images.