Improve pipeline efficiency + Ecad junction detection help

I’ve been working on a pipeline for a while now and I’ve been using this forum to answer a lot of my questions, but I still have a couple of unresolved issues that I was hoping someone would be able to help me with. The purpose of the pipeline is to detect the nuclei, vimentin staining, and e-cadherin staining, and run some measurements on those detected objects. I attached a couple different sets of images that I would be analyzing (c1- vimentin, c3-nuclei, c4-ecadherin).

  1. First, one of the issues I’ve really been struggling with is I have a lot of image to image variation. So for example, in one image set the e-cadherin staining may be more junctional and there may be more tight junctions present than in another image set. So far, I have been only analyzing images that are visually similar to each other at the same time, and have also incorporated the editobjectsmanually module at each step into my pipeline. This takes a lot of time and I can really only run a couple of image sets together. I was wondering if there were any ideas on how to improve this method or to be able to analyze all my images at one time?
  2. Additionally, I would ideally like to be able to detect the number of cells that are expressing junctional e-cadherin. In some image sets all of the cells have junctional ecadherin, but in other image sets, only a couple of the cells have junctions. I was wondering if there was a way to quantify the number of cells that are expressing highly fluorescent borders (junctions)?

Here is a dropbox folder with the pipeline I’ve been working with and two sets of images (C1- less ecad junctions, and D1- more ecad junctions): … PiFMa?dl=0

Just now getting around to this post…

I noticed that the C1 set has a c3 DNA-stained image, but the D1 set does not (it has a c2 phase contrast image?). Would you mind confirming this and re-uploading a DNA-stained image for the D1 set?

Also, I have a couple of suggestions for possible measures:

  • The mean edge intensity from the MeasureObjectIntensity module. This computes the mean intensity value from pixels on the boundary of the desired object, in this case, the cells. The issue here, though, is that the cells must be delineated fairly well for this approach to work, since the edge is only 1 pixel wide and hence, needs to be on-target to hit the brightly-fluorescent border.

  • The FracAtD value from the MeasureRadialDistribution. This module computes intensity distribution values across a series of concentric bins extending radially from the object center. The FracAtD value computes the fraction of the total intensity from the object (i.e, cell) in a given bin. Therefore, you would want to evaluate this value from the outermost bin, i.e, on the cell border. This might be a better approach than the above since (a) you can select the number of bins, and so the outermost bin would be wider than just 1 pixel, giving you more “wiggle-room”; (b) the value is a fraction so you would stand a better chance of coming up with an consistent cutoff to determine whether a cell has a bright junction or not.

In either case, you can use the DisplayDataOnImage module to display the desired measure on the image for visual inspection, and/or the ClassifyObjects module to mark cells exceeding a given cutoff.


Thank you for your suggestions. Sorry, I just saw your replies and just uploaded the correct D1c3 image in the dropbox folder. I will try the MeasureRadialDistrubtion- I think that would work really well!

I actually now have another question regarding improving the pipeline efficiency. I saw an earlier post about using Paramorama 2 with the Cellprofiler Developer Version, and thought I would give that a try. I have had some trouble getting the Developer Version installed, but I’ve gotten to the point where the gui runs and when I add modules it’s fine. But, when I go to Preferences to try to enable paramorama, an error box pops up (picture attached). I downloaded the most recent version of Cellprofiler on GitHub and am working on Windows 64 bit, with Python 2.7.8. Any suggestions you have would be appreciated!


What version of wxpython are you using?

You can identify this by starting python at a command prompt and typing the following:import wx wx.__version__

BTW: I’m using wxPython, and the sampling menu comes up: