Measuring transfection efficiency and cell counting with Cell Profiler

I’m new with Cell Profiler and I need to build a pipeline to measure transfection efficiency with GFP in HEK293T cells.
I am using lipofectamine to insert a vector with GFP in my cells and I also use Hoechst for nuclear staining. I want to measure the % of cells that present both blue and green fluorescence compared to the GFP negative nuclei. Here is an overview of my pipeline:

  1. IdentifyPrimaryObjects identify nuclei from the nuclear stain image (Hoechst staining images).
  2. IdentifySecondaryObjects identify cells stained with GFP (GFP staining images)
  3. MeasureObjectIntensity determines whether a nucleus is GFP-positive by measuring the nucleus intensity from the GFP channel.
  4. DisplayDataOnImage displays the per-nuclei median intensities overlaid on the nuclei to visually determine a cutoff for GFP positive/negative.
  5. ClassifyObjects classifies the nuclei but on the basis of the median intensity measurement.
  6. FilterObjects filters the nuclei on the basis of median intensity measurement or other parameters.
  7. CalculateMath to obtain a per-image % of GFP-positive nuclei: divide the GFP-nuclei count by the total nuclei count and multiply by 100.

I read the tutorials and used some of the tips that I have found in this forum but I still have doubts about the accuracy of results…I am concerned about segmentation issues and the detection threshold for measuring fluorescence intensity… any tips to improve the quality of images and the segmentation? Am I using the right approach? Also, I was wondering if it would be possible to use the bright field image for cell counting?

I am attaching my pipeline and some sample images here. Open to suggestions!

ValidatedPipeline.cpproj (767.3 KB)

Thank you very much.

Hello Andreia,
Attached is a draft (used CP version 2.2.0 for analysis) that helps improve segmentation and the approach uses CorrectIlluminationCalculate and CorrectIlluminationApply to identify cells in such images. Gaussian filter appeared to work okay but you may still improve segmentation under IdentifyPrimary- and Secondary-Objects. After you identify the cells you can extract the intensity data you are interested in.
It is possible to try the bright field image (which I will try next) but as you can tell it may require more steps in order to conduct good segmentation.
Please let us know if you have any more questions at this point.
Kind regards,
well7correction.cpproj (548.1 KB)

1 Like


Thank you for your precious help! The draft that you sent me really improved the segmentation and identification of the cells.

Next I want to count how many cells are GFP positive…so I did a filtering based on the MedianIntensity of nuclei in the green channel and then I used CalculateMath to get the % of GFP-positive cells. Regarding the filtering step, I used DisplayDataOnImage to preview the intensity measurements overlaid on the image of the cells, to select an intensity cutoff. I guess I will have to adjust cutoff manually for multiple images in the future? Is there a way to tell the software to automatically detect the green fluorescence in the image? I used the MedianIntensity for filtering, which I think is correct, but I wonder if I shouldn’t use some measure of absolute values of Intensity (cells vs background)?

Thanks for your time and consideration.


Filtering step based on Median Intensity:

Filtered nuclei:

Updated pipeline: UpdatedPipeline_well7.cpproj (546.7 KB)

Hello Andreia,
It looks like you are on the right track. However, what I would do is use raw GFP data in result analysis since after illumination correction you are loosing the intensity difference you would like to have in order to differentiate the two populations. So, all I did was substituted CorrGreen with raw_gfp when analyzing intensity but using the image after illumination correction to know the total number of cells in the image. You can look at the plot you are producing where intensity is shown for each cell. This should also eliminate the need of adjusting the threshold every time to have the program differentiate the two populations of cells. Let us know if something is unclear.

UpdatedPipeline_well7_VC.cpproj (575.1 KB)

If you’re worried about hardcoding the threshold filter value you could also, in addition to to @vchernys 's excellent suggestion, consider rather than using FilterObjects creating a GFP+ mask of your GFP image with ApplyThreshold (which may be more robust to image-to-image intensity differences than a manually picked number) and then using MaskObjects rather than FilterObjects to obtain your count of GFP+ cells.

Hello @AndreiaM ,
I know that your post is not recent but I have to do about the same approach but in a theoretical way (a theoretical protocol without results). Could you please tell me more about the steps you have taken? Indeed, having no results, I don’t know the procedure to follow for this kind of protocol.
Thank you for your help,

Continuing the discussion from Measuring transfection efficiency and cell counting with Cell Profiler:

halo Andreia,

i want to ask about your overview pipeline at point 7, you wrote that " CalculateMath to obtain a per-image % of GFP-positive nuclei: divide the GFP-nuclei count by the total nuclei count and multiply by 100."
for the CarculateMate that you wrote in point 7, if i may know, where did you get it from? may i know the journal you took because i happen to be looking for a percentage calculation about the amount of fluorescence cells. if you can help me, i will be grateful.
Thank you…