WSI radiomics feature extraction from cell polygons (GeoJSON) and WSI slides
Project description
WSIRadiomics
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
printstatements - 🚫 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ba6dce223ffd05d00457ad23a82c8eaaa7c98a552f23099ff01f8f2e53605e2
|
|
| MD5 |
3a0b371e0face5cd5422dc840d5b5dcb
|
|
| BLAKE2b-256 |
c7adc70b6cac434d7bb9074b1144ef09db65465d4866018adf0cd8735d0494f0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35b3504cf1a21ebdeea4295e466c032261bd3109bece764343172fc94adcfc42
|
|
| MD5 |
47d3499e800558e8089da2d03368398a
|
|
| BLAKE2b-256 |
0971dd03c84ada095d640f8e61e76b5c503c5c8e509a53443f71c0db6e4360cd
|