**Name:**

gif_cond_exp_multisynapse - Conductance-based generalized

integrate-and-fire neuron model with multiple synaptic time constants

according to Mensi et al. (2012) and Pozzorini et al. (2015).

**Description:**

gif_cond_exp_multisynapse is the generalized integrate-and-fire neuron

according to Mensi et al. (2012) and Pozzorini et al. (2015), with

post-synaptic conductances in the form of truncated exponentials.

This model features both an adaptation current and a dynamic threshold for

spike-frequency adaptation. The membrane potential (V) is described by the

differential equation:

C*dV(t)/dt = -g_L*(V(t)-E_L) - eta_1(t) - eta_2(t) - ... - eta_n(t) + I(t)

where each eta_i is a spike-triggered current (stc), and the neuron model can

have arbitrary number of them.

Dynamic of each eta_i is described by:

tau_eta_i*d{eta_i}/dt = -eta_i

and in case of spike emission, its value increased by a constant (which can be

positive or negative):

eta_i = eta_i + q_eta_i (in case of spike emission).

Neuron produces spikes STOCHASTICALLY according to a point process with the

firing intensity:

lambda(t) = lambda_0 * exp[ (V(t)-V_T(t)) / Delta_V ]

where V_T(t) is a time-dependent firing threshold:

V_T(t) = V_T_star + gamma_1(t) + gamma_2(t) + ... + gamma_m(t)

where gamma_i is a kernel of spike-frequency adaptation (sfa), and the neuron

model can have arbitrary number of them.

Dynamic of each gamma_i is described by:

tau_gamma_i*d{gamma_i}/dt = -gamma_i

and in case of spike emission, its value increased by a constant (which can be

positive or negative):

gamma_i = gamma_i + q_gamma_i (in case of spike emission).

Note that in the current implementation of the model (as described in [1] and

[2]) the values of eta_i and gamma_i are affected immediately after spike

emission. However, GIF toolbox (http://wiki.epfl.ch/giftoolbox) which fits

the model using experimental data, requires a different set of eta_i and

gamma_i. It applies the jump of eta_i and gamma_i after the refractory period.

One can easily convert between q_eta/gamma of these two approaches:

q_eta_giftoolbox = q_eta_NEST * (1 - exp( -tau_ref / tau_eta ))

The same formula applies for q_gamma.

On the postsynapic side, there can be arbitrarily many synaptic time constants

(gif_psc_exp has exactly two: tau_syn_ex and tau_syn_in). This can be reached

by specifying separate receptor ports, each for a different time constant. The

port number has to match the respective "receptor_type" in the connectors.

The shape of synaptic conductance is exponential.

**Parameters:**

C_m double - Capacity of the membrane in pF

t_ref double - Duration of refractory period in ms.

V_reset double - Reset value after a spike in mV.

E_L double - Leak reversal potential in mV.

g_L double - Leak conductance in nS.

I_e double - Constant external input current in pA.

Spike adaptation and firing intensity parameters:

q_stc vector of double - Values added to spike-triggered currents (stc)

after each spike emission in pA.

tau_stc vector of double - Time constants of stc variables in ms.

q_sfa vector of double - Values added to spike-frequency adaptation

(sfa) after each spike emission in mV.

tau_sfa vector of double - Time constants of sfa variables in ms.

Delta_V double - Stochasticity level in mV.

lambda_0 double - Stochastic intensity at firing threshold V_T in 1/s.

V_T_star double - Base threshold in mV.

Synaptic parameters

tau_syn double vector - Time constants of the synaptic conductance

in ms (same size as E_rev).

E_rev double vector - Reversal potentials in mV (same size as tau_syn).

Integration parameters

gsl_error_tol double - This parameter controls the admissible error of the

GSL integrator. Reduce it if NEST complains about

numerical instabilities.

Example:

neuron = nest.Create('gif_cond_exp_multisynapse',

params={'E_rev': [0.0, -85.0],

'tau_syn': [4.0, 8.0]})

spike = nest.Create('spike_generator', params={'spike_times':

np.array([10.0])})

delays = [1., 30.]

w = [1., 5.]

for syn in range(2):

nest.Connect(spike, neuron, syn_spec={'model': 'static_synapse',

'receptor_type': 1 + syn,

'weight': w[syn],

'delay': delays[syn]})

nest.Simulate(100.)

**Require:**

HAVE_GSL

**Receives:**

SpikeEvent, CurrentEvent, DataLoggingRequest

**Sends:**

SpikeEvent

**References:**

[1] Mensi S, Naud R, Pozzorini C, Avermann M, Petersen CC, Gerstner W (2012)

Parameter extraction and classification of three cortical neuron types

reveals two distinct adaptation mechanisms. J. Neurophysiol., 107(6),

1756-1775.

[2] Pozzorini C, Mensi S, Hagens O, Naud R, Koch C, Gerstner W (2015)

Automated High-Throughput Characterization of Single Neurons by Means of

Simplified Spiking Models. PLoS Comput. Biol., 11(6), e1004275.

**Author:**

March 2016, Setareh

**SeeAlso:**

**Source:**

/home/graber/work-nest/nest-git/nest-simulator/models/gif_cond_exp_multisynapse.h