Skip to main content

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

Project description

PathOmics

English | 中文

PathOmics 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 pathomics

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 pathomics

Or using mamba (faster):

mamba env create -f environment.yaml
mamba activate pathomics

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 pathomics.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

pathomics-0.3.0.tar.gz (27.5 kB view details)

Uploaded Source

Built Distribution

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

pathomics-0.3.0-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

Details for the file pathomics-0.3.0.tar.gz.

File metadata

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

File hashes

Hashes for pathomics-0.3.0.tar.gz
Algorithm Hash digest
SHA256 512f049073e8215e3a54aa39a5384390f9aab412f33440c59b33128f7cdce816
MD5 683a0a25c9ed6fafddafad4c8868d1a1
BLAKE2b-256 7e37c124213bff2bd5e1f405916c3d477668642d62b8c0fb960fbc4597255d70

See more details on using hashes here.

File details

Details for the file pathomics-0.3.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for pathomics-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0848ebecc889c7706a8b692251cae9a518aa12477bfcfdcca62446cf2ce49644
MD5 f2ce36a00f804e87d22a4673bde3b370
BLAKE2b-256 b568eec06c724ef2dc620907424aa83bab4d4e7c4d38f945d8e3d1f11844237e

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