Detecting Branching Points in Dendrites
Spatial information processing and plasticity in cortical neuronal cells is related to the organization and activity of the network of neurons. Along the soma of a neuronal cell, branching points are formed to stretch a dendrite to a neighboring cell and form a connection. These branching points can be seen in vitro with good resolution under the microscope. The number of branching points a cell has dictates, according to some researchers, the total excitatory and electro-chemico potential of the neuron. Many morphological characteristics such as the distribution and size of each branching point, and their distance from each other, are thought to be related to neuronal activities.
Detecting branching points is a common task in image processing, however, it is not an easy one. Starting with a general shape, or one like a neuron, a skeletonization procedure is one of the first attempted avenues. There are various algorithms for skeletonizing a shape, whether convex or non-convex. Skeletonizing a shape gives us a skeleton line, which represents the shape. Sort of an abstraction of it. The common way to understand a basic skeletonization algorithm is to think of it as lighting a fire simultaneously at opposing boundaries of the shape. Fire advances at the same speed, burning into the shape, and when two fire lines meet, this is where we place a line of the skeleton.
The simple skeletonization procedure often times gives us phantom branching points. To avoid these fake branches, various methods have been developed. These include dynamic updating of the skeleton based on a priori geometrical information, or avoiding skeletonization all together and adopting shape shrinking methods.
The branching points in the resultant skeleton gives us good target to detect and mark branching point on neurons. Skeleton branching points can be traced back, along the path leading to them, to the position of the shape’s boundary responsible for their creation. It is then up to the programmer to decide the local threshold above which a bump in the contour is considered a branch.
If it is known that branches are thinner than the neuron stem, then iterative shape shrinking might help us to detect branches. If we keep shrinking the contour of the neuron, small branches will shrink first. Therefore, if we subtract the resulting shape from the original one, we expect to see islands where branches have disappeared. Setting a threshold for the size of this island to which we call a branch would give us good initial seed for further building algorithms to make local decisions to distinguish branches from stems.
Image by Mathias De Roo [CC BY-SA 3.0]