Skip to main content
LION

LION

Fully automated tumor segmentation for FDG and PSMA PET scans

PyPI DOI Python License Downloads Monthly

Quick Start

python -m venv lion-env
source lion-env/bin/activate        # macOS / Linux
lion-env\Scripts\activate           # Windows

pip install lionz
lionz -d /path/to/data -m fdg

That's it. Models download automatically on first run.

Requirements

  • Python 3.10+
  • 32GB RAM recommended
  • GPU optional (NVIDIA CUDA or Apple Silicon MPS) - CPU works but slower

Installation

We recommend installing LION in a virtual environment to avoid dependency conflicts.

uv is a fast Python package manager that handles virtual environments automatically.

# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh   # macOS/Linux
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"  # Windows

Install from PyPI:

uv venv lion-env
# Activate the environment
source lion-env/bin/activate        # macOS / Linux
lion-env\Scripts\activate           # Windows
uv pip install lionz

Install from source:

git clone https://github.com/ENHANCE-PET/LION.git
cd LION
uv sync

Using pip + venv

python -m venv lion-env
# Activate the environment
source lion-env/bin/activate        # macOS / Linux
lion-env\Scripts\activate           # Windows
python -m pip install lionz

Docker with NVIDIA GPUs

The LION Docker image targets CUDA 12.4 and requires NVIDIA driver 550.54.14 or newer on Linux. The host supplies the NVIDIA driver; it is not installed inside the container.

docker run --rm --gpus all --shm-size=2g \
  -v /path/to/data:/shared \
  -v lionz-models:/usr/local/models \
  lalithshiyam/lionz:1.0.5 \
  -d /shared -m psma

LION stores downloaded models under /usr/local/models/nnunet_trained_models, so the model volume persists across container runs.

On a Slurm cluster with Singularity:

singularity exec --nv \
  --bind /path/to/data:/shared \
  --bind /path/to/models:/usr/local/models \
  docker://lalithshiyam/lionz:1.0.5 \
  lionz -d /shared -m psma

Input Data Structure

LION runs on PET input only. CT is not required for the current FDG and PSMA models.

data/
├── patient_001/
│   └── PT_scan.nii.gz      # PET file with PT_ or PT- prefix
├── patient_002/
│   └── PT_scan.nii.gz
└── patient_003/
    └── PT_scan.nii.gz

Rules:

  • One folder per subject
  • PET files must start with PT_ or PT-
  • CT files are not needed and are ignored by the current segmentation models
  • Supports .nii and .nii.gz
  • PET DICOM folders are also supported; modality is auto-detected from tags

Messy Data?

Use the lion-mcp server with Claude Code or Codex to organize chaotic DICOM/NIfTI dumps. See lion-mcp/README.md.

CLI Usage

# Basic
lionz -d /path/to/data -m fdg

# With SUV threshold
lionz -d /path/to/data -m fdg -t 2.5

# Generate MIP preview
lionz -d /path/to/data -m fdg -g

# Parallel processing (multiple subjects)
lionz -d /path/to/data -m fdg -p 4

# All options
lionz -d /path/to/data -m fdg -t 2.5 -g -p 4

Options:

Flag Description
-d Input directory containing subject folders
-m Model name: fdg or psma
-t SUV threshold (requires SUV-calibrated input)
-g Generate rotational MIP GIF
-p Number of parallel jobs
-h Show help

Library Usage

import lionz

# From file path
result = lionz.lion('/path/to/PT_scan.nii.gz', 'fdg')

# From SimpleITK image
import SimpleITK as sitk
img = sitk.ReadImage('/path/to/PT_scan.nii.gz')
seg = lionz.lion(img, 'fdg')  # Returns SimpleITK.Image

# From numpy array
import numpy as np
array = np.load('pet_data.npy')
spacing = (2.0, 2.0, 2.0)
seg = lionz.lion((array, spacing), 'fdg')  # Returns np.ndarray

# With options
result = lionz.lion(
    '/path/to/PT_scan.nii.gz',
    'fdg',
    output_dir='/path/to/output',
    accelerator='mps',  # 'cpu', 'cuda', or 'mps'
    threshold=2.5
)

Important: Wrap in if __name__ == '__main__': to avoid multiprocessing issues:

import lionz

if __name__ == '__main__':
    lionz.lion('/path/to/PT_scan.nii.gz', 'fdg')

Models

Tracer Model Training Data Status
FDG fdg 5,235 patients Stable
PSMA psma 2,046 patients Stable

Output Structure

patient_001/
├── PT_scan.nii.gz                    # Original PET input
└── lionz-2024-01-15-10-30-00/
    ├── segmentations/
    │   ├── PT_scan_tumor_seg.nii.gz  # Tumor mask
    │   └── patient_001_rotational_mip.gif  # If -g flag used
    └── stats/
        └── patient_001_metrics.csv   # Volume, SUV metrics

Platform Support

Platform Accelerator Status
Linux CUDA Fully supported
Linux CPU Supported (slower)
macOS (Apple Silicon) MPS Fully supported
macOS (Intel) CPU Supported (slower)
Windows CUDA Fully supported
Windows CPU Supported (slower)

For AI Agents

LION provides an MCP server for organizing messy medical imaging data. Install and configure:

cd lion-mcp && pip install -e .

Add to .mcp.json:

{
  "lion-mcp": {
    "type": "stdio",
    "command": ".venv/bin/lion-mcp"
  }
}

Available MCP tools:

  • scan_directory - Scan for DICOM/NIfTI files, extract metadata
  • read_dicom_header - Read full DICOM tags
  • organize_for_lion - Reorganize files into LION structure
  • validate_structure - Check if directory is LION-ready
  • get_lion_requirements - Get structure documentation

Telemetry

LION collects anonymous usage statistics to help us understand how the tool is used and prioritize development. This is completely optional.

What we collect: version, model used, platform, accelerator type, number of subjects, success/failure

What we DON'T collect: file paths, patient data, IP addresses, any identifiable information

Opt-out:

export LIONZ_TELEMETRY=0

Citation

DOI: 10.5281/zenodo.12626789

License

Apache 2.0.

Contributors

Part of the ENHANCE.PET initiative.

Metadata

Release files for lionz 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lionz 1.0.5
File Size Uploaded
lionz-1.0.5.tar.gz 45.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lionz 1.0.5
File Interpreter ABI Platform
lionz-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 92.1 kB

Release files / lionz-1.0.5.tar.gz

Download URL lionz-1.0.5.tar.gz
Size 45.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b57a5b9b374ad7a474a1be586e1e676f83855e27e3653848a329dade55da4ef6
BLAKE2b-256 checksum
How to use checksums
d8eabddd737bfb7007cca92528d3c41ef17e78e09b34aeb2a5df3699930ad2ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / lionz-1.0.5-py3-none-any.whl

Download URL lionz-1.0.5-py3-none-any.whl
Size 46.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ae4261af654b64cd73de0ca1e4ab1f7b24b5ad2bdc508151e5953cc7ef58ced5
BLAKE2b-256 checksum
How to use checksums
d55e37e4f98f177a89dae1b8405ee00a34493a77df3323c3eddc239e0bace20f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

1.0.7

2 release files

1.0.6

2 release files

This release

1.0.5 This release

2 release files

1.0.4

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.1

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.3

2 release files

0.15.2

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.11.0

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9

2 release files

0.8

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release 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