napari-tmidas 0.2.6__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/.github/workflows/test_and_deploy.yml +2 -2
  2. napari_tmidas-0.3.0/PKG-INFO +249 -0
  3. napari_tmidas-0.3.0/README.md +156 -0
  4. napari_tmidas-0.3.0/docs/careamics_denoising.md +384 -0
  5. napari_tmidas-0.3.0/docs/spotiflow_detection.md +452 -0
  6. napari_tmidas-0.3.0/docs/viscy_virtual_staining.md +277 -0
  7. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/pyproject.toml +2 -1
  8. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_intensity_label_filter.py +9 -11
  9. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_registry.py +6 -0
  10. napari_tmidas-0.3.0/src/napari_tmidas/_tests/test_viscy_virtual_staining.py +138 -0
  11. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_version.py +3 -3
  12. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/__init__.py +14 -3
  13. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/intensity_label_filter.py +5 -2
  14. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/skimage_filters.py +71 -8
  15. napari_tmidas-0.3.0/src/napari_tmidas/processing_functions/viscy_env_manager.py +381 -0
  16. napari_tmidas-0.3.0/src/napari_tmidas/processing_functions/viscy_virtual_staining.py +393 -0
  17. napari_tmidas-0.3.0/src/napari_tmidas.egg-info/PKG-INFO +249 -0
  18. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas.egg-info/SOURCES.txt +7 -1
  19. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas.egg-info/requires.txt +2 -1
  20. napari_tmidas-0.2.6/PKG-INFO +0 -278
  21. napari_tmidas-0.2.6/README.md +0 -186
  22. napari_tmidas-0.2.6/src/napari_tmidas.egg-info/PKG-INFO +0 -278
  23. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/.github/dependabot.yml +0 -0
  24. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/.gitignore +0 -0
  25. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/.napari-hub/DESCRIPTION.md +0 -0
  26. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/.napari-hub/config.yml +0 -0
  27. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/.pre-commit-config.yaml +0 -0
  28. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/LICENSE +0 -0
  29. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/MANIFEST.in +0 -0
  30. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/docs/advanced_processing.md +0 -0
  31. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/docs/basic_processing.md +0 -0
  32. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/docs/cellpose_segmentation.md +0 -0
  33. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/docs/grid_view_overlay.md +0 -0
  34. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/docs/intensity_label_filter.md +0 -0
  35. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/docs/regionprops_analysis.md +0 -0
  36. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/docs/regionprops_summary.md +0 -0
  37. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/docs/trackastra_tracking.md +0 -0
  38. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/examples/grid_overlay_example.py +0 -0
  39. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/examples/intensity_filter_example.py +0 -0
  40. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/examples/regionprops_example.py +0 -0
  41. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/setup.cfg +0 -0
  42. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/__init__.py +0 -0
  43. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_crop_anything.py +0 -0
  44. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_env_manager.py +0 -0
  45. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_file_conversion.py +0 -0
  46. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_file_selector.py +0 -0
  47. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_label_inspection.py +0 -0
  48. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_processing_worker.py +0 -0
  49. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_reader.py +0 -0
  50. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_registry.py +0 -0
  51. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_roi_colocalization.py +0 -0
  52. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_sample_data.py +0 -0
  53. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_crop_anything.py +0 -0
  54. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_env_manager.py +0 -0
  55. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_file_selector.py +0 -0
  56. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_grid_view_overlay.py +0 -0
  57. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_init.py +0 -0
  58. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_label_inspection.py +0 -0
  59. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_processing_basic.py +0 -0
  60. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_processing_worker.py +0 -0
  61. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_reader.py +0 -0
  62. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_regionprops_analysis.py +0 -0
  63. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_sample_data.py +0 -0
  64. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_scipy_filters.py +0 -0
  65. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_skimage_filters.py +0 -0
  66. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_split_channels.py +0 -0
  67. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_spotiflow.py +0 -0
  68. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_tyx_display_fix.py +0 -0
  69. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_ui_utils.py +0 -0
  70. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_widget.py +0 -0
  71. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_windows_basic.py +0 -0
  72. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_tests/test_writer.py +0 -0
  73. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_ui_utils.py +0 -0
  74. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_widget.py +0 -0
  75. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/_writer.py +0 -0
  76. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/napari.yaml +0 -0
  77. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/basic.py +0 -0
  78. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/careamics_denoising.py +0 -0
  79. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/careamics_env_manager.py +0 -0
  80. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/cellpose_env_manager.py +0 -0
  81. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/cellpose_segmentation.py +0 -0
  82. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/colocalization.py +0 -0
  83. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/file_compression.py +0 -0
  84. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/grid_view_overlay.py +0 -0
  85. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/regionprops_analysis.py +0 -0
  86. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/sam2_env_manager.py +0 -0
  87. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/sam2_mp4.py +0 -0
  88. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/scipy_filters.py +0 -0
  89. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/spotiflow_detection.py +0 -0
  90. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/spotiflow_env_manager.py +0 -0
  91. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/timepoint_merger.py +0 -0
  92. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas/processing_functions/trackastra_tracking.py +0 -0
  93. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas.egg-info/dependency_links.txt +0 -0
  94. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas.egg-info/entry_points.txt +0 -0
  95. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/src/napari_tmidas.egg-info/top_level.txt +0 -0
  96. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/test_grid_overlay.py +0 -0
  97. {napari_tmidas-0.2.6 → napari_tmidas-0.3.0}/tox.ini +0 -0
@@ -44,8 +44,8 @@ jobs:
44
44
  - name: Install dependencies
45
45
  run: |
46
46
  python -m pip install --upgrade pip
47
- python -m pip install setuptools tox tox-gh-actions
48
-
47
+ python -m pip install setuptools tox tox-gh-actions scikit-learn-extra
48
+
49
49
  - name: Pip cache
50
50
  uses: actions/cache@v4
51
51
  with:
@@ -0,0 +1,249 @@
1
+ Metadata-Version: 2.4
2
+ Name: napari-tmidas
3
+ Version: 0.3.0
4
+ Summary: A plugin for batch processing of confocal and whole-slide microscopy images of biological tissues
5
+ Author: Marco Meer
6
+ Author-email: marco.meer@pm.me
7
+ License:
8
+ Copyright (c) 2025, Marco Meer
9
+ All rights reserved.
10
+
11
+ Redistribution and use in source and binary forms, with or without
12
+ modification, are permitted provided that the following conditions are met:
13
+
14
+ * Redistributions of source code must retain the above copyright notice, this
15
+ list of conditions and the following disclaimer.
16
+
17
+ * Redistributions in binary form must reproduce the above copyright notice,
18
+ this list of conditions and the following disclaimer in the documentation
19
+ and/or other materials provided with the distribution.
20
+
21
+ * Neither the name of copyright holder nor the names of its
22
+ contributors may be used to endorse or promote products derived from
23
+ this software without specific prior written permission.
24
+
25
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
29
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
33
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35
+
36
+ Project-URL: Bug Tracker, https://github.com/macromeer/napari-tmidas/issues
37
+ Project-URL: Documentation, https://github.com/macromeer/napari-tmidas#README.md
38
+ Project-URL: Source Code, https://github.com/macromeer/napari-tmidas
39
+ Project-URL: User Support, https://github.com/macromeer/napari-tmidas/issues
40
+ Classifier: Development Status :: 2 - Pre-Alpha
41
+ Classifier: Framework :: napari
42
+ Classifier: Intended Audience :: Developers
43
+ Classifier: License :: OSI Approved :: BSD License
44
+ Classifier: Operating System :: MacOS
45
+ Classifier: Operating System :: POSIX :: Linux
46
+ Classifier: Programming Language :: Python
47
+ Classifier: Programming Language :: Python :: 3
48
+ Classifier: Programming Language :: Python :: 3 :: Only
49
+ Classifier: Programming Language :: Python :: 3.10
50
+ Classifier: Programming Language :: Python :: 3.11
51
+ Classifier: Topic :: Scientific/Engineering :: Image Processing
52
+ Requires-Python: >=3.10
53
+ Description-Content-Type: text/markdown
54
+ License-File: LICENSE
55
+ Requires-Dist: numpy<3.0,>=1.23.0
56
+ Requires-Dist: magicgui
57
+ Requires-Dist: tqdm
58
+ Requires-Dist: qtpy
59
+ Requires-Dist: scikit-image>=0.19.0
60
+ Requires-Dist: scikit-learn-extra>=0.3.0
61
+ Requires-Dist: pyqt5
62
+ Requires-Dist: zarr
63
+ Requires-Dist: ome-zarr
64
+ Requires-Dist: napari-ome-zarr
65
+ Requires-Dist: nd2
66
+ Requires-Dist: pylibCZIrw
67
+ Requires-Dist: readlif
68
+ Requires-Dist: tiffslide
69
+ Requires-Dist: acquifer-napari
70
+ Provides-Extra: testing
71
+ Requires-Dist: tox; extra == "testing"
72
+ Requires-Dist: pytest>=7.0.0; extra == "testing"
73
+ Requires-Dist: pytest-cov; extra == "testing"
74
+ Requires-Dist: pytest-qt; extra == "testing"
75
+ Requires-Dist: pytest-timeout; extra == "testing"
76
+ Requires-Dist: napari; extra == "testing"
77
+ Requires-Dist: pyqt5; extra == "testing"
78
+ Requires-Dist: psygnal>=0.8.0; extra == "testing"
79
+ Requires-Dist: scikit-learn-extra>=0.3.0; extra == "testing"
80
+ Provides-Extra: clustering
81
+ Requires-Dist: scikit-learn-extra>=0.3.0; extra == "clustering"
82
+ Provides-Extra: deep-learning
83
+ Requires-Dist: torch>=1.12.0; extra == "deep-learning"
84
+ Requires-Dist: torchvision>=0.13.0; extra == "deep-learning"
85
+ Requires-Dist: timm; extra == "deep-learning"
86
+ Requires-Dist: opencv-python; extra == "deep-learning"
87
+ Requires-Dist: cmake; extra == "deep-learning"
88
+ Requires-Dist: hydra-core; extra == "deep-learning"
89
+ Requires-Dist: eva-decord; extra == "deep-learning"
90
+ Provides-Extra: all
91
+ Requires-Dist: napari-tmidas[clustering,deep-learning,testing]; extra == "all"
92
+ Dynamic: license-file
93
+
94
+ # napari-tmidas
95
+
96
+ [![License BSD-3](https://img.shields.io/pypi/l/napari-tmidas.svg?color=green)](https://github.com/macromeer/napari-tmidas/raw/main/LICENSE)
97
+ [![PyPI](https://img.shields.io/pypi/v/napari-tmidas.svg?color=green)](https://pypi.org/project/napari-tmidas)
98
+ [![Python Version](https://img.shields.io/pypi/pyversions/napari-tmidas.svg?color=green)](https://python.org)
99
+ [![Downloads](https://static.pepy.tech/badge/napari-tmidas)](https://pepy.tech/project/napari-tmidas)
100
+ [![DOI](https://zenodo.org/badge/943353883.svg)](https://doi.org/10.5281/zenodo.17988815)
101
+ [![tests](https://github.com/macromeer/napari-tmidas/workflows/tests/badge.svg)](https://github.com/macromeer/napari-tmidas/actions)
102
+
103
+ **AI-powered batch processing for microscopy images**
104
+
105
+ Transform, analyze, and quantify microscopy data at scale with deep learning - from file conversion to segmentation, tracking, and analysis.
106
+
107
+ ## ✨ Key Features
108
+
109
+ 🤖 **5 AI Methods Built-In**
110
+ - Virtual staining (VisCy) • Denoising (CAREamics) • Spot detection (Spotiflow) • Segmentation (Cellpose) • Tracking (Trackastra)
111
+ - Auto-install in isolated environments • No dependency conflicts • GPU acceleration
112
+
113
+ 🔄 **Universal File Conversion**
114
+ - Convert LIF, ND2, CZI, NDPI, Acquifer → TIFF or OME-Zarr
115
+ - Preserve spatial metadata automatically
116
+
117
+ ⚡ **Batch Processing**
118
+ - Process entire folders with one click • 40+ processing functions • Progress tracking & quality control
119
+
120
+ 📊 **Complete Analysis Pipeline**
121
+ - Segmentation → Tracking → Quantification → Colocalization
122
+
123
+ ## 🚀 Quick Start
124
+
125
+ ```bash
126
+ # Install napari and the plugin
127
+ mamba create -y -n napari-tmidas -c conda-forge python=3.11
128
+ mamba activate napari-tmidas
129
+ pip install "napari[all]"
130
+ pip install napari-tmidas
131
+
132
+ # Launch napari
133
+ napari
134
+ ```
135
+
136
+ Then find napari-tmidas in the **Plugins** menu. [Watch video tutorials →](https://www.youtube.com/@macromeer/videos)
137
+
138
+ > **💡 Tip**: AI methods auto-install their dependencies on first use - no manual setup required!
139
+
140
+ ## 📖 Documentation
141
+
142
+ ### AI-Powered Methods
143
+
144
+ | Method | Description | Documentation |
145
+ |--------|-------------|---------------|
146
+ | 🎨 **VisCy** | Virtual staining from phase/DIC | [Guide](docs/viscy_virtual_staining.md) |
147
+ | 🔧 **CAREamics** | Noise2Void/CARE denoising | [Guide](docs/careamics_denoising.md) |
148
+ | 🎯 **Spotiflow** | Spot/puncta detection | [Guide](docs/spotiflow_detection.md) |
149
+ | 🔬 **Cellpose** | Cell/nucleus segmentation | [Guide](docs/cellpose_segmentation.md) |
150
+ | 📈 **Trackastra** | Cell tracking over time | [Guide](docs/trackastra_tracking.md) |
151
+
152
+ ### Core Workflows
153
+
154
+ - **[Image Conversion](docs/basic_processing.md#file-conversion)** - Multi-format microscopy file conversion
155
+ - **[Batch Processing](docs/basic_processing.md)** - Label operations, filters, channel splitting
156
+ - **[Quality Control](docs/grid_view_overlay.md)** - Visual QC with grid overlay
157
+ - **[Quantification](docs/regionprops_analysis.md)** - Extract measurements from labels
158
+ - **[Colocalization](docs/advanced_processing.md#colocalization)** - Multi-channel ROI analysis
159
+
160
+ ### Advanced Features
161
+
162
+ - [SAM2 Crop Anything](docs/advanced_processing.md#sam2) - Interactive object cropping
163
+ - [Advanced Filters](docs/advanced_processing.md) - SciPy/scikit-image filters
164
+ - [Batch Label Inspection](docs/basic_processing.md#label-inspection) - Manual correction workflow
165
+
166
+ ## 💻 Installation Options
167
+
168
+ **Recommended (latest features):**
169
+ ```bash
170
+ pip install git+https://github.com/MercaderLabAnatomy/napari-tmidas.git
171
+ ```
172
+
173
+ **Stable release:**
174
+ ```bash
175
+ pip install napari-tmidas
176
+ ```
177
+
178
+ **With deep learning (optional):**
179
+ ```bash
180
+ pip install 'napari-tmidas[deep-learning]' # Includes SAM2
181
+ pip install 'napari-tmidas[all]' # Everything
182
+ ```
183
+
184
+ **Additional setup for SAM2:**
185
+ ```bash
186
+ mamba install -c conda-forge ffmpeg # Required for video processing
187
+ ```
188
+
189
+ ## 🖼️ Screenshots
190
+
191
+ <details>
192
+ <summary><b>File Conversion Widget</b></summary>
193
+
194
+ <img src="https://github.com/user-attachments/assets/e377ca71-2f30-447d-825e-d2feebf7061b" alt="File Conversion" width="600">
195
+
196
+ Convert proprietary formats to open standards with metadata preservation.
197
+ </details>
198
+
199
+ <details>
200
+ <summary><b>Batch Processing Interface</b></summary>
201
+
202
+ <img src="https://github.com/user-attachments/assets/cfe84828-c1cc-4196-9a53-5dfb82d5bfce" alt="Batch Processing" width="600">
203
+
204
+ Select files → Choose processing function → Run on entire dataset.
205
+ </details>
206
+
207
+ <details>
208
+ <summary><b>Label Inspection</b></summary>
209
+
210
+ <img src="https://github.com/user-attachments/assets/0bf8c6ae-4212-449d-8183-e91b23ba740e" alt="Label Inspection" width="600">
211
+
212
+ Inspect and manually correct segmentation results.
213
+ </details>
214
+
215
+ <details>
216
+ <summary><b>SAM2 Crop Anything</b></summary>
217
+
218
+ <img src="https://github.com/user-attachments/assets/6d72c2a2-1064-4a27-b398-a9b86fcbc443" alt="Crop Anything" width="600">
219
+
220
+ Interactive object selection and cropping with SAM2.
221
+ </details>
222
+
223
+ ## 🤝 Contributing
224
+
225
+ Contributions are welcome! Please ensure tests pass before submitting PRs:
226
+
227
+ ```bash
228
+ pip install tox
229
+ tox
230
+ ```
231
+
232
+ ## 📄 License
233
+
234
+ BSD-3 License - see [LICENSE](LICENSE) for details.
235
+
236
+ ## 🐛 Issues
237
+
238
+ Found a bug or have a feature request? [Open an issue](https://github.com/MercaderLabAnatomy/napari-tmidas/issues)
239
+
240
+ ## 🙏 Acknowledgments
241
+
242
+ Built with [napari](https://github.com/napari/napari) and powered by:
243
+ - [Cellpose](https://github.com/MouseLand/cellpose) • [VisCy](https://github.com/mehta-lab/VisCy) • [CAREamics](https://github.com/CAREamics/careamics) • [Spotiflow](https://github.com/weigertlab/spotiflow) • [Trackastra](https://github.com/weigertlab/trackastra) • [SAM2](https://github.com/facebookresearch/segment-anything-2)
244
+
245
+ ---
246
+
247
+ [PyPI]: https://pypi.org/project/napari-tmidas
248
+ [pip]: https://pypi.org/project/pip/
249
+ [tox]: https://tox.readthedocs.io/en/latest/
@@ -0,0 +1,156 @@
1
+ # napari-tmidas
2
+
3
+ [![License BSD-3](https://img.shields.io/pypi/l/napari-tmidas.svg?color=green)](https://github.com/macromeer/napari-tmidas/raw/main/LICENSE)
4
+ [![PyPI](https://img.shields.io/pypi/v/napari-tmidas.svg?color=green)](https://pypi.org/project/napari-tmidas)
5
+ [![Python Version](https://img.shields.io/pypi/pyversions/napari-tmidas.svg?color=green)](https://python.org)
6
+ [![Downloads](https://static.pepy.tech/badge/napari-tmidas)](https://pepy.tech/project/napari-tmidas)
7
+ [![DOI](https://zenodo.org/badge/943353883.svg)](https://doi.org/10.5281/zenodo.17988815)
8
+ [![tests](https://github.com/macromeer/napari-tmidas/workflows/tests/badge.svg)](https://github.com/macromeer/napari-tmidas/actions)
9
+
10
+ **AI-powered batch processing for microscopy images**
11
+
12
+ Transform, analyze, and quantify microscopy data at scale with deep learning - from file conversion to segmentation, tracking, and analysis.
13
+
14
+ ## ✨ Key Features
15
+
16
+ 🤖 **5 AI Methods Built-In**
17
+ - Virtual staining (VisCy) • Denoising (CAREamics) • Spot detection (Spotiflow) • Segmentation (Cellpose) • Tracking (Trackastra)
18
+ - Auto-install in isolated environments • No dependency conflicts • GPU acceleration
19
+
20
+ 🔄 **Universal File Conversion**
21
+ - Convert LIF, ND2, CZI, NDPI, Acquifer → TIFF or OME-Zarr
22
+ - Preserve spatial metadata automatically
23
+
24
+ ⚡ **Batch Processing**
25
+ - Process entire folders with one click • 40+ processing functions • Progress tracking & quality control
26
+
27
+ 📊 **Complete Analysis Pipeline**
28
+ - Segmentation → Tracking → Quantification → Colocalization
29
+
30
+ ## 🚀 Quick Start
31
+
32
+ ```bash
33
+ # Install napari and the plugin
34
+ mamba create -y -n napari-tmidas -c conda-forge python=3.11
35
+ mamba activate napari-tmidas
36
+ pip install "napari[all]"
37
+ pip install napari-tmidas
38
+
39
+ # Launch napari
40
+ napari
41
+ ```
42
+
43
+ Then find napari-tmidas in the **Plugins** menu. [Watch video tutorials →](https://www.youtube.com/@macromeer/videos)
44
+
45
+ > **💡 Tip**: AI methods auto-install their dependencies on first use - no manual setup required!
46
+
47
+ ## 📖 Documentation
48
+
49
+ ### AI-Powered Methods
50
+
51
+ | Method | Description | Documentation |
52
+ |--------|-------------|---------------|
53
+ | 🎨 **VisCy** | Virtual staining from phase/DIC | [Guide](docs/viscy_virtual_staining.md) |
54
+ | 🔧 **CAREamics** | Noise2Void/CARE denoising | [Guide](docs/careamics_denoising.md) |
55
+ | 🎯 **Spotiflow** | Spot/puncta detection | [Guide](docs/spotiflow_detection.md) |
56
+ | 🔬 **Cellpose** | Cell/nucleus segmentation | [Guide](docs/cellpose_segmentation.md) |
57
+ | 📈 **Trackastra** | Cell tracking over time | [Guide](docs/trackastra_tracking.md) |
58
+
59
+ ### Core Workflows
60
+
61
+ - **[Image Conversion](docs/basic_processing.md#file-conversion)** - Multi-format microscopy file conversion
62
+ - **[Batch Processing](docs/basic_processing.md)** - Label operations, filters, channel splitting
63
+ - **[Quality Control](docs/grid_view_overlay.md)** - Visual QC with grid overlay
64
+ - **[Quantification](docs/regionprops_analysis.md)** - Extract measurements from labels
65
+ - **[Colocalization](docs/advanced_processing.md#colocalization)** - Multi-channel ROI analysis
66
+
67
+ ### Advanced Features
68
+
69
+ - [SAM2 Crop Anything](docs/advanced_processing.md#sam2) - Interactive object cropping
70
+ - [Advanced Filters](docs/advanced_processing.md) - SciPy/scikit-image filters
71
+ - [Batch Label Inspection](docs/basic_processing.md#label-inspection) - Manual correction workflow
72
+
73
+ ## 💻 Installation Options
74
+
75
+ **Recommended (latest features):**
76
+ ```bash
77
+ pip install git+https://github.com/MercaderLabAnatomy/napari-tmidas.git
78
+ ```
79
+
80
+ **Stable release:**
81
+ ```bash
82
+ pip install napari-tmidas
83
+ ```
84
+
85
+ **With deep learning (optional):**
86
+ ```bash
87
+ pip install 'napari-tmidas[deep-learning]' # Includes SAM2
88
+ pip install 'napari-tmidas[all]' # Everything
89
+ ```
90
+
91
+ **Additional setup for SAM2:**
92
+ ```bash
93
+ mamba install -c conda-forge ffmpeg # Required for video processing
94
+ ```
95
+
96
+ ## 🖼️ Screenshots
97
+
98
+ <details>
99
+ <summary><b>File Conversion Widget</b></summary>
100
+
101
+ <img src="https://github.com/user-attachments/assets/e377ca71-2f30-447d-825e-d2feebf7061b" alt="File Conversion" width="600">
102
+
103
+ Convert proprietary formats to open standards with metadata preservation.
104
+ </details>
105
+
106
+ <details>
107
+ <summary><b>Batch Processing Interface</b></summary>
108
+
109
+ <img src="https://github.com/user-attachments/assets/cfe84828-c1cc-4196-9a53-5dfb82d5bfce" alt="Batch Processing" width="600">
110
+
111
+ Select files → Choose processing function → Run on entire dataset.
112
+ </details>
113
+
114
+ <details>
115
+ <summary><b>Label Inspection</b></summary>
116
+
117
+ <img src="https://github.com/user-attachments/assets/0bf8c6ae-4212-449d-8183-e91b23ba740e" alt="Label Inspection" width="600">
118
+
119
+ Inspect and manually correct segmentation results.
120
+ </details>
121
+
122
+ <details>
123
+ <summary><b>SAM2 Crop Anything</b></summary>
124
+
125
+ <img src="https://github.com/user-attachments/assets/6d72c2a2-1064-4a27-b398-a9b86fcbc443" alt="Crop Anything" width="600">
126
+
127
+ Interactive object selection and cropping with SAM2.
128
+ </details>
129
+
130
+ ## 🤝 Contributing
131
+
132
+ Contributions are welcome! Please ensure tests pass before submitting PRs:
133
+
134
+ ```bash
135
+ pip install tox
136
+ tox
137
+ ```
138
+
139
+ ## 📄 License
140
+
141
+ BSD-3 License - see [LICENSE](LICENSE) for details.
142
+
143
+ ## 🐛 Issues
144
+
145
+ Found a bug or have a feature request? [Open an issue](https://github.com/MercaderLabAnatomy/napari-tmidas/issues)
146
+
147
+ ## 🙏 Acknowledgments
148
+
149
+ Built with [napari](https://github.com/napari/napari) and powered by:
150
+ - [Cellpose](https://github.com/MouseLand/cellpose) • [VisCy](https://github.com/mehta-lab/VisCy) • [CAREamics](https://github.com/CAREamics/careamics) • [Spotiflow](https://github.com/weigertlab/spotiflow) • [Trackastra](https://github.com/weigertlab/trackastra) • [SAM2](https://github.com/facebookresearch/segment-anything-2)
151
+
152
+ ---
153
+
154
+ [PyPI]: https://pypi.org/project/napari-tmidas
155
+ [pip]: https://pypi.org/project/pip/
156
+ [tox]: https://tox.readthedocs.io/en/latest/