A plugin for batch processing of confocal and whole-slide microscopy images of biological tissues
Project description
napari-tmidas
Need fast batch processing for confocal & whole-slide microscopy images of biological cells and tissues?
This open-source napari plugin integrates state-of-the-art AI + analysis tools in an interactive GUI with side-by-side result comparison! Transform, analyze, and quantify microscopy data at scale including deep learning - from file conversion to segmentation, tracking, and analysis.
✨ Key Features
🤖 AI Methods Built-In
- Virtual staining (VisCy) • Denoising (CAREamics) • Spot detection (Spotiflow) • Segmentation (Cellpose, Convpaint) • Tracking (Trackastra, Ultrack)
- Auto-install in isolated environments • No dependency conflicts • GPU acceleration
🔄 Universal File Conversion
- Convert LIF, ND2, CZI, NDPI, Acquifer → TIFF or OME-Zarr
- Preserve spatial metadata automatically
⚡ Batch Processing
- Process entire folders with one click • 40+ processing functions • Progress tracking & quality control
� Interactive Workflow
- Side-by-side table view of original and processed images • Click to instantly compare results • Quickly iterate parameter values • Real-time visual feedback
�📊 Complete Analysis Pipeline
- Segmentation → Tracking → Quantification → Colocalization
🚀 Quick Start
# Install napari and the plugin
mamba create -y -n napari-tmidas -c conda-forge python=3.11
mamba activate napari-tmidas
pip install "napari[all]"
pip install napari-tmidas
# Launch napari
napari
Then find napari-tmidas in the Plugins menu. Watch video tutorials →
💡 Tip: AI methods (SAM2, Cellpose, Spotiflow, etc.) auto-install into isolated environments on first use - no manual setup required!
📖 Documentation
AI-Powered Methods
| Method | Description | Documentation |
|---|---|---|
| 🎨 VisCy | Virtual staining from phase/DIC | Guide |
| 🔧 CAREamics | Noise2Void/CARE denoising | Guide |
| 🎯 Spotiflow | Spot/puncta detection | Guide |
| 🔬 Cellpose | Cell/nucleus segmentation | Guide |
| 🎨 Convpaint | Custom semantic/instance segmentation | Guide |
| 📈 Trackastra | Transformer-based cell tracking | Guide |
| 🔗 Ultrack | Cell tracking based on segmentation ensemble | Guide |
Core Workflows
- File Conversion - Multi-format microscopy file conversion (LIF, ND2, CZI, NDPI, Acquifer)
- Batch Processing - Label operations, filters, channel splitting
- Frame Removal - Interactive human-in-the-loop frame removal from time series
- Label-Based Cropping - Interactive ROI extraction with label expansion
- Quality Control - Visual QC with grid overlay
- Quantification - Extract measurements from labels
- Colocalization - Multi-channel ROI analysis
Advanced Features
- Batch Crop Anything - Interactive object cropping with SAM2
- Batch Label Inspection - Manual label verification and editing
- SciPy Filters - Gaussian, median, morphological operations
- Scikit-Image Filters - CLAHE, thresholding, edge detection
💻 Installation
Step 1: Install napari
mamba create -y -n napari-tmidas -c conda-forge python=3.11
mamba activate napari-tmidas
python -m pip install "napari[all]"
Step 2: Install napari-tmidas
| Your Needs | Command |
|---|---|
| Standard installation | pip install napari-tmidas |
| Want the latest dev features | pip install git+https://github.com/MercaderLabAnatomy/napari-tmidas.git |
🖼️ Screenshots
File Conversion Widget
Convert proprietary formats to open standards with metadata preservation.
Batch Processing Interface
Select files → Choose processing function → Run on entire dataset.
Label Inspection
Inspect and manually correct segmentation results.
SAM2 Crop Anything
Interactive object selection and cropping with SAM2.
📋 TODO
Memory-Efficient Zarr Streaming
Current Limitation: Processing functions pre-allocate full output arrays in memory before writing to zarr. For large TZYX time series (e.g., 100 timepoints × 1024×1024×20), this requires ~8+ GB peak memory even when using zarr output.
Planned Enhancement: Implement incremental zarr writing across all processing functions:
- Process one timepoint at a time
- Write directly to zarr array on disk
- Keep only single timepoint in memory (~80 MB vs 8 GB)
- Maintain OME-Zarr metadata and chunking
Impact: Enable processing of arbitrarily large time series limited only by disk space, not RAM. Critical for high-throughput microscopy workflows.
Affected Functions: Convpaint prediction, Cellpose segmentation, CAREamics denoising, VisCy virtual staining, Trackastra tracking, and all batch processing operations with zarr output.
🤝 Contributing
Contributions are welcome! Please ensure tests pass before submitting PRs:
pip install tox
tox
📄 License
BSD-3 License - see LICENSE for details.
🐛 Issues
Found a bug or have a feature request? Open an issue
🙏 Acknowledgments
Built with napari and powered by:
AI/ML Methods:
Core Scientific Stack:
- NumPy • scikit-image • PyTorch
File Format Support:
- OME-Zarr • tifffile • nd2 • pylibCZIrw • readlif
Project details
Release history Release notifications | RSS feed
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 napari_tmidas-0.5.4.tar.gz.
File metadata
- Download URL: napari_tmidas-0.5.4.tar.gz
- Upload date:
- Size: 350.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abcaf8f5a2ca8822013642d93efdb0c3441a04d2e88623681c80187750112db4
|
|
| MD5 |
bf444b9dc4a682f715845b808d09d19f
|
|
| BLAKE2b-256 |
5212052ad13656f3f51f3050df9f1ab7f1aac5adefce4c2ef6766928f8e2ad69
|
File details
Details for the file napari_tmidas-0.5.4-py3-none-any.whl.
File metadata
- Download URL: napari_tmidas-0.5.4-py3-none-any.whl
- Upload date:
- Size: 313.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76bc39ba7b5516f01fdba23fb5dda7069ec04d150494e9c26771f84e5c9f54d4
|
|
| MD5 |
bc14c3e2c3113e682ba5dc77749f5b13
|
|
| BLAKE2b-256 |
7682e3bd4417052ca4d6c1d7ed54ba6764e351cfc2c027b3a57769510a163c7e
|