Count neurons

I have labelled the brain tissue with a neuronal marker and I have also stained the slide with DAPI. DAPI has consequently labelled all the nuclei in the tissue. What I am trying to do is to create a pipeline where nuclei will be identified as primary objects (I have sorted this) and only neurons outlining the nuclei will be selected as secondary objects. For some reason this isn’t working for me as CellProfiler keeps on selecting random fluorescent items in the image and it is also identifying the dendrites as individual objects.
Which threshold method is the best in this case so only the neuron will be identified?

1 Like


Feel free to upload an example image and your pipeline, but I can offer these suggestions in any case:

  • It is often useful to pre-process neurites. I suggest EnhanceOrSuppressFeatures -> Neurites-> Tubeness
  • For the IDSecondary Threshold Method, MCT is a method that was designed (by others) for neurons. You may need to lower the Threshold Correction Factor depending on your image intensities.
  • For the IDSecondary “method to identify secondary objects” I would suggest either the Propagation or “Distance - B”. Note for “Distance - B” you need to set the “Number of pixels by which to expand the primary objects” set to a large number (e.g. 200) equal to the length of the longest neurite that you expect, in pixels.

Beyond these basic suggestions, I think you’ll need to upload images and your pipeline for us to be of any further help.


1 Like

Hi David,

Thank you so much for offering to help me with this. Please find attached sample images and pipeline. So, I have taken the suggestion of enhancing the neurites onboard and it seems to work absolutely well. But, CP is still identifying one neuron as several different objects.

I have tried to set the lower and upper threshold limits too.

Any suggestion would be helpful in this case.

Neurons.cpproj (74.5 KB)


A few suggestions (see my attached project file for more detail):

  • Zoomed in, both channel’s images have a mottled or speckled appearance. Has there been some sort of processing done on these images, or were they first saved in a lossy, non-tiff format? It is a red flag for the image acquisition, and in fact, this may actually be causing some issues with the neurite enhancement (see attached screenshot - though Tubeness is handling it pretty well).
  • Save your images as grayscale. These are false color images. In fact, your pipeline would not run for me until I chose “Grayscale” for the image type in NamesAndTypes (but then CP tries to be smart takes an average of the channels, I think, which may not be what you want). The image file size will also be smaller and CP will run faster.
  • EnhanceEdges is a nice idea, but in practice its output is not a great input into IdentifyPrimaryObjects. I would remove it.
  • IdentifyPrimaryObjects - switch to inputting the ‘nuclei’ image directly. Then you need to increase the size range from 20-80 pixels or so. The 40 pixel max setting was causing nuclei to be split too often. Also switch to using “Shape” as the declumping method, which is often better for round objects.
  • A** crucial issue here** is that there appear to be more nuclei than soma. Do these cultures have glia as well? If so, the simplest way is to exclude them by another glia-specific marker. The next step is to measure the Cy5 intensity in the Nuclei objects and filter them out unless they reach a minimum threshold (which you would need to determine experimentally). Or you can not even use the nuclear channel at all and just process the Cy5 channel, doing some image morphological tricks to identify the soma.
  • Be careful naming objects the same name as previously defined images or objects. It may work, but it is confusing (to me at least!) and may confuse CP without any warning to you.

I added a couple more modules - take a look at the Module Notes at the top of each module for some further comments.

Good luck! Neuron image analysis is challenging!
NeuronsDL2.cpproj (423 KB)

Dear colleagues,
I am relatively new to CP (but already love it!) and have a similar problem regarding identification of neurons versus other cell types in culture. In my image, DAPi is staining nuclei, red is staining neurons, and green is for glial cells. I want to quantify number of cell types across many images. Unfortunately, I can’t get the identification of neurons working properly.
Nuclei identification works nicely, but I can’t seem to find a way to identify neurons.
an exemplary image is attached, maybe anyone can help?

best wishes,

1 Like

Hi Andy,

How do you identify the neurons by eye in this image? This doesn’t look that easy for me to tell by eye the cell types of each, but maybe you are better than me! (This was also why I didn’t jump at answering this one so fast)
MAP2 (is that the red marker?) is usually present on the soma, and it looks like it is mostly the case here. And the Green marker looks to be in the cytoplasm, though there are some cells which seem to have even neurites with green label. So you can measure those compartments, measure their intensities of the respective channel, and filter out cells by thresholds of those intensity measurements.

I am attaching a stub of a pipeline, which does the above procedure for the glia, and you can adapt it for the neuron detection (measure red channel in nuclear object, or maybe expand a a couple pixels from the nucleus too).

A couple other notes
** In Image, load the 3 color JPG.
** Side note - we recommend you avoid JPG since they are lossy formats.
** Also, there is a large illumination artifact in the lower right and upper left here which will adversely affect segmentation

Hope this helps,
DLcount_neurons.cppipe (10.6 KB)

1 Like