Using objects from a previous cycle

Hi there,

I am analyzing time-lapse images of budding yeast, and I’m wondering if there’s any way to access objects generated in a previous cycle?

What I would like to do is use the previous frame in the time lapse to help inform the segmentation of the current frame. The cells don’t move around, and buds tend to come off of the side of the mother rather than displacing cells. The problem I’m trying to solve is that every once in a while a nucleus disappears for only one frame (perhaps due to the cell cycle or being out of focus), and using the cells identified from the previous image would help keep that cell from dropping out of the analysis for a frame. Here’s a brief description of what that pipeline would look like:

(1) LoadImages
- Cells and nuclei from time n-1 (for the first round starting with time point 2, this would be an existing file from another run of CellProfiler)
- Unsegmented cell and nuclei images from time n
(2) IdentifyPrimaryObjects - Identify fluorescently labeled nuclei
(3) Various processing to merge the current nuclei with cells and nuclei from time n-1, which in the end maintains the nuclei identified in (2) and adds a nucleus for any cell that dropped out in the current frame
(4) IdentifySecondaryObjects - Identify cells with fluorescently labeled cytoplasm using the new nuclei from (3)
(5) SaveImages - save the cells and nuclei from the current frame for use in (1) for the next cycle

I think I’ve figured out a pipeline that works for combining the previous cells/nuclei and the current nuclei to yield pretty good segmentation results, but loading images from the previous cycle doesn’t seem to work outright (it gives an error that files are missing for LoadImages). Is there some built in way to access data from a previous cycle?

I figured out a way to do this – I used LoadSingleImage to load the first image of the set, then save the current image with the same file name at the end of the pipeline. Then that image is loaded for the next round.

Another approach is to use the LoadData module. It takes a comma-delimited text file of image names and paths, with each row corresponding to the images that are processed during one image cycle through the pipeline. So you have the option of building the list of files you want processed in CellProfiler, in whatever order you choose.