haesleinhuepf/napari-laptrack

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:

FileOpen 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]

ToolsSegmentation/labelingVoronoi-otsu-labeling(clesperanto)

ToolsTrackingTrack 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:
issue_laptrack
(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:
issue2

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:

You're right, I tried it out and will mention the napari-time-slicer in the blog post.
Thanks a lot!