TrackObjects IntegratedDistance sometimes decreases?

I’m tracking cells and then exporting the results to R and making some plots. I’m a little confused as to the meaning of the variable TrackObjects_IntegratedDistance. I thought from the documentation that this is

The total distance traveled by the object during the lifetime of the object

And so it would be nondecreasing. I"m not finding this to be the case (see image for 3 randomly selected tracks).


You’re right that it shouldn’t decrease. My first guess is that maybe there’s an issue in how you’re collating the tracks at the end (it’s not as intuitive as it could be, sadly)- how specifically are the tracks recompiled? Are you using ObjectNumber rather than TrackObjects_Label maybe? Are there merges and splits that are causing apparent “decreases” due to multiple tracks being assigned to the same Label? More info about how you’re doing this would be great. Thanks!

1 Like

That was the problem: I was using ObjectNumber instead of TrackObjects_Label.

Ok - so I’m seeing something a bit strange. I am tracking objects across 9 images. For image 3 I find two different objects which have the same TrackObjects_Label. Isn’t it expected to be unique within any given image? If not, then what would be a “unique key” I can use?


It is expected to be unique unless the object has split or merged- from the help:

Label: Each tracked object is assigned a unique identifier (label). Child objects resulting from a split or merge are assigned the label of the ancestor.

Here’s a post from our previous software engineer about why that was done and one thing you can do to try to get around it; you’ll notice that thread is super old (your forum answerer was only a forum asker at the time!), so I think we could potentially revisit the discussion, but for now there’s no way to ensure that you’ll have a single unique metric to identify the tracks. Sorry!

1 Like

Thanks, Beth. Suppose I wanted to restrict my analysis only to cells that are present across all images and never split. How would I find those?

I don’t think there’s a way to do it within CP, but in your downstream analysis I’d think the simplest thing to do would be to group your objects by movie and label (which it seems from your graph that you’re already doing), then filter for groupings where

[number of entries under TrackObjects_Label for that movie]==[max(TrackObjects_Lifetime for that Label)]==[number of frames in your movie]

That will ensure you only have cells that are there the whole time (since the maximum Lifetime will be equal to the number of frames) and that each frame has only one object associated with that Label (since the number of frames and labeled objects will be exactly the same). Does that make sense?

Right. I just need to be able to figure it out within my module, so your approach is good.

Do you mean [number of entries under TrackObjects_Label for that label]?


More or less, yes; what probably would have been more clear was “for that label in that movie” (I’m assuming you’re doing this not just in one but in several movies). Thanks for pointing that out!

@bcimini Looks like I will need to do something special when there is mitosis. I’m thinking that if there are n eventual descendants of a given cell then I should compute n separate TrAM values. Basically each of the progeny would inherit the early time measurements from its ancestors, and then TrAM would be computed across those entire trajectories.

But this means I need to:

  1. Be able to connect up all the parents/daughter relationships

  2. Either find a way to assign TrAM values to parents through some combination of their offspring TrAM or simply don’t assign them any values

Do you know what rules I should use to discover mitoses? Also if I wanted to assign a unique identifier to each cell, how would I best do that?


FWIW, the LAP tracking method does have a mitosis calculation score, though I don’t know that much about how it’s calculated (it should be well documented in the help though).

The link I posted up-thread has advice on how to follow the parent-daughter relationships which should hold through mitoses, which helps with your first part (and with the creation of a unique identifier); I don’t know enough about TrAM to say for sure whether ignoring those cells or summing the daughters will give a better result.