Quality control plugin for vessel segmentation in napari
Project description
VessQC: Uncertainty-Guided Curation for 3D Segmentation
Table of Contents
- Overview
- Input Data Requirements
- Installation and Launch
- Curation Workflow
- Save Behavior
- Citation
- Contributing
- License
- Issues
Overview
Overview This repository provides the implementation of VessQC, introduced in the manuscript "Bridging 3D Deep Learning and Uncertainty-Guided Curation for Analysis and High-Quality Segmentation Ground Truth", submitted to ISBI 2026.
VessQC is an open-source, human-in-the-loop tool for efficient, uncertainty-guided curation of large 3D volumetric segmentations, with a particular emphasis on complex vascular structures. By leveraging e.g. pixel-wise or topology-aware uncertainty estimation, VessQC prioritizes regions most likely to contain segmentation errors, thereby significantly improving error recall and reducing manual effort.
This napari plugin was generated using Cookiecutter and the @napari cookiecutter-napari-plugin template.
Input Data Requirements
VessQC requires three core input files per volume, all of which must be perfectly aligned and of identical spatial dimensions. Supported file formats include .tiff and .nii and all related variants (e.g., .ome.tif, .tif, .nii.gz).
- Raw Image Volume: The original 3D image data (e.g., lightsheet microscopy stack).
- Segmentation Mask: A binary segmentation mask of the target structures.
- Uncertainty Map: A voxel-wise uncertainty map highlighting regions of potential segmentation error.
File Naming Conventions
VessQC automatically detects corresponding files based on naming patterns. Each file type must follow the conventions below:
| File Type | Required Suffix | Example Filename |
|---|---|---|
| Raw Image Volume | _IM |
sample01_IM.tiff |
| Segmentation Mask | _segPred |
sample01_segPred.tiff |
| Uncertainty Map | _uncertainty |
sample01_uncertainty.tiff |
Ensure that all files belonging to the same sample share the same prefix (e.g.,
sample01) to allow automatic matching during loading.
Generating Uncertainty Maps
Uncertainty maps can be generated using models provided in our supplementary repository: VessQC-Supplementary
This repository includes both pixel-wise and topology-aware uncertainty pipelines. Please follow its documentation to produce the required uncertainty maps before running VessQC.
Installation and Launch
VessQC is a plugin that runs within the, open-source image viewer, napari. Please follow the steps below to install both napari and the VessQC plugin.
1. Install napari
VessQC requires a working installation of napari (Python 3.10-3.13 recommended). For the latest and most detailed instructions, always refer to the official napari installation guide.
Option A: Python/pip Installation
If you are familiar with Python environments, you can install napari via pip inside a clean virtual environment:
- Create a virtual environment:
conda create -y -n napari-env -c conda-forge python=3.11 conda activate napari-env
- Install napari:
python -m pip install 'napari[all]'
Option B: Bundled App
For a simple installation without managing Python environments, download the bundled application for your operating system (e.g., version 0.6.7):
- Linux:
napari-0.6.7-Linux-x86_64.sh - macOS (Intel):
napari-0.6.7-macOS-x86_64.pkg - macOS (Apple Silicon):
napari-0.6.7-macOS-arm64.pkg - Windows:
napari-0.6.7-Windows-x86_64.exe
Other artifacts can be found on the napari Releases page.
2. Install VessQC
Once napari is installed and your environment is active (for Option A), you can install VessQC via pip:
pip install VessQC
Or install the latest development version directly from GitHub:
pip install git+https://github.com/MMV-Lab/VessQC.git
Once installation is complete, launch napari and start VessQC through the Plugins menu.
Curation Workflow
The typical workflow involves loading the three required files and then iterating through the following steps:
-
Load Data: Use the File menu to load the Image, Segmentation, and Uncertainty Map.
-
Navigate to High-Uncertainty segments: VessQC shows a ranked list of segmented branches sorted by their associated uncertainty scores and allows direct selection of a branch from the list to automatically crop the area and center to that location
-
Review and Edit: Examine the 3D and 2D views at the high-uncertainty location. If an error is identified, use the provided annotation tools to correct the segmentation mask in the 2D viewer.
-
Iterate: Continue navigating to the next highest uncertain location and repeat the review and edit process.
-
Save: Once the curation process is complete, save the updated segmentation according to your chosen save mode (see below).
Save Behavior
VessQC offers two save modes to manage the progress and finalization of curated segmentations:
1. Temporary Save
- The folder structure remains unchanged.
- Newly curated files are saved with the suffix
_temp. Example:sample01_segPred_temp.tiff - When the same dataset is reloaded, VessQC automatically prioritizes the
_tempversion for continued editing.
2. Final Save
-
The finalized image, segmentation, uncertainty map, and curated segmentation are moved to a new
done/subdirectory. -
The moved items are removed from the main directory, ensuring they no longer appear in the list of available images during subsequent sessions.
-
This two-tier saving mechanism supports both iterative refinement and systematic completion tracking during large-scale curation projects.
Citation
If you use the VessQC tool or the methodologies, please cite the corresponding paper:
TODO
Contributing
Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.
License
Distributed under the terms of the BSD-3 license, "VessQC" is free and open source software
Issues
If you encounter any problems, please file an issue along with a detailed description.
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 vessqc-1.0.0.tar.gz.
File metadata
- Download URL: vessqc-1.0.0.tar.gz
- Upload date:
- Size: 61.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04e42481227d9170537a058a9f6dd09808fb68f158e96c3e5826d5db376f5926
|
|
| MD5 |
b8484940592fffe7751d8edbc5f86a96
|
|
| BLAKE2b-256 |
82f1fd69112a61f94bc9527d1e5e250a459d82ed4bc5a7c6be417fc2a5506092
|
Provenance
The following attestation bundles were made for vessqc-1.0.0.tar.gz:
Publisher:
test_and_deploy.yml on MMV-Lab/VessQC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vessqc-1.0.0.tar.gz -
Subject digest:
04e42481227d9170537a058a9f6dd09808fb68f158e96c3e5826d5db376f5926 - Sigstore transparency entry: 1654714233
- Sigstore integration time:
-
Permalink:
MMV-Lab/VessQC@b287a673cec646f7d71be751d3f01a88694283f8 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/MMV-Lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
test_and_deploy.yml@b287a673cec646f7d71be751d3f01a88694283f8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vessqc-1.0.0-py3-none-any.whl.
File metadata
- Download URL: vessqc-1.0.0-py3-none-any.whl
- Upload date:
- Size: 62.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dda6ed7093f7d7132783d0957cec474ab38c79335ba2e4af493daa90b72c3fdc
|
|
| MD5 |
1bf0478198e71b31d6c7dae5401df14b
|
|
| BLAKE2b-256 |
479a3b564b91c4611e6f657c2679ebbdc723d9f5ef55d7fba09bf1f806b41dc0
|
Provenance
The following attestation bundles were made for vessqc-1.0.0-py3-none-any.whl:
Publisher:
test_and_deploy.yml on MMV-Lab/VessQC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vessqc-1.0.0-py3-none-any.whl -
Subject digest:
dda6ed7093f7d7132783d0957cec474ab38c79335ba2e4af493daa90b72c3fdc - Sigstore transparency entry: 1654714499
- Sigstore integration time:
-
Permalink:
MMV-Lab/VessQC@b287a673cec646f7d71be751d3f01a88694283f8 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/MMV-Lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
test_and_deploy.yml@b287a673cec646f7d71be751d3f01a88694283f8 -
Trigger Event:
push
-
Statement type: