AutoMorphoTrack 2.0.1__tar.gz → 2.1.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 (45) hide show
  1. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/MANIFEST.in +1 -0
  2. automorphotrack-2.1.0/PKG-INFO +258 -0
  3. automorphotrack-2.1.0/README.md +222 -0
  4. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/__init__.py +20 -2
  5. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/colocalization.py +14 -7
  6. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/detection.py +1 -1
  7. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/lyso_count.py +1 -1
  8. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/morphology.py +1 -1
  9. automorphotrack-2.1.0/automorphotrack/network_analysis.py +197 -0
  10. automorphotrack-2.1.0/automorphotrack/shape_profiling.py +258 -0
  11. automorphotrack-2.1.0/automorphotrack/spatial_statistics.py +258 -0
  12. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/summary.py +2 -3
  13. automorphotrack-2.1.0/automorphotrack/temporal_dynamics.py +211 -0
  14. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/tracking_overlay.py +1 -1
  15. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/utils.py +1 -1
  16. automorphotrack-2.1.0/automorphotrack/validation.py +308 -0
  17. automorphotrack-2.1.0/automorphotrack.egg-info/PKG-INFO +258 -0
  18. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack.egg-info/SOURCES.txt +4 -12
  19. automorphotrack-2.1.0/pyproject.toml +40 -0
  20. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/setup.py +5 -5
  21. automorphotrack-2.0.1/PKG-INFO +0 -133
  22. automorphotrack-2.0.1/README.md +0 -93
  23. automorphotrack-2.0.1/automorphotrack/.___init__.py +0 -0
  24. automorphotrack-2.0.1/automorphotrack/._colocalization.py +0 -0
  25. automorphotrack-2.0.1/automorphotrack/._detection.py +0 -0
  26. automorphotrack-2.0.1/automorphotrack/._lyso_count.py +0 -0
  27. automorphotrack-2.0.1/automorphotrack/._morphology.py +0 -0
  28. automorphotrack-2.0.1/automorphotrack/._motility.py +0 -0
  29. automorphotrack-2.0.1/automorphotrack/._shape_features.py +0 -0
  30. automorphotrack-2.0.1/automorphotrack/._shape_profiling.py +0 -0
  31. automorphotrack-2.0.1/automorphotrack/._summary.py +0 -0
  32. automorphotrack-2.0.1/automorphotrack/._tracking.py +0 -0
  33. automorphotrack-2.0.1/automorphotrack/._tracking_overlay.py +0 -0
  34. automorphotrack-2.0.1/automorphotrack/._utils.py +0 -0
  35. automorphotrack-2.0.1/automorphotrack/shape_profiling.py +0 -51
  36. automorphotrack-2.0.1/automorphotrack.egg-info/PKG-INFO +0 -133
  37. automorphotrack-2.0.1/pyproject.toml +0 -3
  38. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/LICENSE.md +0 -0
  39. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/motility.py +0 -0
  40. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/shape_features.py +0 -0
  41. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack/tracking.py +0 -0
  42. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack.egg-info/dependency_links.txt +0 -0
  43. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack.egg-info/requires.txt +0 -0
  44. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/automorphotrack.egg-info/top_level.txt +0 -0
  45. {automorphotrack-2.0.1 → automorphotrack-2.1.0}/setup.cfg +0 -0
@@ -1,3 +1,4 @@
1
1
  include README.md
2
2
  include LICENSE.md
3
+ include pyproject.toml
3
4
  recursive-include automorphotrack *.py
@@ -0,0 +1,258 @@
1
+ Metadata-Version: 2.4
2
+ Name: automorphotrack
3
+ Version: 2.1.0
4
+ Summary: Automated pipeline for mitochondrial and lysosomal detection, tracking, morphology, and colocalization analysis in microscopy images.
5
+ Home-page: https://github.com/abayatibrain/AutoMorphoTrack
6
+ Author: Armin Bayati, Ph.D.
7
+ Author-email: "Armin Bayati, Ph.D." <a.bayati.brain@gmail.com>
8
+ License: MIT
9
+ Project-URL: Documentation, https://github.com/abayatibrain/AutoMorphoTrack
10
+ Project-URL: Source, https://github.com/abayatibrain/AutoMorphoTrack
11
+ Project-URL: Tracker, https://github.com/abayatibrain/AutoMorphoTrack/issues
12
+ Keywords: image-processing,microscopy,organelle-tracking,mitochondria,lysosomes
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Intended Audience :: Science/Research
20
+ Classifier: Topic :: Scientific/Engineering :: Image Processing
21
+ Requires-Python: >=3.9
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE.md
24
+ Requires-Dist: numpy>=1.23.0
25
+ Requires-Dist: pandas>=1.5.0
26
+ Requires-Dist: matplotlib>=3.6.0
27
+ Requires-Dist: seaborn>=0.12.0
28
+ Requires-Dist: opencv-python>=4.6.0
29
+ Requires-Dist: scikit-image>=0.19.0
30
+ Requires-Dist: scipy>=1.9.0
31
+ Requires-Dist: tifffile>=2022.8.12
32
+ Dynamic: author
33
+ Dynamic: home-page
34
+ Dynamic: license-file
35
+ Dynamic: requires-python
36
+
37
+ # AutoMorphoTrack
38
+
39
+ **AutoMorphoTrack** is a comprehensive, modular image-analysis pipeline for automated detection, morphology classification, shape profiling, motility tracking, and colocalization analysis of mitochondria and lysosomes in multichannel fluorescence microscopy data.
40
+
41
+ Developed by **Armin Bayati, Ph.D.**
42
+
43
+ ---
44
+
45
+ ## Overview
46
+
47
+ AutoMorphoTrack processes time-lapse `.tif` stacks (typically two-channel: mitochondria + lysosomes) and generates **publication-ready visual and quantitative outputs** at every analysis step. The pipeline integrates seamlessly into scientific workflows and prioritizes **transparency, reproducibility, and ease of use**.
48
+
49
+ ---
50
+
51
+ ## Key Features
52
+
53
+ - **Automated organelle detection** with morphological filtering
54
+ - **Integrated tracking** of mitochondria and lysosomes across time
55
+ - **Shape profiling** with publication-ready violin plots
56
+ - **Motility analysis** with velocity and displacement quantification
57
+ - **Colocalization metrics** (Manders, Pearson coefficients)
58
+ - **Comprehensive validation tools** for segmentation and tracking accuracy
59
+ - **Colorblind-safe visualizations** throughout
60
+ - **High-resolution outputs** (600 DPI publication-ready figures)
61
+
62
+ ---
63
+
64
+ ## Installation
65
+
66
+ ### Via PyPI (Recommended)
67
+ ```bash
68
+ pip install automorphotrack
69
+ ```
70
+
71
+ ### From Source
72
+ ```bash
73
+ git clone https://github.com/abayatibrain/AutoMorphoTrack.git
74
+ cd AutoMorphoTrack
75
+ pip install -e .
76
+ ```
77
+
78
+ ### Development Install
79
+ ```bash
80
+ git clone https://github.com/abayatibrain/AutoMorphoTrack.git
81
+ cd AutoMorphoTrack
82
+ pip install -e ".[dev]"
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Quick Start
88
+
89
+ ```python
90
+ from automorphotrack import (
91
+ detect_organelles,
92
+ count_lysosomes_per_frame,
93
+ classify_morphology,
94
+ analyze_shape_features,
95
+ profile_shape_data,
96
+ track_organelles,
97
+ track_overlay,
98
+ analyze_motility,
99
+ analyze_colocalization,
100
+ summarize_integrated_data
101
+ )
102
+
103
+ tif_path = "path/to/Composite.tif"
104
+
105
+ # Run full pipeline
106
+ detect_organelles(tif_path)
107
+ count_lysosomes_per_frame(tif_path)
108
+ classify_morphology(tif_path)
109
+ analyze_shape_features(tif_path)
110
+ profile_shape_data()
111
+ track_organelles(tif_path)
112
+ track_overlay(tif_path)
113
+ analyze_motility()
114
+ analyze_colocalization(tif_path)
115
+ summarize_integrated_data()
116
+ ```
117
+
118
+ ---
119
+
120
+ ## Module Overview
121
+
122
+ | Module | Function | Inputs | Outputs | Purpose |
123
+ |--------|----------|--------|---------|---------|
124
+ | **detection** | `detect_organelles()` | TIF file | PNG, MP4, masks | Segment mitochondria and lysosomes |
125
+ | **lyso_count** | `count_lysosomes_per_frame()` | TIF file | PNG, CSV, MP4 | Quantify lysosomes per frame |
126
+ | **morphology** | `classify_morphology()` | TIF file | PNG, CSV, MP4 | Classify mitochondria as elongated vs. punctate |
127
+ | **shape_features** | `analyze_shape_features()` | TIF file | PNG, CSV | Extract circularity, solidity, aspect ratio |
128
+ | **shape_profiling** | `profile_shape_data()` | CSVs | PNG, CSV | Generate combined violin plots |
129
+ | **tracking** | `track_organelles()` | TIF file | PNG, CSV, MP4 | Track organelle trajectories |
130
+ | **tracking_overlay** | `track_overlay()` | TIF file | PNG, CSV, MP4 | Overlay tracks on intensity images |
131
+ | **motility** | `analyze_motility()` | CSVs | PNG, CSV | Compute velocity and displacement |
132
+ | **colocalization** | `analyze_colocalization()` | TIF file | PNG, CSV, MP4 | Quantify mitochondrial-lysosomal overlap |
133
+ | **summary** | `summarize_integrated_data()` | CSVs | PNG, CSV | Correlation matrix across all metrics |
134
+ | **validation** | `validate_segmentation()` | Masks | dict | Compute Dice, IoU, F1, precision, recall |
135
+ | **validation** | `validate_tracking()` | CSVs | dict | Track accuracy metrics |
136
+ | **validation** | `sensitivity_analysis()` | TIF + params | CSV, plots | Parameter sweep analysis |
137
+ | **validation** | `generate_validation_report()` | Results | PNG, CSV | Comprehensive validation summary |
138
+
139
+ ---
140
+
141
+ ## Output Files
142
+
143
+ | Step | Output Type | Example Files |
144
+ |------|--------------|---------------|
145
+ | **Detection** | PNG + MP4 | `Mito_Frame0.png`, `Mitochondria_Detection.mp4` |
146
+ | **Lysosome Count** | PNG + CSV + MP4 | `Lyso_Count_Plot.png`, `Lysosome_Counts.csv` |
147
+ | **Morphology** | PNG + MP4 + CSV | `Morphology_Frame0_Labeled.png`, `Morphology_Labeled.mp4` |
148
+ | **Shape Features** | PNG + CSV | `Shape_Distributions.png`, `Mito_ShapeMetrics.csv` |
149
+ | **Shape Profiling** | PNG + CSV | `Shape_ViolinPlots.png`, `Combined_ShapeData.csv` |
150
+ | **Tracking** | PNG + MP4 + CSV | `Cumulative_Mito.png`, `Mito_Tracks.csv` |
151
+ | **Tracking Overlay** | PNG + MP4 | `Cumulative_Composite.png`, `Composite_CumulativeTracks.mp4` |
152
+ | **Motility** | PNG + CSV | `Motility_Distributions.png`, `Motility_Scatter.png` |
153
+ | **Colocalization** | PNG + MP4 + CSV | `Colocalization_Frame0.png`, `Colocalization.csv` |
154
+ | **Summary** | PNG + CSV | `Integrated_CorrelationMatrix.png`, `Integrated_Merged_Data.csv` |
155
+ | **Validation** | PNG + CSV | `Validation_Report.png`, `Validation_Summary.csv` |
156
+
157
+ ---
158
+
159
+ ## Dependencies
160
+
161
+ **Core Requirements:**
162
+ - Python ≥ 3.9
163
+ - numpy ≥ 1.23.0
164
+ - pandas ≥ 1.5.0
165
+ - matplotlib ≥ 3.6.0
166
+ - seaborn ≥ 0.12.0
167
+ - opencv-python ≥ 4.6.0
168
+ - scikit-image ≥ 0.19.0
169
+ - scipy ≥ 1.9.0
170
+ - tifffile ≥ 2022.8.12
171
+
172
+ **Optional:**
173
+ - scikit-learn (for validation metrics)
174
+
175
+ ---
176
+
177
+ ## Visualization Design
178
+
179
+ **Colorblind-Safe Palette:**
180
+ - Mitochondria: `#0173B2` (blue)
181
+ - Lysosomes: `#DE8F05` (orange)
182
+
183
+ All visualizations use colorblind-safe colors to ensure accessibility and publication readiness.
184
+
185
+ ---
186
+
187
+ ## Statistical Notes
188
+
189
+ **Correlation Analysis (Summary Module):**
190
+ The integrated summary module uses **Spearman rank correlation** to compute relationships between extracted metrics, providing a distribution-free assessment of feature associations.
191
+
192
+ ---
193
+
194
+ ## Comparison with Existing Tools
195
+
196
+ | Feature | AutoMorphoTrack | CellProfiler | MiNA | MitoGraph | Imaris |
197
+ |---------|-----------------|--------------|------|-----------|--------|
198
+ | **Ease of Use** | High (Python API) | Medium (GUI-heavy) | Medium | Medium | Low (proprietary) |
199
+ | **Transparency** | Full (open source) | Partial | Partial | Partial | Closed |
200
+ | **Lightweight** | Yes | No | No | No | No |
201
+ | **Publication-Ready Outputs** | Yes | Yes | Partial | Partial | Yes |
202
+ | **Tracking** | Yes | Optional | Yes | Yes | Yes |
203
+ | **Shape Profiling** | Yes | Limited | Yes | Yes | Yes |
204
+ | **Colocalization** | Yes | Yes | Limited | Limited | Yes |
205
+ | **Customizable** | Yes (modular) | Yes | Limited | Limited | No |
206
+ | **Cost** | Free | Free | Free | Free | Expensive |
207
+
208
+ **What Makes AutoMorphoTrack Different:**
209
+ - **Integrated workflow**: All analyses in one package without external dependencies
210
+ - **Full transparency**: Complete source code and methodology documentation
211
+ - **Lightweight**: Minimal dependencies, fast execution
212
+ - **Publication-ready**: High-DPI outputs and colorblind-safe visualizations by default
213
+ - **Modular design**: Use only the modules you need
214
+
215
+ ---
216
+
217
+ ## AI Assistance Note
218
+
219
+ This package was developed with support from AI language models (e.g., ChatGPT, Claude). The term "AI assistance" refers to using external LLMs to help generate, review, and refine analysis code—**NOT** a built-in AI interface or algorithmic component. All algorithms are explicit, interpretable, and scientifically grounded.
220
+
221
+ ---
222
+
223
+ ## License
224
+
225
+ MIT License – See [LICENSE.md](LICENSE.md) for details.
226
+
227
+ ---
228
+
229
+ ## Citation
230
+
231
+ If you use this pipeline in your work, please cite:
232
+
233
+ ```bibtex
234
+ @article{bayati2025automorphotrack,
235
+ title={AutoMorphoTrack: Automated Organelle Tracking and Morphometric Profiling Toolkit},
236
+ author={Bayati, Armin and others},
237
+ year={2025}
238
+ }
239
+ ```
240
+
241
+ Or in text:
242
+
243
+ > **Bayati, A. et al.** AutoMorphoTrack: Automated Organelle Tracking and Morphometric Profiling Toolkit (2025)
244
+
245
+ ---
246
+
247
+ ## Documentation
248
+
249
+ For detailed documentation, examples, and tutorials, visit:
250
+ - **GitHub**: [github.com/abayatibrain/AutoMorphoTrack](https://github.com/abayatibrain/AutoMorphoTrack)
251
+ - **Issues & Support**: [github.com/abayatibrain/AutoMorphoTrack/issues](https://github.com/abayatibrain/AutoMorphoTrack/issues)
252
+
253
+ ---
254
+
255
+ ## Author
256
+
257
+ **Armin Bayati, Ph.D.**
258
+ Email: [a.bayati.brain@gmail.com](mailto:a.bayati.brain@gmail.com)
@@ -0,0 +1,222 @@
1
+ # AutoMorphoTrack
2
+
3
+ **AutoMorphoTrack** is a comprehensive, modular image-analysis pipeline for automated detection, morphology classification, shape profiling, motility tracking, and colocalization analysis of mitochondria and lysosomes in multichannel fluorescence microscopy data.
4
+
5
+ Developed by **Armin Bayati, Ph.D.**
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ AutoMorphoTrack processes time-lapse `.tif` stacks (typically two-channel: mitochondria + lysosomes) and generates **publication-ready visual and quantitative outputs** at every analysis step. The pipeline integrates seamlessly into scientific workflows and prioritizes **transparency, reproducibility, and ease of use**.
12
+
13
+ ---
14
+
15
+ ## Key Features
16
+
17
+ - **Automated organelle detection** with morphological filtering
18
+ - **Integrated tracking** of mitochondria and lysosomes across time
19
+ - **Shape profiling** with publication-ready violin plots
20
+ - **Motility analysis** with velocity and displacement quantification
21
+ - **Colocalization metrics** (Manders, Pearson coefficients)
22
+ - **Comprehensive validation tools** for segmentation and tracking accuracy
23
+ - **Colorblind-safe visualizations** throughout
24
+ - **High-resolution outputs** (600 DPI publication-ready figures)
25
+
26
+ ---
27
+
28
+ ## Installation
29
+
30
+ ### Via PyPI (Recommended)
31
+ ```bash
32
+ pip install automorphotrack
33
+ ```
34
+
35
+ ### From Source
36
+ ```bash
37
+ git clone https://github.com/abayatibrain/AutoMorphoTrack.git
38
+ cd AutoMorphoTrack
39
+ pip install -e .
40
+ ```
41
+
42
+ ### Development Install
43
+ ```bash
44
+ git clone https://github.com/abayatibrain/AutoMorphoTrack.git
45
+ cd AutoMorphoTrack
46
+ pip install -e ".[dev]"
47
+ ```
48
+
49
+ ---
50
+
51
+ ## Quick Start
52
+
53
+ ```python
54
+ from automorphotrack import (
55
+ detect_organelles,
56
+ count_lysosomes_per_frame,
57
+ classify_morphology,
58
+ analyze_shape_features,
59
+ profile_shape_data,
60
+ track_organelles,
61
+ track_overlay,
62
+ analyze_motility,
63
+ analyze_colocalization,
64
+ summarize_integrated_data
65
+ )
66
+
67
+ tif_path = "path/to/Composite.tif"
68
+
69
+ # Run full pipeline
70
+ detect_organelles(tif_path)
71
+ count_lysosomes_per_frame(tif_path)
72
+ classify_morphology(tif_path)
73
+ analyze_shape_features(tif_path)
74
+ profile_shape_data()
75
+ track_organelles(tif_path)
76
+ track_overlay(tif_path)
77
+ analyze_motility()
78
+ analyze_colocalization(tif_path)
79
+ summarize_integrated_data()
80
+ ```
81
+
82
+ ---
83
+
84
+ ## Module Overview
85
+
86
+ | Module | Function | Inputs | Outputs | Purpose |
87
+ |--------|----------|--------|---------|---------|
88
+ | **detection** | `detect_organelles()` | TIF file | PNG, MP4, masks | Segment mitochondria and lysosomes |
89
+ | **lyso_count** | `count_lysosomes_per_frame()` | TIF file | PNG, CSV, MP4 | Quantify lysosomes per frame |
90
+ | **morphology** | `classify_morphology()` | TIF file | PNG, CSV, MP4 | Classify mitochondria as elongated vs. punctate |
91
+ | **shape_features** | `analyze_shape_features()` | TIF file | PNG, CSV | Extract circularity, solidity, aspect ratio |
92
+ | **shape_profiling** | `profile_shape_data()` | CSVs | PNG, CSV | Generate combined violin plots |
93
+ | **tracking** | `track_organelles()` | TIF file | PNG, CSV, MP4 | Track organelle trajectories |
94
+ | **tracking_overlay** | `track_overlay()` | TIF file | PNG, CSV, MP4 | Overlay tracks on intensity images |
95
+ | **motility** | `analyze_motility()` | CSVs | PNG, CSV | Compute velocity and displacement |
96
+ | **colocalization** | `analyze_colocalization()` | TIF file | PNG, CSV, MP4 | Quantify mitochondrial-lysosomal overlap |
97
+ | **summary** | `summarize_integrated_data()` | CSVs | PNG, CSV | Correlation matrix across all metrics |
98
+ | **validation** | `validate_segmentation()` | Masks | dict | Compute Dice, IoU, F1, precision, recall |
99
+ | **validation** | `validate_tracking()` | CSVs | dict | Track accuracy metrics |
100
+ | **validation** | `sensitivity_analysis()` | TIF + params | CSV, plots | Parameter sweep analysis |
101
+ | **validation** | `generate_validation_report()` | Results | PNG, CSV | Comprehensive validation summary |
102
+
103
+ ---
104
+
105
+ ## Output Files
106
+
107
+ | Step | Output Type | Example Files |
108
+ |------|--------------|---------------|
109
+ | **Detection** | PNG + MP4 | `Mito_Frame0.png`, `Mitochondria_Detection.mp4` |
110
+ | **Lysosome Count** | PNG + CSV + MP4 | `Lyso_Count_Plot.png`, `Lysosome_Counts.csv` |
111
+ | **Morphology** | PNG + MP4 + CSV | `Morphology_Frame0_Labeled.png`, `Morphology_Labeled.mp4` |
112
+ | **Shape Features** | PNG + CSV | `Shape_Distributions.png`, `Mito_ShapeMetrics.csv` |
113
+ | **Shape Profiling** | PNG + CSV | `Shape_ViolinPlots.png`, `Combined_ShapeData.csv` |
114
+ | **Tracking** | PNG + MP4 + CSV | `Cumulative_Mito.png`, `Mito_Tracks.csv` |
115
+ | **Tracking Overlay** | PNG + MP4 | `Cumulative_Composite.png`, `Composite_CumulativeTracks.mp4` |
116
+ | **Motility** | PNG + CSV | `Motility_Distributions.png`, `Motility_Scatter.png` |
117
+ | **Colocalization** | PNG + MP4 + CSV | `Colocalization_Frame0.png`, `Colocalization.csv` |
118
+ | **Summary** | PNG + CSV | `Integrated_CorrelationMatrix.png`, `Integrated_Merged_Data.csv` |
119
+ | **Validation** | PNG + CSV | `Validation_Report.png`, `Validation_Summary.csv` |
120
+
121
+ ---
122
+
123
+ ## Dependencies
124
+
125
+ **Core Requirements:**
126
+ - Python ≥ 3.9
127
+ - numpy ≥ 1.23.0
128
+ - pandas ≥ 1.5.0
129
+ - matplotlib ≥ 3.6.0
130
+ - seaborn ≥ 0.12.0
131
+ - opencv-python ≥ 4.6.0
132
+ - scikit-image ≥ 0.19.0
133
+ - scipy ≥ 1.9.0
134
+ - tifffile ≥ 2022.8.12
135
+
136
+ **Optional:**
137
+ - scikit-learn (for validation metrics)
138
+
139
+ ---
140
+
141
+ ## Visualization Design
142
+
143
+ **Colorblind-Safe Palette:**
144
+ - Mitochondria: `#0173B2` (blue)
145
+ - Lysosomes: `#DE8F05` (orange)
146
+
147
+ All visualizations use colorblind-safe colors to ensure accessibility and publication readiness.
148
+
149
+ ---
150
+
151
+ ## Statistical Notes
152
+
153
+ **Correlation Analysis (Summary Module):**
154
+ The integrated summary module uses **Spearman rank correlation** to compute relationships between extracted metrics, providing a distribution-free assessment of feature associations.
155
+
156
+ ---
157
+
158
+ ## Comparison with Existing Tools
159
+
160
+ | Feature | AutoMorphoTrack | CellProfiler | MiNA | MitoGraph | Imaris |
161
+ |---------|-----------------|--------------|------|-----------|--------|
162
+ | **Ease of Use** | High (Python API) | Medium (GUI-heavy) | Medium | Medium | Low (proprietary) |
163
+ | **Transparency** | Full (open source) | Partial | Partial | Partial | Closed |
164
+ | **Lightweight** | Yes | No | No | No | No |
165
+ | **Publication-Ready Outputs** | Yes | Yes | Partial | Partial | Yes |
166
+ | **Tracking** | Yes | Optional | Yes | Yes | Yes |
167
+ | **Shape Profiling** | Yes | Limited | Yes | Yes | Yes |
168
+ | **Colocalization** | Yes | Yes | Limited | Limited | Yes |
169
+ | **Customizable** | Yes (modular) | Yes | Limited | Limited | No |
170
+ | **Cost** | Free | Free | Free | Free | Expensive |
171
+
172
+ **What Makes AutoMorphoTrack Different:**
173
+ - **Integrated workflow**: All analyses in one package without external dependencies
174
+ - **Full transparency**: Complete source code and methodology documentation
175
+ - **Lightweight**: Minimal dependencies, fast execution
176
+ - **Publication-ready**: High-DPI outputs and colorblind-safe visualizations by default
177
+ - **Modular design**: Use only the modules you need
178
+
179
+ ---
180
+
181
+ ## AI Assistance Note
182
+
183
+ This package was developed with support from AI language models (e.g., ChatGPT, Claude). The term "AI assistance" refers to using external LLMs to help generate, review, and refine analysis code—**NOT** a built-in AI interface or algorithmic component. All algorithms are explicit, interpretable, and scientifically grounded.
184
+
185
+ ---
186
+
187
+ ## License
188
+
189
+ MIT License – See [LICENSE.md](LICENSE.md) for details.
190
+
191
+ ---
192
+
193
+ ## Citation
194
+
195
+ If you use this pipeline in your work, please cite:
196
+
197
+ ```bibtex
198
+ @article{bayati2025automorphotrack,
199
+ title={AutoMorphoTrack: Automated Organelle Tracking and Morphometric Profiling Toolkit},
200
+ author={Bayati, Armin and others},
201
+ year={2025}
202
+ }
203
+ ```
204
+
205
+ Or in text:
206
+
207
+ > **Bayati, A. et al.** AutoMorphoTrack: Automated Organelle Tracking and Morphometric Profiling Toolkit (2025)
208
+
209
+ ---
210
+
211
+ ## Documentation
212
+
213
+ For detailed documentation, examples, and tutorials, visit:
214
+ - **GitHub**: [github.com/abayatibrain/AutoMorphoTrack](https://github.com/abayatibrain/AutoMorphoTrack)
215
+ - **Issues & Support**: [github.com/abayatibrain/AutoMorphoTrack/issues](https://github.com/abayatibrain/AutoMorphoTrack/issues)
216
+
217
+ ---
218
+
219
+ ## Author
220
+
221
+ **Armin Bayati, Ph.D.**
222
+ Email: [a.bayati.brain@gmail.com](mailto:a.bayati.brain@gmail.com)
@@ -33,7 +33,7 @@
33
33
  # )
34
34
  # ============================================================
35
35
 
36
- __version__ = "2.0.1"
36
+ __version__ = "2.1.0"
37
37
  __author__ = "Armin Bayati"
38
38
 
39
39
  # --- Utility Imports ---
@@ -55,6 +55,17 @@ from automorphotrack.tracking_overlay import track_overlay
55
55
  from automorphotrack.motility import analyze_motility
56
56
  from automorphotrack.colocalization import analyze_colocalization
57
57
  from automorphotrack.summary import summarize_integrated_data
58
+ from automorphotrack.temporal_dynamics import analyze_temporal_dynamics
59
+ from automorphotrack.spatial_statistics import analyze_spatial_statistics
60
+ from automorphotrack.network_analysis import analyze_network_topology
61
+
62
+ # --- Validation Module Imports ---
63
+ from automorphotrack.validation import (
64
+ validate_segmentation,
65
+ sensitivity_analysis,
66
+ validate_tracking,
67
+ generate_validation_report
68
+ )
58
69
 
59
70
  # --- Convenience Alias (optional shortcut API) ---
60
71
  __all__ = [
@@ -71,5 +82,12 @@ __all__ = [
71
82
  "track_overlay",
72
83
  "analyze_motility",
73
84
  "analyze_colocalization",
74
- "summarize_integrated_data"
85
+ "summarize_integrated_data",
86
+ "analyze_temporal_dynamics",
87
+ "analyze_spatial_statistics",
88
+ "analyze_network_topology",
89
+ "validate_segmentation",
90
+ "sensitivity_analysis",
91
+ "validate_tracking",
92
+ "generate_validation_report"
75
93
  ]
@@ -17,7 +17,7 @@ def analyze_colocalization(
17
17
  lyso_channel=1,
18
18
  out_dir="Colocalization_Outputs",
19
19
  fps=5,
20
- upscale=2.0,
20
+ upscale=4.0,
21
21
  overlay_alpha=0.6):
22
22
 
23
23
  ensure_dir(out_dir)
@@ -77,15 +77,22 @@ def analyze_colocalization(
77
77
  mito_sum.append(mito.sum())
78
78
  lyso_sum.append(lyso.sum())
79
79
 
80
- # Visualization with bright-blue overlay
81
- mito_norm = (mito / mito.max() * 255).astype(np.uint8)
82
- lyso_norm = (lyso / lyso.max() * 255).astype(np.uint8)
80
+ # Visualization with CB-safe blue (mito) / orange (lyso) overlay
81
+ mito_norm = (mito / (mito.max() + 1e-12) * 255).astype(np.uint8)
82
+ lyso_norm = (lyso / (lyso.max() + 1e-12) * 255).astype(np.uint8)
83
83
  rgb = np.zeros((*mito.shape, 3), np.uint8)
84
- rgb[..., 0], rgb[..., 1] = mito_norm, lyso_norm
84
+ # Mito → blue (1, 115, 178)
85
+ rgb[..., 0] = (mito_norm * (1 / 255)).astype(np.uint8)
86
+ rgb[..., 1] = (mito_norm * (115 / 255)).astype(np.uint8)
87
+ rgb[..., 2] = (mito_norm * (178 / 255)).astype(np.uint8)
88
+ # Lyso → orange (222, 143, 5) added on top
89
+ rgb[..., 0] = np.clip(rgb[..., 0].astype(int) + (lyso_norm * (222 / 255)).astype(int), 0, 255).astype(np.uint8)
90
+ rgb[..., 1] = np.clip(rgb[..., 1].astype(int) + (lyso_norm * (143 / 255)).astype(int), 0, 255).astype(np.uint8)
91
+ rgb[..., 2] = np.clip(rgb[..., 2].astype(int) + (lyso_norm * (5 / 255)).astype(int), 0, 255).astype(np.uint8)
85
92
 
86
93
  mask = overlap_mask.astype(bool)
87
- bright_blue_overlay = np.full_like(rgb[mask], (0, 150, 255), dtype=np.uint8)
88
- rgb[mask] = cv2.addWeighted(rgb[mask], 1 - overlay_alpha, bright_blue_overlay, overlay_alpha, 0)
94
+ white_overlay = np.full_like(rgb[mask], (255, 255, 255), dtype=np.uint8)
95
+ rgb[mask] = cv2.addWeighted(rgb[mask], 1 - overlay_alpha, white_overlay, overlay_alpha, 0)
89
96
 
90
97
  frames_out.append(upscale_frame(rgb))
91
98
 
@@ -23,7 +23,7 @@ def detect_organelles(
23
23
  out_dir="Detection_Outputs",
24
24
  mito_channel=0,
25
25
  lyso_channel=1,
26
- upscale_factor=2,
26
+ upscale_factor=4,
27
27
  fps=5):
28
28
 
29
29
  ensure_dir(out_dir)
@@ -22,7 +22,7 @@ def count_lysosomes_per_frame(
22
22
  tif_path="Composite.tif",
23
23
  out_dir="Lyso_Count_Outputs",
24
24
  lyso_channel=1,
25
- upscale_factor=2,
25
+ upscale_factor=4,
26
26
  fps=5):
27
27
 
28
28
  ensure_dir(out_dir)
@@ -34,7 +34,7 @@ def classify_morphology(
34
34
  ecc_thresh_elongated=0.80,
35
35
  area_thresh_punctate=0.03,
36
36
  ecc_thresh_punctate=0.60,
37
- upscale_factor=2,
37
+ upscale_factor=4,
38
38
  fps=5):
39
39
 
40
40
  ensure_dir(out_dir)