Identifying epidermis and hair follicles in skin as primary objects

mask
skin
epidermis
hairfollicle

#1

Hey!

I would like to count cells in the stroma of skin and to do that, I would need to mask out the skin epidermis and the hair follicles so that they wouldn’t interfere with the counting (see the overview image in the bottom). I have been able to use the nuclei in IdentifyPrimaryObjects module to identify large and dense areas, which works reasonably well, and then I can use these objects as masks for downstream analysis. However, I still need to do a lot of manual editing of the identified objects either to remove wrongly identified objects or include objects that were not identified.

The challenges that I have with identifying these objects are:

  • Nuclei (or areas) in the epidermis might not be with uniform intensity
  • Epidermis has differing thickness (from 1 to 4+ cell layers)
  • Depending on the angle of the cut of the sample, hair follicles might appear to be not connected to the epidermis - they are smaller and appear just in the stroma. I would want to still mask them.
  • The hair follicles can be of varying size
  • Cells in stroma can be in dense cluster that are also identified

So, what I would like my pipeline to do is to reasonably identify the structures to be masked without losing (too many) stromal cells. I wouldn’t mind keeping the manual part to just make sure that there are no major mistakes and to make quick adjustments. But I would be happy if I didn’t need to make so many changes as I’m currently doing.

Also, ideally, everything above the epidermis should be included in the mask, because there are no cells of interest there (sometimes during mounting some cells might end up there). But I haven’t found a module that would let me expand the objects in one direction, so far I have been marking that part manually.

I would be glad to hear if you have any thoughts on how I could improve my pipeline or if you know of a better approach to (semi-)automatically identify the epidermis and the hair follicles.
I’ll attach my current pipeline and some images.

I have some thoughts that might help with some of the issues, but I don’t know how useful they are:

  • Using the orientation of the nuclei as a marker - nuclei in the epidermis and the hair follicle are more ordered and oriented similarly to their neighbors.
  • Using the amount of neighbors a cell has (although stromal cells can be very densely packed)
  • Identifying the unstained area above the epidermis to help in identifying the epidermis
  • Using the orientation of the epidermis (horizontal) and/or the hair follicle (angled similarly in the tissue)

I hope the explanation isn’t too confusing.
And thanks for all the help! :slight_smile:

Sample images (maximum intensity projections of Z-stacks):

Representation of skin

Skin_masking_pipeline.cppipe (10.3 KB)


#2

Hello there,

Thanks for a detailed description. You actually did describe very well the issue of histology : inconsistent slide preparation

Nuclei (or areas) in the epidermis might not be with uniform intensity
Epidermis has differing thickness (from 1 to 4+ cell layers)
Depending on the angle of the cut of the sample, hair follicles might appear to be not connected to the epidermis - they are smaller and appear just in the stroma. I would want to still mask them.
The hair follicles can be of varying size
Cells in stroma can be in dense cluster that are also identified

It’s therefore a huge challenge for imaging analysis and currently I’m not aware of a solid solution for it.

However, I still suggest to:

  • Blur the image a little, then try to identify “a cluster of cells” (not single cells) that have certain similarity, examples of this method is here and here
  • It will at least assist you to identify groups of cells that you don’t like / want to include (less manually)
  • Put a mask on these groups to exclude/include.
  • Using these masks to identify single cells within-the-clusters.

Good luck.