Particle area-counting - relationship whole&inner struct



Anne was so kind directing me to this forum. Thank you!

Here is my problem:
I have two stacks of histological aligned images. One stack includes a structure protein witch is a marker for blood vessels. The other one witch is colocalized to the first one is a protein that is found embedded by the blood vessels. I allready thresholded my images and did some particle area measurements with ImageJ.

But now I want to do the following:
I want to measure the area of every vessel cross-section and put this in a relation to the total area of the embedded protein in every single cross-section. I thought of your software because of the chance of interpreting the vessel cross-sections as cells that contain structures like a nucleus, in my case the embedded protein. And then calculating a nucleus-cytoplasm-relationship and absolute values. Unfortunately in some vessel cross-sections there is more than one embedded protein particle and a the total amount has to be calculated.

Anne recommended me to illustrate my problem with some images:

stack with vessel cross-sections:
stack with corresponding embedded proteins:
RBG merge:

Thank you very much for your advice !


Hi Alex,

The images you attached look like the images you have already thresholded. I think it would be better if you attached the initial images with the stain of interest. CellProfiler can easily apply a threshold to identify objects and also has advanced features for identification.

That aside, CellProfiler can relate objects to other objects using the Relate module. That means you can figure out which embedded protein goes with which vessel. You can include a MeasureObjectAreaShape module into the pipeline and get the area measurements of your identified vessels and embedded proteins. Then using the Relate module to relate these two objects, your exported data will have a column which tells you the Vessel number that each embedded protein belongs too. You could then use the total area of all embedded proteins in each vessel for your calculations.

Do you plan to do this in a high-throughput manner? If so, it wouldn’t be too difficult to adapt the relate module to create new objects based on who the ‘parent’ objects are, in this case the new objects would be all embedded proteins in each vessel. Then, you could do the same measurement with MeasureObjectAreaShape but you could automatically determine the ratio of embedded protein to vessel area. If you think this might be something you will do somewhat high-throughput, I could help you edit the code to accomplish this task (this would require you to use the MatLab version of CellProfiler).



Hi Mike,

This is really good news.
Thank you very much for your help. As beginner in image analysis I am very glad having found someone giving me a hand.

The problem is that the light exposure is not constant on all slices. So I decided to use these thresholded images I gained from a 3D reconstruction with a manual correction.

Indeed I have a high-throughput manner. I want to analyse about 4 stacks each around 300 slices.

I downloaded and installed the CellProfiler version from your homepage with MCRInstaller.exe. Is that correct?

As I don’t have an idea yet of the principles it would be very kind telling witch modules in witch order I need.

Thank you !


We actually have modules which can correct for illumination problems in images. Especially with that many images, we should be able to come up with a really nice correction.

A general pipeline would look like this:
LoadImages (vessels and embedded protein (EP))
IdentifyPrimAutomatic (vessels)
IdentifyPrimAutomatic (EP)
Relate (vessels are parent, EP are children)
MeasureObjectAreaShape (vessels and EP)

Are your images color or grayscale? If they are color, you will have to use ColorToGray before sending to IdentifyPrimAutomatic. It may be easier to choose one channel which represents what you are interested in as well.

If you post some images here I may be able to put something together for you. Also, you may want to consider looking at the intensity of the embedded protein verse vessels. You can use MeasureObjectIntensity for those measurements.

Good luck!


Hi Mike!

Again thank you very much!

I just did an upload to provide some more files:

these files you allready now (moved them to another server):

this is a small RGB stack of the original data:
(one problem is that the staining for the vessels is also positiv in some kind of mesenchymal tissue in the kidney; but it would be great if you can calculate this away)

here I got the 2 thresholded stacks

I just noticed that the pipelines can be saved as MAT-files. Well, I really don’t want to waste your time but it would be very kind if you want to do some testings with these files that you send me afterwards this file for the hole setting stuff. On my own I would probably need a very very long figuring out all tuning and setting options.

Again, thank you very very much!


Hi Alex,

I am quite busy but when I have some free time I will look at your images. In your RGB images, what channel are your vessels and embedded protein? Also, what kind of thresholding did you do to get the the correct vessels.



Hi Mike!

In the RGB stack channel red = vessels, channel green = embedded protein. I gained the thresholded files from a segmentation procedure with a 3D software called Amira.

Thanks, Alex


Hi Alex,

Here is a quick pipeline I made using your vessels.tif and embedded_protein.tif. I also included the exported files of the analysis.

CellProfiler is unable to open the stacked .tif for analysis. To do an analysis you will have to un-stack the images and run them through the program. If you open the xls file for Protein you will notice it tells you both the area of every object, and the PARENT object, which in this case is the vessel. You can then correlate back to the vessel number in the vessel xls file and determine your ratio.

The RGB images can be thresholded as well to determine vessels and embedded protein, but this is easier and I didn’t have much time today :wink:

Hope this helps,


A really nice software and service :smiley: !