Using the plugin on 3D+t dataset
Closed this issue · 3 comments
I want to apply the plugin on a 3D timelapse dataset (Platynereis dumerilii from Ozpolat, B. et al licensed by CC BY 4.0). As output I got the Tracks layer but the visualization was missing and I neither got the track_id_image nor the related properties.
What I did in Detail:
File
→ Open Folder...
→ open data which is saved as single timepoints in a folder
File Format according to napari-layer-details-display
: [35,103,256,256] which corresponds to [t,z,y,x]
Tools
→ Segmentation/labeling
→ Voronoi-otsu-labeling(clesperanto)
Tools
→ Tracking
→ Track labeled objects (centroid-based, LapTrack)
During the process was running, I got this output:
size: 103
Labels data seems 2D+t, converting to 3D+t...
No centroids found in measured features; determining centroid using napari-skimage-regionprops...
analyzing frame 0
size: 103
WARNING: QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
14:49:37 WARNING QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
analyzing frame 1
analyzing frame 2
analyzing frame 3
analyzing frame 4
analyzing frame 5
analyzing frame 6
analyzing frame 7
analyzing frame 8
analyzing frame 9
analyzing frame 10
analyzing frame 11
analyzing frame 12
analyzing frame 13
analyzing frame 14
analyzing frame 15
analyzing frame 16
analyzing frame 17
analyzing frame 18
analyzing frame 19
analyzing frame 20
analyzing frame 21
analyzing frame 22
analyzing frame 23
analyzing frame 24
analyzing frame 25
analyzing frame 26
analyzing frame 27
analyzing frame 28
analyzing frame 29
analyzing frame 30
analyzing frame 31
analyzing frame 32
analyzing frame 33
analyzing frame 34
followed by this error message:
File ~\mambaforge\envs\laptrack_env\lib\site-packages\psygnal\_signal.py:927, in SignalInstance.emit(self=<SignalInstance 'changed' on PushButton(value=False, annotation=None, name='call_button')>, check_nargs=False, check_types=False, asynchronous=False, *args=(False,))
924 sd.start()
925 return sd
--> 927 self._run_emit_loop(args)
self = <SignalInstance 'changed' on PushButton(value=False, annotation=None, name='call_button')>
args = (False,)
928 return None
File ~\mambaforge\envs\laptrack_env\lib\site-packages\psygnal\_signal.py:974, in SignalInstance._run_emit_loop(self=<SignalInstance 'changed' on PushButton(value=False, annotation=None, name='call_button')>, args=(False,))
972 caller.cb(args)
973 except Exception as e:
--> 974 raise EmitLoopError(
caller = <psygnal._weak_callback._StrongFunction object at 0x0000024709C32FA0>
args = (False,)
975 slot_repr=repr(caller), args=args, exc=e
976 ) from e
978 return None
EmitLoopError: calling <psygnal._weak_callback._StrongFunction object at 0x0000024709C32FA0> with args=(False,) caused TypeError: Function call with ambiguous argument types.
And it looked like this. The Tracks layer was not visualized:
(dataset: Platynereis dumerilii from Ozpolat, B. et al licensed by CC BY 4.0)
But in the layer list it seemed like there should be an output:
Best,
Mara
Short update: I do not encounter this Issue when I merge the timepoints into one tif-file before opening it in napari :) . So it seems to be related to opening from a folder of timepoints.
As discussed, just for the record: I presume this issue can be avoided by using this menu before doing the tracking:
- Tools > Utilities > Convert to file-backed timelapse data (time-slicer)
read more: https://www.napari-hub.org/plugins/napari-time-slicer#working-with-large-on-the-fly-processed-datasets
You're right, I tried it out and will mention the napari-time-slicer in the blog post.
Thanks a lot!