Neuron dynamics¶
Elements of a neuron¶
To understand the dynamics of a growth::Neuron
during the growing
process, it is necessary to understand its inner structure:
- Each Neuron contains a set of
growth::Neurite
objects, which are stored in a vector called
neurites_
.
- Each Neuron contains a set of
Every Neurite contains a set of
growth::GrowthCone
objects and agrowth::Branching
manager,which takes care of the creation of new growth cones.In addition, the
growth::Neurite
also keeps track of thegrowth::TopologicalNode
objects, the base class ofgrowth::GrowthCone
objects, which are used to mark the positions at which a branching event occured.Each
growth::TopologicalNode
(orgrowth::GrowthCone
) owns agrowth::Branch
, which is a container that keep tracks of the path that was followed during the growth process.
Events that can occur¶
During the growing process, the main active unit is the
growth::GrowthCone
. This object has 3 main behaviours:
it moves in space, either elongating, remaining at the same place, or retracting,
it can split into two different
growth::GrowthCone
objects,it can be absorbed back into the neurite (it is pruned).
The motion is implemented through different models that are detailed in the Models structure section.
The split event belongs to the more general class of branching events.
Branching Event¶
Branching events can occur in two different situations:
a
growth::GrowthCone
object splits into two (growth cone splitting)a new
growth::GrowthCone
emerges from agrowth::Branch
(lateral branching)
In both cases, the sequence goes as follow:
A branching event is detected from
growth::Branching::check_branching()
, in the branching manager of the NeuriteDepending on the type of branching event involved, a
*_new_branch
function is called.Regardless of the event type, the function will eventually call
growth::Neurite::growth_cone_split()
, passing the parameters of the branching event, so that the Neurite does the job.