Neurite network analysis in CellProfiler

I have been working on a pipeline in CellProfiler to characterize the neurite network of my neurons. I’ve built it based on a paper that did something similar in ImageJ (https://onlinelibrary.wiley.com/doi/full/10.1002/cyto.a.22408)

neurite_tracing2.cpproj (904.1 KB)
AIW 100k 2 16-11-2020_c1.tif (811.8 KB) AIW 100k 2 16-11-2020_c4.tif (1.2 MB)

The pipeline is divided into 3 steps: 1) nuclei segmentation, 2) soma detection and 3) neurite segmentation. I detect the neurite network using two masks that I combine together with ImageMath. I am pretty satisfied with the detection of the neurites. However, when I try to “skeletonize” the image (with MorphologicalSkeleton or Morph (skelpe)), I only get dots instead of continuous lines.

Therefore, my measurements with MeasureObjectSkeleton or MeasureImageSkeleton makes no sense. I have spent quite some time reading on blogs and forums; tried Smoothing/filters and EnhanceFeatures, but now it seems that I’m stuck.

I would like to measure: total neurite area, neurite length, and number of branching points

I’m using MeasureImageAreaOccupied to determine total neurite area, but I get an error message saying that my input image is not binary. My input image was generated in ImageMath: isn’t it a binary image?

Thank you!!!

Hi @SarahLepine,

I checked your images & pipeline. Here are few changes I tried & there is no error (FYI: I used CP4.0.6)

  1. While doing this, I used your thersholded image, it works fine. Since you have already segmented and you just want to skeletonise, you can use that image. Also, with full image size it may look like dots, but zoom in to any region it looks like continuous line (Continuity is based on your thresholding). Still there some dots at some places, you have to adjust in thersholding if you would want to get rid of them. I tried both MorphologicalSkeleton & Morph. so now your measurements works.
  1. Your ImageMath image is not a binary, in case you chose the thresholded image it works fine. You can get the total neurite area. In case you want to use your results from image math (i.e. subtracted image) you may have to use Thresholded instead because one of your image in that module is not a binary image.

PFA pipeline.neurite_tracing2_new.cpproj (804.9 KB)

In case any more clarification is required, let us know.

Regards,
Lakshmi
www.wakoautomation.com

Thank you so much!!!