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_.

  • Every Neurite contains a set of growth::GrowthCone objects and a growth::Branching manager,which takes care of the creation of new growth cones.

  • In addition, the growth::Neurite also keeps track of the growth::TopologicalNode objects, the base class of growth::GrowthCone objects, which are used to mark the positions at which a branching event occured.

  • Each growth::TopologicalNode (or growth::GrowthCone) owns a growth::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:

In both cases, the sequence goes as follow:

  1. A branching event is detected from growth::Branching::check_branching(), in the branching manager of the Neurite

  2. Depending on the type of branching event involved, a *_new_branch function is called.

  3. 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.