Napari plugin for uncertainty-based quality control of 3D vessel segmentations
Project description
VessQC
A napari plugin for uncertainty-based quality control and manual correction of 3D blood vessel segmentations.
Overview
VessQC is a plugin for the image viewer napari. It is designed for the inspection and correction of 3D vessel segmentations generated by machine-learning pipelines.
The plugin combines:
- visualization of image, segmentation, and uncertainty data,
- automatic grouping of uncertain regions into segments,
- interactive review of suspicious regions,
- manual correction of segmentation masks,
- export of corrected segmentation results.
The plugin is particularly useful for workflows in which:
- a neural network generates vessel segmentations,
- uncertainty maps are available,
- only uncertain regions should be reviewed manually.
Screenshot
Installation
Install the released version from PyPI:
pip install VessQC
Install the latest development version from GitHub:
pip install git+https://github.com/MMV-Lab/VessQC.git
Input Data
VessQC expects three volumetric datasets:
- Original image data
- Predicted vessel segmentation (
*_segPred) - Uncertainty map (
*_uncertainty)
Supported file formats:
- TIFF (
.tif,.tiff) - NIfTI (
.nii,.nii.gz)
Example:
Sample_IM.tif
Sample_segPred.tif
Sample_uncertainty.tif
Usage
1. Load the image
Press:
Load image
and select the original 3D image.
2. Load segmentation and uncertainty data
Press:
Read segPred file
The plugin automatically searches for matching:
*_segPred*_uncertainty
files in the same directory.
The uncertainty map is segmented into connected uncertain regions.
3. Review uncertain segments
Press:
Show list of segments
A separate window displays all detected uncertain regions.
For each segment the following information is shown:
- segment name,
- uncertainty value,
- voxel count,
- processing state.
4. Inspect a segment
Click a segment button to:
- zoom into the corresponding region,
- crop the surrounding image data,
- display the local segmentation,
- center the viewer on the selected segment.
5. Correct the segmentation
Use the standard napari label editing tools to:
- add missing vessel voxels,
- remove incorrect voxels,
- refine the segmentation mask.
After correction press:
done
The modifications are transferred back into:
- the segmentation volume,
- the uncertainty map,
- the internal label representation.
6. Save the result
Press:
Save final result
The corrected segmentation is written to disk as:
*_segPred_New.tif
Optionally the corrected uncertainty map can also be saved.
Intermediate Data
VessQC can store intermediate processing results in the temporary directory.
The following data are saved:
- segmentation volume,
- uncertainty volume,
- label volume,
- segment metadata.
This allows interrupted curation sessions to be resumed later.
Development
Run the test suite with:
pytest
Contributing
Contributions and bug reports are welcome.
Please include:
- a detailed problem description,
- steps to reproduce the issue,
- example data if possible.
License
Distributed under the terms of the BSD-3 license.
Repository
GitHub repository:
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-0.9.11.tar.gz.
File metadata
- Download URL: vessqc-0.9.11.tar.gz
- Upload date:
- Size: 24.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6ffb141bef752cc230e57b966152b6ff8233ae4c78373675d6ab59c7fac9753
|
|
| MD5 |
81b9653ec886f0feadff1c69360f86d8
|
|
| BLAKE2b-256 |
b3e2ec1f1cd42dfcbb0127bf64f9495905f21c0589d667cd00f1fb60a0168436
|
Provenance
The following attestation bundles were made for vessqc-0.9.11.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-0.9.11.tar.gz -
Subject digest:
a6ffb141bef752cc230e57b966152b6ff8233ae4c78373675d6ab59c7fac9753 - Sigstore transparency entry: 1519823852
- Sigstore integration time:
-
Permalink:
MMV-Lab/VessQC@c56733d6bd7522c61b535db52996a6764994843a -
Branch / Tag:
refs/tags/v0.9.12 - 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@c56733d6bd7522c61b535db52996a6764994843a -
Trigger Event:
push
-
Statement type:
File details
Details for the file vessqc-0.9.11-py3-none-any.whl.
File metadata
- Download URL: vessqc-0.9.11-py3-none-any.whl
- Upload date:
- Size: 24.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 |
87dfedefc1799f336ca306c9683f2bdee8b5d090e8fe8b2096fdef2b35995854
|
|
| MD5 |
176d469c0fcacc669f489c52eac69bbf
|
|
| BLAKE2b-256 |
ca653c3e3bb57acb0f60b96559ffc15556c50aaca68d114fced63eb5a44a15ae
|
Provenance
The following attestation bundles were made for vessqc-0.9.11-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-0.9.11-py3-none-any.whl -
Subject digest:
87dfedefc1799f336ca306c9683f2bdee8b5d090e8fe8b2096fdef2b35995854 - Sigstore transparency entry: 1519823877
- Sigstore integration time:
-
Permalink:
MMV-Lab/VessQC@c56733d6bd7522c61b535db52996a6764994843a -
Branch / Tag:
refs/tags/v0.9.12 - 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@c56733d6bd7522c61b535db52996a6764994843a -
Trigger Event:
push
-
Statement type: