Identifying Neurons in a Brain Slice:

Dear Mike,

I hope you are doing Fantastic in these difficult times. :stuck_out_tongue:

Thanks to your Matlab courses. A few months ago I started with absolute zero knowledge of Matlab. Your courses had given in a great kickstart. Now I’ve reached a stage where I’m trying to parallelize my codes for so as to handle the huge amount of Image - Data that my experiments are generating. Now I’m really looking forward to getting a similar type of proficiency in Python once my schedule allows.

Now coming to straight to point. In one of your lectures, you discuss, Identifying Neurons in a Brain Slice.

So the way we had processed this image to identify neurons using intensity-based thresholding was quite preliminary as you also pointed out in that video. You talked about some advance level image processing techniques which can further improve this segmentation.

More specifically, the image segmentation algorithm is not able to distinguish between clusters of brain cells at may places

, as I have pointed out here. So I want to know how can we ensure that this is minimized. If suppose you want to find the centroid of these cells then it becomes really critical to identify these separate these clusters properly.

Furthermore, if suppose you are dealing with about 20,000+, similar images of brain cells where you want to identify these brain cells, separate the clusters, and then find the centroid of the brain cell. How will we go about it then? Only thing I want to point out via this fact is that we also want to automate this whole process in MatLab, with any using point and click software like ImageJ etc.

I just need some ideas or resources from which I can explore further.



Hi Abhimanyu. For a small window that would have a few dozen cells, then most people go for manual dissection. But as you note, that’s not a scalable approach for hundreds or thousands of cells. This isn’t in my research topic, but I have paid attention to these methods at conferences and workshops and things. To my knowledge, there are two ways to isolate the cells:

  1. Use a decomposition method such as non-negative matrix factorization. See, e.g., this paper. See also suite2p, which is mostly in Python but I think there is a MATLAB version of it.
  2. Use deep learning (CNNs) to identify the neurons. This is more recent and probably only available in Python.
1 Like

Ahh!! Once again linear algebra comes to rescue ( Matrix Factorization ).
Thanks for your prompt reply. This gives me a completely new direction to explore. Suit2p also seems like an interesting GUI, which I’ll need to explore.

The concept of convolution neural Networks is completely new to me. I’ll need to study it. Have you discuss them in any one of your courses. Kindly please let me know if you have. That would give me a good headstart. Or any other good resource, a review paper on CNNs, maybe. I had found hundreds of resources on CNN’s on google, but I don’t know where to start from. Any help would be greatly appreciated.



Yup, pretty much everything interesting in technology and scientific computing is just applied linear algebra :wink:

I don’t currently have a course on deep learning, but it is on the agenda for 2021…

There are indeed many resources for learning about DL and CNNs. It depends on how deep you want to get into the math vs. application. Perhaps this paper is a good place to start.