Ignored objects in Tracking

Hi!

I am using Ilastik for segmentation and tracking of mitochondria. The segmentation workflow works fine and I use it to extract object identities. Then, when I click on “Track!” in the tracking workflow, in the “Tracking” applet, some of the objects are seem to not be given a track Id.
I also tried exporting the results and a lot of objects are given the Track Id “1”, which I assume is for “none”.
In addition to that, when I right-click on one of these objects in the “Tracking” applet, I get a KeyError (log below).
I am having a little trouble seeing why a lot of objects (80 out of 150 in one example) are given this default Track Id and are not shown in the “Tracking” preview even when they are present in the “Objects” preview on the same applet.
Please let me now if you need any additional information and thank you for your time.

cheers!

log:
WARNING 2020-02-13 08:18:06,083 warnings 20044 20576 slot.py(1287): UserWarning: Deprecated use slot.operator property instead
WARNING 2020-02-13 08:18:06,193 warnings 20044 20576 opSimpleBlockedArrayCache.py(43): FutureWarning: Conversion of the second argument of issubdtype from dtype to np.generic is deprecated. In future, it will be treated as np.object_ == np.dtype(dtype).type.
WARNING 2020-02-13 08:18:06,195 warnings 20044 20576 opSlicedBlockedArrayCache.py(141): FutureWarning: Conversion of the second argument of issubdtype from dtype to np.generic is deprecated. In future, it will be treated as np.object_ == np.dtype(dtype).type.
ERROR 2020-02-13 08:38:09,570 hypothesesgraph 20044 20576 lineageId not found in graph node properties, call computeLineage() first!
ERROR 2020-02-13 08:38:09,570 excepthooks 20044 20576 Unhandled exception in thread: ‘MainThread’
ERROR 2020-02-13 08:38:09,570 excepthooks 20044 20576 Traceback (most recent call last):
File “E:\username\ilastik-1.3.3post2\ilastik-meta\ilastik\ilastik\applets\layerViewer\layerViewerGui.py”, line 727, in _handleEditorRightClick
self.handleEditorRightClick(dataPosition, globalWindowCoordinate)
File “E:\username\ilastik-1.3.3post2\ilastik-meta\ilastik\ilastik\applets\tracking\conservation\conservationTrackingGui.py”, line 427, in handleEditorRightClick
color = hypothesesGraph.getLineageId(time, obj)
File “E:\username\ilastik-1.3.3post2\lib\site-packages\hytra\core\hypothesesgraph.py”, line 1101, in getLineageId
return traxelgraph._getNodeAttribute(timestep, objectId, “lineageId”)
File “E:\username\ilastik-1.3.3post2\lib\site-packages\hytra\core\hypothesesgraph.py”, line 1085, in _getNodeAttribute
return self._graph.nodes[(int(timestep), int(objectId))][attribute]
File “E:\username\ilastik-1.3.3post2\lib\site-packages\networkx\classes\reportviews.py”, line 178, in getitem
return self._nodes[n]
KeyError: (0, 71)

Hi @mitoGuy,

could you give a little more detail on your workflow, like what kind of data you are using (2D+t, 3D+t, how large?) and your segmentation workflow (just pixel classification with simple segmentation exports, or pixel classification with object classification afterwards?). Which kind of images do you use for the tracking workflow?

Hope we can reproduce this/help…

Thank you for your response!

So, I just realized while writing this response that I am using “Object Identities” as binary data input and this may be the reason I am having problems with tracking. However, I don’t know what the alternative would be.
I only have mitochondria against background. When I used simple segmentation and fed its output to tracking (when I was experimenting with Ilastik before), I was able to apply the thresholding only at the tracking step, and if I was not happy about the result, I had to go back to the pixel classification workflow. This is why I preferred using the pixel + object classification workflow. But in the latter, if I skip the “object classification” applet (As I have only one class of objects, mitochondria), the “object predictions” output is empty.
So I guess my question is: Is there a way to get mitochondria as objects in a single worfklow, and then use that as input for tracking?
I am sorry if this is somewhere in the documentation and I missed it but I do not believe I did.

I still added below the details you asked for, as they may be still relevant to the question.

kind of data

3D + t, with dimensions equal to [10,15,2048,2048,1] (tzxyc) in uint16 hdf5 format .

segmentation workflow

Pixel Classification with Object Classification (in the same workflow).
In the export parameters I convert the output to uint16 and export “Object Identities”.

Which kind of images do you use for the tracking workflow?

I use uint16 hdf5 [10,15,2048,2048,1] images as raw data and the “Object Identities” as binary data (this may be the culprit)