Skip to main content

WSI radiomics feature extraction from cell polygons (GeoJSON) and WSI slides

Project description

WSIRadiomics

English | 中文

WSIRadiomics is a cell-level → WSI-level radiomics feature extraction toolkit for Whole Slide Images (WSI).

It supports starting from cell instance segmentation results (GeoJSON) to compute cell-level features and further aggregate them into WSI-level features, making it suitable for computational pathology, digital pathology, and multimodal research.

✨ Features

  • 🧬 Cell-level → WSI-level feature computation pipeline
  • 🧠 Supports basic radiomics features such as first-order and shape
  • 🧩 Flexible YAML-based parameter configuration
  • 🏷 Supports aggregation by cell type (cell_type)
  • 📦 Modular design, easy to extend and customize
  • 📝 Uses Python logging, no print statements
  • 🚫 Core APIs do not write files, output is fully controlled by the user

📦 Installation

Method 1: Install via PyPI (Recommended)

pip install wsiradiomics

Suitable for direct usage, server environments, and virtual environments.

⚠️ Important notice (WSI dependency)
The OpenSlide system library must be installed manually:

# Windows / Linux (conda)
conda install -c conda-forge openslide openslide-python

Method 2: Install via Conda / Mamba Environment (Recommended for research)

The project provides a complete environment file:

conda env create -f environment.yaml
conda activate wsiradiomics

Or using mamba (faster):

mamba env create -f environment.yaml
mamba activate wsiradiomics

This method is especially suitable for WSI / OpenSlide / Linux server environments.

🚀 Quick Start

It is recommended to first refer to the example code and configuration files in the examples/ directory.

Example files overview

examples/
├── example_file.csv    # CSV example for batch processing
├── extract_from_pandas.py # Batch feature extraction example
└── params.yaml       # Parameter configuration example

1️⃣ Single WSI feature extraction (API usage)

from wsiradiomics.extractor import extract

res = extract(
    svs_path="example.svs",
    geojson_path="cells.geojson",
    params_path="params.yaml",
)

wsi_features = res["wsi_features"]

2️⃣ Batch processing (CSV-driven, recommended)

CSV example (see examples/example_file.csv):

wsi_path,mask_path
/path/to/wsi_001.svs,/path/to/wsi_001_cells.geojson
/path/to/wsi_002.svs,/path/to/wsi_002_cells.geojson

Run the example script:

python examples/extract_from_pandas.py \
  --input_csv examples/example_file.csv \
  --params examples/params.yaml \
  --out_dir result/

Output results:

result/
├── wsi_features.csv
└── run_wsi_feature_extract.log

📄 License

MIT License

📬 Contact

Feel free to submit issues or suggestions via GitHub Issues

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wsiradiomics-0.1.4.tar.gz (27.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wsiradiomics-0.1.4-py3-none-any.whl (33.3 kB view details)

Uploaded Python 3

File details

Details for the file wsiradiomics-0.1.4.tar.gz.

File metadata

  • Download URL: wsiradiomics-0.1.4.tar.gz
  • Upload date:
  • Size: 27.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.10

File hashes

Hashes for wsiradiomics-0.1.4.tar.gz
Algorithm Hash digest
SHA256 3ba6dce223ffd05d00457ad23a82c8eaaa7c98a552f23099ff01f8f2e53605e2
MD5 3a0b371e0face5cd5422dc840d5b5dcb
BLAKE2b-256 c7adc70b6cac434d7bb9074b1144ef09db65465d4866018adf0cd8735d0494f0

See more details on using hashes here.

File details

Details for the file wsiradiomics-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: wsiradiomics-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 33.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.10

File hashes

Hashes for wsiradiomics-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 35b3504cf1a21ebdeea4295e466c032261bd3109bece764343172fc94adcfc42
MD5 47d3499e800558e8089da2d03368398a
BLAKE2b-256 0971dd03c84ada095d640f8e61e76b5c503c5c8e509a53443f71c0db6e4360cd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page