Skip to main content

Pictologics

Pictologics logo

CI Docs PyPI Python Downloads License codecov Ruff Mypy

Pictologics is a high-performance, IBSI-compliant Python library for radiomic feature extraction from medical images (NIfTI, DICOM).

Documentation (User Guide, API, Benchmarks): https://martonkolossvary.github.io/pictologics/

Why Pictologics?

  • 🚀 High Performance: Uses numba for Just In Time (JIT) compilation, achieving significant speedups over other libraries (speedups between 15-300x compared to pyradiomics, see Benchmarks page for details).
  • ✅ IBSI Compliant: Implements standard algorithms verified against the IBSI digital and CT phantoms, and clinical datasets:
  • 🔧 Versatile: Provides utilities for DICOM parsing and common scientific image processing tasks. Natively supports common image formats (NIfTI, DICOM, DICOM-SEG, DICOM-SR).
  • ✨ User-Friendly: Pure Python implementation with a simple installation process and user-friendly pipeline module supporting easy feature extraction and analysis, ensuring a smooth experience from setup to analysis.
  • 🛠️ Actively Maintained: Continuously maintained and developed with the intention to provide robust latent radiomic features that can reliably describe morphological characteristics of diseases on radiological images.

Installation

Pictologics requires Python 3.12+.

pip install pictologics

Or install from source:

git clone https://github.com/martonkolossvary/pictologics.git
cd pictologics
pip install .

Quick Start

from pictologics import RadiomicsPipeline, format_results, save_results

# 1. Initialize the pipeline
pipeline = RadiomicsPipeline()

# 2. Run the "all_standard" configurations
results = pipeline.run(
    image="path/to/image.nii.gz",
    mask="path/to/mask.nii.gz",
    subject_id="Subject_001",
    config_names=["all_standard"]
)

# 3. Inject subject ID or other metadata directly into the row
row = format_results(
    results, 
    fmt="wide", 
    meta={"subject_id": "Subject_001", "group": "control"}
)

# 4. Save to CSV
save_results([row], "results.csv")

Performance Benchmarks

Benchmark Configuration

Comparisons between Pictologics and PyRadiomics (single-thread parity).

[!TIP] Detailed performance tables and extra feature (IVH, local intensity, GLDZM, etc.) measurements available in the Benchmarks Documentation.

Test Data Generation:

  • Texture: 3D correlated noise generated using Gaussian smoothing.
  • Mask: Blob-like structures generated via thresholded smooth noise with random holes.
  • Voxel Distribution: Mean=486.04, Std=90.24, Min=0.00, Max=1000.00.

HARDWARE USED FOR CALCULATIONS

  • Hardware: Apple M4 Pro, 14 cores, 48 GB
  • OS: macOS 26.5.2 (arm64)
  • Python: 3.12.10
  • Core deps: pictologics 0.5.0, numpy 2.2.6, scipy 1.17.0, numba 0.62.1, pandas 2.3.3, matplotlib 3.10.7
  • BLAS/LAPACK: Apple Accelerate (from numpy.show_config())

Note: the benchmark script explicitly calls warmup_jit() before timing to avoid including Numba compilation overhead in the measured runtimes. Timing and memory measurement are separated — tracemalloc is NOT active during timing to avoid biasing the comparison (its per-allocation hooks penalise pure-Python code more than JIT/C code). All calculations are repeated 5 times and the mean runtime is reported; peak memory is measured once separately.

Intensity

Execution Time (Log-Log) Speedup
Intensity time Intensity speedup

Morphology

Execution Time (Log-Log) Speedup
Morphology time Morphology speedup

Texture

Execution Time (Log-Log) Speedup
Texture time Texture speedup

Filters

Execution Time (Log-Log) Speedup
Filters time Filters speedup

Quality & Compliance

IBSI Compliance: IBSI 1 Features | IBSI 2 Phase 1 Filters | Phase 2 Features | Phase 3 Reproducibility

Code Health

  • Test Coverage: 100.00%
  • Mypy Errors: 0
  • Ruff Issues: 0

See Quality Report for full details.

Citation

Citation information will be added/updated.

License

Apache-2.0

Download files

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

Source Distribution

pictologics-0.5.0.tar.gz (164.7 kB view details)

Uploaded Source

Built Distribution

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

pictologics-0.5.0-py3-none-any.whl (182.1 kB view details)

Uploaded Python 3

File details

Details for the file pictologics-0.5.0.tar.gz.

File metadata

  • Download URL: pictologics-0.5.0.tar.gz
  • Upload date:
  • Size: 164.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pictologics-0.5.0.tar.gz
Algorithm Hash digest
SHA256 622febdef66611fc965b5f2a3d0e3e40b42390c9000c6e4e2790238f0a17b674
MD5 b0961b252516d10516e76e1e60506842
BLAKE2b-256 e02a7978aa43ee3bc4140fc8ac9150c683224730442af05d6121b97720a5aa9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pictologics-0.5.0.tar.gz:

Publisher: publish-pypi.yml on martonkolossvary/pictologics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pictologics-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: pictologics-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 182.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pictologics-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0d611544d43e50b9c376a7bbb495e34cfa31b50d6946a15d720af855d886b3d
MD5 c5b343b6c488b66fb767fe28c54b1e18
BLAKE2b-256 5a3a06b35f6624eb588a3cf0e19c5332abea28624a193d7d458ed6dc6a3847fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pictologics-0.5.0-py3-none-any.whl:

Publisher: publish-pypi.yml on martonkolossvary/pictologics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.5.1

2 files

This release

0.5.0 This release

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page