Difficulty in tracking cells in the following image set

Hi, I am currently trying to draw a lineage tree for this time-elapsed microscopy images. However, I am unable to track the cells. They show up in some frames and disappear in other. Could you please direct me to what is going wrong in my current pipeline?

Thank you very much.
Test_project_q_help.cpproj (107.2 KB)

Please help. I am stuck with the pipeline and cell identification.

In general your pipeline seems correctly configured but without images it’s impossible to find the specific error. Try stepping through your movie in test mode one image at a time with IdentifyPrimaryObjects and see if you agree with its segmentation- if not, adjust those parameters. If the segmentation is good but your objects ARE actually moving in and out of view, try using the LAP tracking method instead of Distance- it allows you to have tracks where objects disappear and then return.

CP_new_contrast_60.cpproj (467.1 KB)

this is the current pipeline I am using as per your recommendations with LAP model but still not able to find the correct lineage tree. Thank you very much for your reply.

Did you first determine if it was a segmentation issue or a tracking issue? LAP won’t fix it if the segmentation is bad.

Also, the way LAP works is by re-stitching the tracks together at the end of the group, so if you don’t run the second half (the stitching) you won’t see the correct results. Also therefore the “Labels” that CP assigns on an image-by-image basis may change, so you can’t rely on what you see in the module, you have to let the run complete and then check the labels in your database/spreadsheet or with something like CellProfilerTracer.

Yes the segmentation works fine, I detect five cells in few frames but in 4 frames the number of objects increase to six and in 2 frames to six objects. However, even for the frames with five objects the tracker using cell profiler analyst didn’t seem to plot the lineage tree correctly as new objects identified are given new labels. I have included here the database file generated with the pipeline.

Thank you very much for your reply and guidance.
DefaultDB.properties (7.1 KB)
DefaultDB.properties (7.1 KB)

I got pretty good accuracy by using Distance Mode with the radius set to 30- everything was tracked correctly except for that when the cell in the top left moves off screen and comes back it is now a new object- see Tracer screenshot below. I also tried the LAP method but the fact that your cell that leaves and comes back is around another cell ended up messing with the results. This seems pretty good to me, but if you have few enough cells per movie and few enough movies that you’re able and willing to edit each by hand something that allows you to do that like ParticleTracker or TrackMate or Icy may be a better fit for this experiment- those tools are designed for smaller numbers of movies but more flexibility and customizability, CellProfiler’s advantage is you can use it on many movies quickly and easily (in addition to the large number of metrics it can generate).

Good luck!

Thank you very much for your reply. I am really grateful to your for showing me the exact problem and guiding me so well.
I am dealing with a time-lapse movie of 2302 frames and to draw the lineage tree for the entire movie needs me to use LAP for tracking down the cells correctly and fitting in the merge and split events and cell missing events. However, I am not able to get the correct lineage for 2302 frames. I tried doing the method recommended by you. But towards the end of the movie (1900-2302 frames) the cells are not located nicely. I have two questions?
A) How can I fix the detection of all cells in the pipeline itself for all the frames?
B) I know that I can optimize the parameters best for detection but still there would be some cell miss events in certain frames. For that I need to use LAP to track the cells and fill in the tracks. Could you suggest me how to do that in this pipeline? Once

again thanks a lot for all the help.
I am attaching here the last 100 frames in the movie.
I really look forward to work on the pipeline to track the cells using Cell profiler.

Embedding the images like that requires me (or anyone else who wants to help) to download each one individually; a zip file would’ve really be more helpful. As it is your previous pipeline is close enough to right that I don’t think I can really improve it on my end; it’s something I can guide you in how to do generally but in the end you need to do it using your knowledge of the biology, the goals, and the whole movie or movies in question.

First, big picture- is there something different about those final frames that a) makes them biologically more interesting and important than the previous part of the movie b) makes them difficult to detect?

a) If you’re getting good tracing for the first 80%+ of the movie, that speaks well of your imaging technique and the overall accuracy of the tracking method. It’s worth considering how much time investment you want to put in improving this- again, it depends on details of your experiment and your own priorities. If it’s going to take you twice as long to set up the tracking for only an additional 20% increase in points tracked, is it worth it?

b) If you look at all of your frames as a whole, are the ones that track well vs poorly more or less crowded maybe? Are you having an issue because of bleaching of your fluorophore over time perhaps? That’ll give you an idea of what might be going wrong and how to fix it (ie if it’s bleaching, maybe you need to use different exposure conditions and/or include a Rescale module in your pipeline, if it’s because of crowding change your seeding conditions and/or spend some time perfecting the declumping settings in your IdentifyPrimaryObjects module).

As for the specific questions:

A) How can I fix the detection of all cells in the pipeline itself for all the frames?

Open up your pipeline in test mode and use “Choose image set” to navigate to a frame where it’s doing a poor job of segmenting and spend some time in the IdentifyPrimaryObjects module to see if you can improve it. Experiment with putting Rescale, Enhance, or Smooth modules in and segmenting on those instead of the raw. Try it for a few frames, then jump back to an earlier time point to make sure you haven’t wrecked the segmentation there- you may want to have a few different copies of your pipelines going or work in something like GitHub that has version control so that you make sure you can always get back to what you have now. It may take a few iterations, but hopefully you’ll find a more robust segmentation.

B) I know that I can optimize the parameters best for detection but still there would be some cell miss events in certain frames. For that I need to use LAP to track the cells and fill in the tracks. Could you suggest me how to do that in this pipeline?

Again, you’ll have to play with it a few frames at a time- if your cells don’t divide during the movie you may be able to set the split and merge costs to 1, and you can use the fact that you know you got good tracking with a radius of about 30 pixels in Distance mode so something comparable to that is probably good for your pixel radius in this mode too. Spend some time reading the help for that module, there are good tips for how to set the different costs and how to troubleshoot it.

Finally, like I mentioned in my previous post, if you need to track every single one of these cells across every frame and have every track editable after the fact, CP may not be the right tool for you. Anytime you’re going to completely automate the process and make it un-editable, as CP does, you sacrifice some amount of accuracy for speed of calculation and ease of scale up. We can minimize the inaccuracy with the steps above but it will never be 0, so if that’s unacceptable to your final needs you should use a tool that gives you the manual control you’re after.

Thank you so much for your detailed explanation. This helped me a lot to understand the specific details of pipeline and how I should modify my pipeline to get results. Over the weekend, I was able to work on my pipeline and got some results for my input movie. I have generated a properties file for my first 400 frames which when viewed on CPA tracer works fine. However, when I try to run a properties file for 600 frames, the CPA tracer fails and it shows CPA not responding. Could you please tell what can be wrong?
Attached here it the file for 600 frames.
Thank you once again for all the help and guidance. I am so grateful to you.
Op_1_600_1.zip (8.6 MB)

I’m assuming nothing is different in your pipeline between the 400 and 600 frames other than the list of input files?

When you say CPA tracer fails, what do you mean? Does CPA open your properties file and start correctly, and just freezes when you try to open tracer? That could be a memory issue- in that case, I’d recommend trying to find a bigger computer with more memory to run it on. If you mean something different, please let me know.

Thank you for explaining this.