TrackObjects data columns

I’m quite new to CP, but I love it already. I have some questions regarding the data output by TrackObjects. The columns in the .csv file differ a bit from what is in the module help information.

My application is to try to assemble lineage trees within an exponentially growing culture of mammalian cells. Each starting cell is expected to divide several times during the culture, and some cells will also die. Eventually, I hope to quantitate rates of cell division and cell death under different culture conditions. I have been examining the output from the Tracking example. My questions are:

  1. Will “TrackObjects_Label” identify the entirety of each cell lineage no matter how many times its members divide? That is, will all cells derived from one starting cell always retain the starting label? If so, this might be a very convenient piece of information.

  2. Does “TrackObjects_Lifetime” indicate the number of frames since the lineage was first founded? That is, it is not reset in any way by objects splitting? This seems to be the case. I might have assumed that the lifetime would reset to zero upon object splitting. I like it better as it is, but perhaps the documentation could be more clear since the “lifetime of an object” is confusing when one object begets new ones.

  3. What is “TrackObjects_ParentGroupIndex” and how does it relate to “TrackObjects_ParentObjectNumber?”

  4. The .csv has columns for “ObjectNumber” and “Number_Object_Number?” Are they the same? If not, which is used for “TrackObjects_ParentObjectNumber?”

That’s all I can think of for now…

Thank you very much,

Hi Ben,

Correct, the starting label is always retained. However, starting a new label is also useful upon splitting or merging; we are still considering how to best annotate such events.

You are correct; Lifetime does not reset at splitting or merging, in part due to the explanation in question 1.

The group index is the index into the group of images that comprise a movie (as opposed to ImageNumber which the index into the full image set of all movies together). The object number is the index into each object for a given image. TrackObjects records the parent group indices and object indices for each object in the current frame so you can find which object in the prior frame each object came from.

They are identical. Number_Object_Number was included since some users wanted access to the object number for display purposes.


I have one recommendation for “label” behavior. Since both types of information are useful, I would use the term “lineage” for what “label” is tracking now. To me, this makes it more clear that it will stay the same throughout the image series and through object splitting. Then “label” is free to change with split or merges. The user could choose how they want the image annotated.

I would also request columns with flags for new objects, splits or merges. Right now, I need to infer these events from the existing data. I’m sure I will figure it out, but it will take a little time. (I am using the overlap algorithm, if that makes a difference. So far, LAP has not worked well for me, but that is a topic for another post).


This is something that we are currently working on, since it will enable other measures of lineage stability.