Laminin green-Csa pipeline fine tuning is hell

Hi all!
After some work and following the other discussions on the forum (@Minh you saved us), i managed to create a pipeline for recognizing every fiber in a muscle coloured with Laminin.
CSAworking20x.cpproj (435.0 KB)

Unfortunately the images that i have to analyse are not clear and are really different from each-other.
I need a program that can analyse in a solid and accurate way a wide range of images without problem, but i am stuck in the fine-tuning of all the various parameters of my pipeline.
Probably, due to my inexperience, i over-complicated the pipeline, bringing on me this hell.
That’s why i ask the community if you can help me tuning the parameters and make the pipeline more flexible.

I put here a link to some images that are explicative.
For example the image 126 has an “hole” that excluded from the identification reducing the “allowed”, but the other images have fiber so big to get lost with this method.
The images will be available for a short time and i ask you to avoid posting them in the eventual answers to this topic!
Thanks in advance!

Hi there,

Glad to see a nice pipeline, (although I don’t quite understand the purpose of the series of 4 “Threshold” modules)

Regarding the hole in image 126 (isn’t it a blood vessel?) :
I gave it a few try and feel it’s a bit too hard to use just CellProfiler to automatically differentiate blood vessels with large fibers based on only 1 single channel. If you have other channels that’s more or less specific to tell fibers vs. non-fibers , it may be more feasible.

As you already pointed out, we can try hard to filter the hole/vessel perfectly in 1 particular image, for e.g. image 126. But the filtering mechanism may fail in image 89, where there’s only parts of the vessels.

What I have in mind is:

base on the fact that vessel wall is kinda thick, you can try to use ilastik (or other computer vision methods) to identify just the vessels, then mask them out, then feed Cellprofiler with the masked images to identify the fibers.

However, in such method, “the number of clicks and tweaks and fine-tuning” may be even more than doing manually hand-drawing the regions of exclusion per image, and feed the masked images for automatic fiber identification.

Hope that gives you some ideas.

Thank you for the reply.
Until yesterday i used the old 2.0 version of the program and was stuck with some setting. After passing to the latest version i managed to clean the pipeline (the 4 threshold were an error).
Here is the new pipelineCSAworking20x_2.0.cpproj (417.6 KB)

Right now the pipeline work pretty well, but the wide range of diversity between the images doesn’t allow me to rule out the vessels. Unfortunately i inherited this images from past works, but in the future i’ll use other tanning methods to differentiate the vessels and fibers.

For now i following two thought process to resolve the problem:

  • rule out the vessels through a statistical analysis of the data produced by this pipeline

  • find a way to calculate for every image the average fiber’s area and use this as a parameter to rule out the vessels that could alter the CSA analysis. I don’t care about the raw number of fibers in the image, but about the CSA and Form factor. If a vessels has an area that fall in an acceptable range (determined by average area of the fibers) is not a problem if is identified as such; the problem arise when the vessels it’s outside such range it’s excluded from the counting.

Obviously, it’s possible to do this changing the min/max parameters in the identifyprimaryobject module for each image, but i’m trying to automatize this process and make the life easy for my colleagues. Haha