Secondary object identification with binucleated cells

cellprofiler

#1

I’m setting up a pipeline for a series of cardiac myocyte images, which have a fairly high occurrence of binucleation; thus, while the identification of primary objects (nuclei, from a DAPI image) is quite straightforward and accurate, identifying cell borders from a fluorescent actin image is more problematic. Because the propagation method assumes a 1:1 ratio between the primary and secondary objects, I tend to see arbitrary division within a single (binucleated) cell, which happens frequently enough to cause significant error in cell counts.
One way I could see solving this problem is identifying a cell border off of a primary object location separately for both nuclei in one binucleated cell, and then comparing the two resultant outlines to see if they are, in fact, the same. However, it is my understanding that, because the distance to the next primary object is actually taken as an input in the propagation calculation, the cell borders are not, in fact, calculated independently of adjacent objects.
Does anyone have any ideas for modifying the existing submodule function, or writing a new module, or even using existing functions to account for this issue? Thanks in advance for your help.


#2

Hello,
There are a few things you can try:

  1. Identify the cell border first using IdentifyPrimAutomatic
    2)Then use IdentifyPrimAutomatic to identify the binucleates using a ‘Per Object’ method. (If you need to see how the Per Object thresholding works, try the ‘speckles’ pipeline on the example page).

OR

  1. Identify the binucleates using IdentifyPrimAutomatic
    2)Identify the cellborders using IdentifyPrimAutomatic
    3)Relate the “children” (ie binucleates) to the ‘parents’ (cells).

If this doesn’t help, please upload a picture to an online photo album (ie picasa by Google) and post the link for us to see.
thanks for the great question.
martha


#3

My apologies for taking so long to reply, but I’d like to revisit this topic.
The problem with both of your suggestions is that identifySecondary is really a much more effective way to correctly separate cells than identifyPrimary- using the nuclear locations as seeds is just really clever and effective, and the gain I would get in correctly identifying binucleates would be far outweighed by the loss of border accuracy.
So, barring any post-processing that would recognize and join binucleates artificially separated by my processing, in looking at my images, it seems that I can eliminate 1/2 to 3/4 of the binucleates if I treat nuclei that are very close together as a single nuclei. So while the neighbors module seems ideally suited to get these objects, my current problem is just past that: I can only exclude or include the objects- I cannot either exclude one or join the two together as “brother” objects (say, as opposed to parent-child).
Right now what sometimes works is applying a largish filter (a bit larger than the objects themselves) on my nuclei to try to get nuclei that are close together to be blurred into a single object that can then be recognized in idPrimary. I’m not really happy with this, because it seems like there should be a better way. As per your suggestion, I have loaded a couple image sets with picasa- I have two set of nuclei/actin images- northwest of center on both sets there is a binucleate- in one set, the smooting method works, but in the other, it does not. The images are at picasaweb.google.com/BrooksTaylorJr
Any suggestions? Thanks again for your help.
-Brooks Taylor


#4

Well, I think it would be worth trying to identify each nucleus (separately), then expand the objects (by using ExpandOrShrink), then you need to convert the object to an image (using ConvertToImage), then identify the new nuclei using IdentifyPrimAutomatic, and finally identify the borders using IDentifySecondary.
Hope that helps,
martha