Grid Curator
Interactive batch annotation tool for microscopy datasets with tiled grid visualization
Interactive batch annotation tool for microscopy datasets with tiled grid visualization.
Overview
napari-grid-curator is a napari plugin for efficient manual curation of large microscopy datasets. The key feature is a tiled grid layout that displays many segmented objects simultaneously, allowing rapid quality control and annotation.
Key Features
- Tiled Grid Layout: View 100+ cells at once in an organized montage
- Batch Processing: Efficiently navigate through thousands of segmented objects
- 2D & 3D Support: Works with both 2D image stacks and 3D volumetric data with scrollable Z-stacks
- Dual View Modes:
- Mosaic Mode: See all cells in batch simultaneously
- Slide Mode: Navigate cell-by-cell with arrow keys
- Interactive Annotation:
- Alt + Click: Exclude/include individual cells
- Shift + Click: Mark cells as positive (thresholding)
- Quick Filters: DAPI intensity and nearest-neighbor distance sliders
- Flexible Data Loading:
- Legacy mode (all data in single
.pkl) - Lazy mode (split per-scene
.pklfiles) - Minimal mode (on-the-fly cropping from original
.lif/.tiffiles)
- Legacy mode (all data in single
- Multi-channel Thresholding: Set per-channel thresholds with interactive histograms
- Smart Caching: Efficient caching for large 3D wholebrain datasets
Installation
Install directly from PyPI:
pip install napari-grid-curator
Or install latest development version:
pip install git+https://github.com/jojofranz/napari-grid-curator.git
Usage
From napari GUI
- Open napari
- Go to Plugins > Grid Curator
- Load your dataset (
.pklfile) - Use mouse interactions to annotate:
- Alt + Click: Toggle cell inclusion/exclusion
- Shift + Click: Mark cell as positive
- Set thresholds per channel using histogram widget
- Export annotated dataset when done
Supported Dataset Formats
The plugin works with three dataset modes:
- Legacy Mode: All images stored in single
.pklfile - Lazy Mode: Images split across per-scene
.pklfiles - Minimal Mode: References to original
.lifor.tiffiles with on-the-fly cropping
See DATASET_FORMATS.md for detailed format specifications.
Key Bindings
- Alt + Click: Toggle cell exclusion (include/exclude)
- Shift + Click: Toggle positive marker (for thresholding)
- Arrow Keys: Navigate between cells in slide mode (Left/Right)
- Mouse Wheel: Scroll through Z-slices (3D mode)
Use Cases
This plugin was originally developed for retinal ganglion cell (RGC) analysis but is applicable to:
- Quality control of automated segmentations
- Manual classification of cell types
- Thresholding based on marker expression
- Excluding edge artifacts or missegmented objects
- Any workflow requiring rapid inspection of many segmented objects
Development
This plugin was generated using the napari-plugin-template and follows napari plugin best practices.
Dataset Preparation
Your dataset should include:
- Images (2D or 3D, multi-channel)
- Segmentation labels
- Metadata table with regionprops (e.g., from
skimage.measure.regionprops_table)
The plugin uses bounding boxes to crop regions around each segmented object for efficient visualization.
Contributing
Contributions are welcome! Please open an issue or pull request on GitHub.
License
Distributed under the terms of the MIT license. "napari-grid-curator" is free and open source software.
Issues
If you encounter any problems, please file an issue with:
- Dataset format and size
- Full error traceback
- napari and plugin versions (
napari --info)
Acknowledgements
This plugin was developed for wholebrain RGC analysis and uses (amongst others):
- napari for visualization
- magicgui for GUI widgets
- napari-clusters-plotter for histogram visualization
Development of this plugin was funded by NL-BioImaging AM and is happening in at the MCL.
Version:
- 0.1.1
Last updated:
- 2026-03-18
First released:
- 2026-03-03
License:
- MIT
Supported data:
- Information not submitted
Open extension:
Save extension:
Operating system:
- Information not submitted
Requirements:
- numpy
- magicgui
- qtpy
- QtAwesome
- napari
- xlsxwriter
- zarr
- microfilm
- aicsimageio
- readlif>=0.6.4
- connected-components-3d
- fastremap
- tox; extra == "testing"
- pytest; extra == "testing"
- pytest-cov; extra == "testing"
- pytest-qt; extra == "testing"
- napari; extra == "testing"
- pyqt5; extra == "testing"

