NEST main@caf0ae8
 
Loading...
Searching...
No Matches
nest::GrowthCurveGaussian Class Reference

Gaussian version of a growth curve. More...

#include <growth_curve.h>

Inheritance diagram for nest::GrowthCurveGaussian:
[legend]
Collaboration diagram for nest::GrowthCurveGaussian:
[legend]

Public Member Functions

 GrowthCurveGaussian ()
 
void get (Dictionary &d) const override
 
void set (const Dictionary &d) override
 
double update (double t, double t_minus, double Ca_minus, double z, double tau_Ca, double growth_rate) const override
 
- Public Member Functions inherited from nest::GrowthCurve
virtual ~GrowthCurve ()
 
virtual bool is (std::string n)
 
std::string get_name ()
 

Private Member Functions

void compute_local_ ()
 

Private Attributes

double eta_
 
double eps_
 
double inv_zeta_
 
double xi_
 

Additional Inherited Members

- Protected Member Functions inherited from nest::GrowthCurve
 GrowthCurve (const std::string name)
 
- Protected Attributes inherited from nest::GrowthCurve
const std::string name_
 

Detailed Description

Gaussian version of a growth curve.

This class represents a Gaussian growth rule for the number of synaptic elements inside a neuron. The creation and deletion of synaptic elements when structural plasticity is enabled, allows the dynamic rewiring of the network during the simulation.

This type of growth curve uses a forward Euler integration method to update the number of synaptic elements: dz/dt = nu (2 * e^(- ((Ca(t) - xi)/z)^2 ) - 1) where xi = (eta + eps)/2, zeta = (eps - eta)/2 * sqrt(ln(2))), eta is the minimum calcium concentration required for any synaptic element to be created, eps is the target mean calcium concentration in the neuron and nu is the growth rate in elements/ms. The growth rate nu is defined in the SynapticElement class.

Parameters
etaMinimum amount of calcium concentration that the neuron needs to start creating synaptic elements. eta can have a negative value, making the growth curve move its maximum to the left.
epsThe target calcium concentration that the neuron should look to achieve by creating or deleting synaptic elements.
nuGrowth rate in elements/ms. Can be negative.
See also
SynapticElement, SPManager, SPBuilder, GrowthCurveLinear
Author
Mikael Naveau (July 2013)

[1] Butz, Markus, Florentin Wörgötter, and Arjen van Ooyen. "Activity-dependent structural plasticity." Brain research reviews 60.2 (2009): 287-305. [2] Butz, Markus, and Arjen van Ooyen. "A simple rule for dendritic spine and axonal bouton formation can account for cortical reorganization after focal retinal lesions." PLoS Comput Biol 9.10 (2013): e1003259.

Constructor & Destructor Documentation

◆ GrowthCurveGaussian()

nest::GrowthCurveGaussian::GrowthCurveGaussian ( )

References compute_local_().

Here is the call graph for this function:

Member Function Documentation

◆ compute_local_()

void nest::GrowthCurveGaussian::compute_local_ ( )
private

References eps_, eta_, inv_zeta_, numerics::sqrt_log_two, and xi_.

Referenced by GrowthCurveGaussian(), and set().

Here is the caller graph for this function:

◆ get()

void nest::GrowthCurveGaussian::get ( Dictionary &  d) const
overridevirtual

Implements nest::GrowthCurve.

References nest::names::eps(), eps_, nest::names::eta(), eta_, nest::names::growth_curve(), and nest::GrowthCurve::name_.

Here is the call graph for this function:

◆ set()

void nest::GrowthCurveGaussian::set ( const Dictionary &  d)
overridevirtual

Implements nest::GrowthCurve.

References compute_local_(), nest::names::eps(), eps_, nest::names::eta(), and eta_.

Here is the call graph for this function:

◆ update()

double nest::GrowthCurveGaussian::update ( double  t,
double  t_minus,
double  Ca_minus,
double  z,
double  tau_Ca,
double  growth_rate 
) const
overridevirtual

Implements nest::GrowthCurve.

References nest::Time::get_ms(), nest::Time::get_resolution(), inv_zeta_, and xi_.

Here is the call graph for this function:

Member Data Documentation

◆ eps_

double nest::GrowthCurveGaussian::eps_
private

Referenced by compute_local_(), get(), and set().

◆ eta_

double nest::GrowthCurveGaussian::eta_
private

Referenced by compute_local_(), get(), and set().

◆ inv_zeta_

double nest::GrowthCurveGaussian::inv_zeta_
private

Referenced by compute_local_(), and update().

◆ xi_

double nest::GrowthCurveGaussian::xi_
private

Referenced by compute_local_(), and update().


The documentation for this class was generated from the following files: