celldetective 1.3.9.post4__tar.gz → 1.4.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.
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/PKG-INFO +24 -16
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/README.md +17 -14
- celldetective-1.4.0/celldetective/__init__.py +1 -0
- celldetective-1.4.0/celldetective/_version.py +1 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/events.py +2 -4
- celldetective-1.4.0/celldetective/extra_properties.py +569 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/InitWindow.py +33 -45
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/__init__.py +1 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/about.py +19 -15
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/analyze_block.py +34 -19
- celldetective-1.4.0/celldetective/gui/base_components.py +23 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/btrack_options.py +26 -34
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/classifier_widget.py +71 -80
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/configure_new_exp.py +113 -17
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/control_panel.py +68 -141
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/generic_signal_plot.py +9 -12
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/gui_utils.py +49 -21
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/json_readers.py +5 -4
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/layouts.py +246 -22
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/measurement_options.py +32 -17
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/neighborhood_options.py +10 -13
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/plot_measurements.py +21 -17
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/plot_signals_ui.py +131 -75
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/process_block.py +180 -123
- celldetective-1.4.0/celldetective/gui/processes/compute_neighborhood.py +594 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/processes/measure_cells.py +5 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/processes/segment_cells.py +27 -6
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/processes/track_cells.py +6 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/retrain_segmentation_model_options.py +12 -20
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/retrain_signal_model_options.py +57 -56
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/seg_model_loader.py +21 -62
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/signal_annotator.py +139 -72
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/signal_annotator2.py +431 -635
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/signal_annotator_options.py +8 -11
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/survival_ui.py +49 -95
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/tableUI.py +28 -25
- celldetective-1.4.0/celldetective/gui/thresholds_gui.py +714 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/viewers.py +106 -39
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/workers.py +9 -3
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/io.py +73 -27
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/measure.py +63 -27
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/neighborhood.py +342 -268
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/preprocessing.py +25 -17
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/relative_measurements.py +50 -29
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/scripts/analyze_signals.py +4 -1
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/scripts/measure_relative.py +4 -1
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/scripts/segment_cells.py +0 -6
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/scripts/track_cells.py +3 -1
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/scripts/train_segmentation_model.py +7 -4
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/signals.py +29 -14
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/tracking.py +7 -2
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/utils.py +36 -8
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective.egg-info/PKG-INFO +24 -16
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective.egg-info/SOURCES.txt +2 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective.egg-info/requires.txt +4 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_qt.py +21 -21
- celldetective-1.3.9.post4/celldetective/__init__.py +0 -4
- celldetective-1.3.9.post4/celldetective/_version.py +0 -1
- celldetective-1.3.9.post4/celldetective/extra_properties.py +0 -273
- celldetective-1.3.9.post4/celldetective/gui/thresholds_gui.py +0 -1318
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/LICENSE +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/__main__.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/datasets/segmentation_annotations/blank +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/datasets/signal_annotations/blank +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/filters.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/DL-segmentation-strategy.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/Threshold-vs-DL.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/cell-populations.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/exp-structure.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/feature-btrack.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/neighborhood.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/prefilter-for-segmentation.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/preprocessing.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/propagate-classification.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/track-postprocessing.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/help/tracking.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/processes/downloader.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/processes/train_segmentation_model.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/processes/train_signal_model.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/gui/styles.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/icons/logo-large.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/icons/logo.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/icons/signals_icon.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/icons/splash-test.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/icons/splash.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/icons/splash0.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/icons/survival2.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/icons/vignette_signals2.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/icons/vignette_signals2.svg +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/links/zenodo.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/pair_signal_detection/blank +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/segmentation_effectors/blank +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/segmentation_effectors/ricm_bf_all_last/config_input.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/segmentation_effectors/ricm_bf_all_last/ricm_bf_all_last +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/segmentation_effectors/ricm_bf_all_last/training_instructions.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/segmentation_effectors/test-transfer/config_input.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/segmentation_effectors/test-transfer/test-transfer +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/segmentation_generic/blank +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/segmentation_targets/blank +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/classification_loss.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/classifier.h5 +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/config_input.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/log_classifier.csv +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/log_regressor.csv +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/regression_loss.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/regressor.h5 +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/scores.npy +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/test_confusion_matrix.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/test_regression.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/validation_confusion_matrix.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/NucCond/validation_regression.png +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/signal_detection/blank +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/tracking_configs/biased_motion.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/tracking_configs/mcf7.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/tracking_configs/no_z_motion.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/tracking_configs/ricm.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/models/tracking_configs/ricm2.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/regionprops/__init__.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/regionprops/_regionprops.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/regionprops/props.json +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/scripts/measure_cells.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/scripts/segment_cells_thresholds.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/scripts/train_signal_model.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective/segmentation.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective.egg-info/dependency_links.txt +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective.egg-info/entry_points.txt +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective.egg-info/not-zip-safe +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/celldetective.egg-info/top_level.txt +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/setup.cfg +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/setup.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/__init__.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_events.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_filters.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_io.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_measure.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_neighborhood.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_preprocessing.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_segmentation.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_signals.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_tracking.py +0 -0
- {celldetective-1.3.9.post4 → celldetective-1.4.0}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: celldetective
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.0
|
|
4
4
|
Summary: description
|
|
5
5
|
Home-page: http://github.com/remyeltorro/celldetective
|
|
6
6
|
Author: Rémy Torro
|
|
@@ -44,12 +44,17 @@ Requires-Dist: h5py
|
|
|
44
44
|
Requires-Dist: cliffs_delta
|
|
45
45
|
Requires-Dist: requests
|
|
46
46
|
Requires-Dist: trackpy
|
|
47
|
+
Requires-Dist: prettyprint
|
|
48
|
+
Requires-Dist: pandas
|
|
49
|
+
Requires-Dist: matplotlib
|
|
50
|
+
Requires-Dist: prettytable
|
|
47
51
|
Dynamic: author
|
|
48
52
|
Dynamic: author-email
|
|
49
53
|
Dynamic: description
|
|
50
54
|
Dynamic: description-content-type
|
|
51
55
|
Dynamic: home-page
|
|
52
56
|
Dynamic: license
|
|
57
|
+
Dynamic: license-file
|
|
53
58
|
Dynamic: requires-dist
|
|
54
59
|
Dynamic: summary
|
|
55
60
|
|
|
@@ -183,26 +188,29 @@ For more information about how to get started, please check the [documentation](
|
|
|
183
188
|
# How to cite?
|
|
184
189
|
|
|
185
190
|
If you use this software in your research, please cite the
|
|
186
|
-
[Celldetective](https://
|
|
187
|
-
paper (currently preprint):
|
|
191
|
+
[Celldetective](https://elifesciences.org/reviewed-preprints/105302)
|
|
192
|
+
paper (currently a reviewed preprint at eLife):
|
|
188
193
|
|
|
189
194
|
``` raw
|
|
190
|
-
@article
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
195
|
+
@article{torroCelldetectiveAIenhancedImage2025,
|
|
196
|
+
title = {Celldetective: An {{AI-enhanced}} Image Analysis Tool for Unraveling Dynamic Cell Interactions},
|
|
197
|
+
shorttitle = {Celldetective},
|
|
198
|
+
author = {Torro, Rémy and Díaz-Bello, Beatriz and Arawi, Dalia El and Dervanova, Ksenija and Ammer, Lorna and Dupuy, Florian and Chames, Patrick and Sengupta, Kheya and Limozin, Laurent},
|
|
199
|
+
date = {2025-03-10},
|
|
200
|
+
journaltitle = {eLife},
|
|
201
|
+
volume = {14},
|
|
202
|
+
publisher = {eLife Sciences Publications Limited},
|
|
203
|
+
doi = {10.7554/eLife.105302.1},
|
|
204
|
+
url = {https://elifesciences.org/reviewed-preprints/105302},
|
|
205
|
+
urldate = {2025-03-20},
|
|
206
|
+
abstract = {A current challenge in bioimaging for immunology and immunotherapy research lies in analyzing multimodal and multidimensional data that capture dynamic interactions between diverse cell populations. Here, we introduce Celldetective, an open-source Python-based software designed for high-performance, end-to-end analysis of image-based in vitro immune and immunotherapy assays. Purpose-built for multicondition, 2D multichannel time-lapse microscopy of mixed cell populations, Celldetective is optimized for the needs of immunology assays. The software seamlessly integrates AI-based segmentation, Bayesian tracking, and automated single-cell event detection, all within an intuitive graphical interface that supports interactive visualization, annotation, and training capabilities. We demonstrate its utility with original data on immune effector cell interactions with an activating surface, mediated by bispecific antibodies, and further showcase its potential for analyzing extensive sets of pairwise interactions in antibody-dependent cell cytotoxicity events.},
|
|
207
|
+
langid = {english},
|
|
208
|
+
file = {/home/torro/Zotero/storage/VFYBBMQF/Torro et al. - 2025 - Celldetective an AI-enhanced image analysis tool .pdf;/home/torro/Zotero/storage/UGMCKKST/105302.html}
|
|
201
209
|
}
|
|
202
210
|
```
|
|
203
211
|
|
|
204
212
|
Make sure you to cite the papers of any segmentation model (StarDist,
|
|
205
|
-
Cellpose) or tracker (bTrack) you used through Celldetective.
|
|
213
|
+
Cellpose) or tracker (bTrack, TrackPy) you used through Celldetective.
|
|
206
214
|
|
|
207
215
|
# Bibliography
|
|
208
216
|
|
|
@@ -128,26 +128,29 @@ For more information about how to get started, please check the [documentation](
|
|
|
128
128
|
# How to cite?
|
|
129
129
|
|
|
130
130
|
If you use this software in your research, please cite the
|
|
131
|
-
[Celldetective](https://
|
|
132
|
-
paper (currently preprint):
|
|
131
|
+
[Celldetective](https://elifesciences.org/reviewed-preprints/105302)
|
|
132
|
+
paper (currently a reviewed preprint at eLife):
|
|
133
133
|
|
|
134
134
|
``` raw
|
|
135
|
-
@article
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
135
|
+
@article{torroCelldetectiveAIenhancedImage2025,
|
|
136
|
+
title = {Celldetective: An {{AI-enhanced}} Image Analysis Tool for Unraveling Dynamic Cell Interactions},
|
|
137
|
+
shorttitle = {Celldetective},
|
|
138
|
+
author = {Torro, Rémy and Díaz-Bello, Beatriz and Arawi, Dalia El and Dervanova, Ksenija and Ammer, Lorna and Dupuy, Florian and Chames, Patrick and Sengupta, Kheya and Limozin, Laurent},
|
|
139
|
+
date = {2025-03-10},
|
|
140
|
+
journaltitle = {eLife},
|
|
141
|
+
volume = {14},
|
|
142
|
+
publisher = {eLife Sciences Publications Limited},
|
|
143
|
+
doi = {10.7554/eLife.105302.1},
|
|
144
|
+
url = {https://elifesciences.org/reviewed-preprints/105302},
|
|
145
|
+
urldate = {2025-03-20},
|
|
146
|
+
abstract = {A current challenge in bioimaging for immunology and immunotherapy research lies in analyzing multimodal and multidimensional data that capture dynamic interactions between diverse cell populations. Here, we introduce Celldetective, an open-source Python-based software designed for high-performance, end-to-end analysis of image-based in vitro immune and immunotherapy assays. Purpose-built for multicondition, 2D multichannel time-lapse microscopy of mixed cell populations, Celldetective is optimized for the needs of immunology assays. The software seamlessly integrates AI-based segmentation, Bayesian tracking, and automated single-cell event detection, all within an intuitive graphical interface that supports interactive visualization, annotation, and training capabilities. We demonstrate its utility with original data on immune effector cell interactions with an activating surface, mediated by bispecific antibodies, and further showcase its potential for analyzing extensive sets of pairwise interactions in antibody-dependent cell cytotoxicity events.},
|
|
147
|
+
langid = {english},
|
|
148
|
+
file = {/home/torro/Zotero/storage/VFYBBMQF/Torro et al. - 2025 - Celldetective an AI-enhanced image analysis tool .pdf;/home/torro/Zotero/storage/UGMCKKST/105302.html}
|
|
146
149
|
}
|
|
147
150
|
```
|
|
148
151
|
|
|
149
152
|
Make sure you to cite the papers of any segmentation model (StarDist,
|
|
150
|
-
Cellpose) or tracker (bTrack) you used through Celldetective.
|
|
153
|
+
Cellpose) or tracker (bTrack, TrackPy) you used through Celldetective.
|
|
151
154
|
|
|
152
155
|
# Bibliography
|
|
153
156
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from ._version import __version__
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.4.0"
|
|
@@ -52,7 +52,7 @@ def switch_to_events(classes, event_times, max_times, origin_times=None, left_ce
|
|
|
52
52
|
>>> event_times = [5, 10, 15]
|
|
53
53
|
>>> max_times = [20, 20, 20]
|
|
54
54
|
>>> origin_times = [0, 0, 5]
|
|
55
|
-
>>> events, survival_times =
|
|
55
|
+
>>> events, survival_times = switch_to_events(classes, event_times, max_times, origin_times, FrameToMin=0.5)
|
|
56
56
|
# This would process the events considering left censorship and convert survival times to minutes.
|
|
57
57
|
|
|
58
58
|
"""
|
|
@@ -189,6 +189,7 @@ def compute_survival(df, class_of_interest, t_event, t_reference=None, FrameToMi
|
|
|
189
189
|
assert class_of_interest in cols,"The requested class cannot be found in the dataframe..."
|
|
190
190
|
assert t_event in cols,"The event time cannot be found in the dataframe..."
|
|
191
191
|
left_censored = False
|
|
192
|
+
first_detections = None
|
|
192
193
|
|
|
193
194
|
if not pairs:
|
|
194
195
|
groupby_cols = ['position','TRACK_ID']
|
|
@@ -209,10 +210,7 @@ def compute_survival(df, class_of_interest, t_event, t_reference=None, FrameToMi
|
|
|
209
210
|
assert t_reference in cols,"The reference time cannot be found in the dataframe..."
|
|
210
211
|
first_detections = df.groupby(groupby_cols)[t_reference].max().values
|
|
211
212
|
|
|
212
|
-
|
|
213
|
-
print(f"{classes=} {event_times=} {max_times=} {first_detections=}")
|
|
214
213
|
events, survival_times = switch_to_events(classes, event_times, max_times, origin_times=first_detections, left_censored=left_censored, FrameToMin=FrameToMin, cut_observation_time=cut_observation_time)
|
|
215
|
-
print(f"{events=} {survival_times=}")
|
|
216
214
|
|
|
217
215
|
ks = KaplanMeierFitter()
|
|
218
216
|
if len(events)>0:
|