Cellprofiler won't correctly filter transfected and untransfected cells


Today I had to make some minor adjustments to an already established (and normally working pipeline). A big part of the pipeline is the filtering of cells transfected with HA-tag and untransfected cells.

I do this by filtering transfected cells through a minimum standard deviation value x of HAtag and a minimum median intensity value y of HAtag. For the untransfected cells I do the opposite, requiring the cells to have a maximum value of x and y for standard deviation and median intensity of HAtag.

This normally works fine, but now the pipeline won’t identify any untransfected cells, all while correctly identifying the transfected cells. I have attached the pipeline and an example image that should include 3 transfected cells and 2 untransfected cells.

I have tried everything I can think of, but nothing has worked so far. I could really use some help since I want to present this data on a lab meeting on Thursday this week.

Pipeline JNO 2.8 edited for 20201122.cpproj (5.0 MB)

NIH3T3 E40Q 20x 03-Image Export-17_b0c0x0-1388y0-1040.tif (4.1 MB) NIH3T3 E40Q 20x 03-Image Export-17_b0c1x0-1388y0-1040.tif (4.1 MB) NIH3T3 E40Q 20x 03-Image Export-17_b0c2x0-1388y0-1040.tif (4.1 MB) NIH3T3 E40Q 20x 03-Image Export-17_b0c0-3x0-1388y0-1040.tif (4.1 MB)

Side note: I also have a module that filters out “dead/damaged” cells with high intensities. One of this type of cells is filtered out earlier in the pipeline.

Thank you so much!

Hi @EllenAppel

To investigate this I used the module DisplayDataOnImage where I display the measurements you’re filtering on the image (see results below).

So your first filter uses a min StdIntensity filter of 0.004 which splits your cells as you want but then you have another rule using min MedianIntensity of 0.08, which all of your cells meet the condition of so when you flip that to be the maximum allowed in the next module you are filtering them all out so you are left with none.

To be left with the cells you haven’t filtered I would probably use the MaskObjects module. I think it would be a bit less complicated and avoid situations like you have here.

Thank you so much, that makes perfect sense!

1 Like