Neural Blocks

Neural Blocks#

Neuron#

Block implementing a neuron based on the mixed-feedback theory inspired by Ribar and Sepulchre[1]. The block can be mathematically described as:

\[\begin{split}\begin{aligned} \tau\tau_m\dot{V} &= I + V_0 + I_0 + i_{f-} - i_{s+} + i_{s-} - i_{u+} + i_{u-} - V\label{eq:neur_start}\\ i_{f-} &= g_{f-}\left(\tanh\left(a_{f+}v_f-d_{f-}\right) - \tanh\left(a_{f-}V_0-d_{f-}\right)\right)\\ i_{s+} &= g_{s+}\left(\tanh\left(a_{s-}v_s-d_{s+}\right) - \tanh\left(a_{s+}V_0-d_{s+}\right)\right)\\ i_{s-} &= g_{s-}\left(\tanh\left(a_{s+}v_s-d_{s-}\right) - \tanh\left(a_{s-}V_0-d_{s-}\right)\right)\\ i_{u+} &= g_{u+}\left(\tanh\left(a_{u-}v_u-d_{u+}\right) - \tanh\left(a_{u+}V_0-d_{u+}\right)\right)\\ i_{u-} &= g_{u-}\left(\tanh\left(a_{u+}v_u-d_{u-}\right) - \tanh\left(a_{u-}V_0-d_{u-}\right)\right)\\ \tau\tau_f\dot{v_f} &= v - v_f\\ \tau\tau_s\dot{v_s} &= v - v_s\\ \tau\tau_u\dot{v_u} &= v - v_u\\ \delta &= \mathop{H}(V-d_\delta). \end{aligned}\end{split}\]

where \(g_*\) are the conductances, \(a_*\) the slopes, \(d_*\) the biases, \(d_\delta\) the event threshold, \(\tau\) the timescale, \(\tau_*\) the relative timescales, \(V_0\) the resting potential, \(I_0\) the bias current, and \(\mathop{H}\) the Heaviside step function. The conductances \(g_*\) can optionnaly be set as an input.

Input:

Iapp (analog) – Input current \(I\).

Optional Input:

g__ (analog)– The one or multiple conductances \(g_*\) as described in the parameter section.

Output(s):
  • Ev (boolean) – Output events \(\delta\).

  • V (analog) – Output voltage \(V\)

Parameters:
  • Gains – The conductances \(g_*\). Default value is 1 for all.

  • Gains Source – Where to get the conductances value from. Can be set to ‘Internal’ or ‘External’. Default value is ‘Internal’.

  • Biases – The biases \(d_*\). Default value is 0 for all.

  • Slopes – The slopes \(a_*\). Default value is 1 for all.

  • Timescale – The timescale \(\tau\). Default value is 0.004.

  • Relative Membrane Timescale – The relative timescale \(\tau_f\). Default value is 0.1.

  • Relative Fast Timescale – The relative timescale \(\tau_m\). Default value is 0.1.

  • Relative Slow Timescale – The relative timescale \(\tau_s\). Default value is 4.

  • Relative Ultra-Slow Timescale – The relative timescale \(\tau_u\). Default value is 200.

  • Base Applied Current – The base applied current \(I_0\). Default value is 0.

  • Base Voltage – The base voltage \(V_0\). Default value is 0.

  • Base Event Threshold – The base event threshold \(d_\delta\). Default value is 0. Value is ignored if Output is set to ‘Voltage’.

  • Output – The exposed output channel(s). Can be set to ‘Events’, ‘Voltage’ or ‘Both’. Default value is ‘Events’.

Synapse with Facilitation

Block implementing a synapse with a facilitation mechanism. The blocks can be mathematically described as:

\[\begin{split}\begin{aligned} \tau\tau_r\dot{v} &= \text{In} - v\\ I &= g\sigma(av - d) \end{aligned}\end{split}\]

where \(\tau\) the timescale, \(\tau_r\) the relative timescale, \(g\) is the conductance, \(a\) the slope, and \(d\) the bias. The conductance \(g\) can optionnaly be set as an input.

Input:

Ev (boolean) – Input events signal \(\text{Ev}\) such that \(\text{In} = \text{Ev}\).

Alternative Input:

V (analog) – Input voltage \(\text{V}\) such that \(\text{In} = g_\text{in}\sigma(a_\text{in}\text{V} - d_\text{in})\).

Optional Input:

gsyn (analog)– The conductances \(g\) as described in the parameter section.

Output:

Isyn (analog) – Output current \(I\).

Parameters:
  • Conductance – The conductance \(g\). Default value is 0.

  • Conductance Source – Where to get the conductance value from. Can be set to ‘Internal’ or ‘External’. Default value is ‘Internal’.

  • Bias – The bias \(d\). Default value is 0.

  • Slope – The slope \(a\). Default value is 1.

  • Timescale – The timescale \(\tau\). Default value is 0.004.

  • Relative Timescale – The relative timescale \(\tau_r\). Default value is 10.

  • Input Type – The exposed input channel. Can be set to ‘Events’ or ‘Voltage’. Default value is ‘Events’.

  • Input Conductance – The input conductance \(g_\text{in}\) used if voltage input is selected. Default value is 1.

  • Input Bias – The input bias \(d_\text{in}\) used if voltage input is selected. Default value is 0.

  • Input Slope – The input slope \(a_\text{in}\) used if voltage input is selected. Default value is 1.

Synapse with Depression

Block implementing a synapse with a depression mechanism on top of a facilitation mechanism. The blocks can be mathematically described as:

\[\begin{split}\begin{aligned} \tau\tau_r\dot{v} &= \text{In} - v\\ \tau\tau_d\dot{v_d} &= \text{In} - v_d\\ g_d(v_d) &= g\sigma(a_dv_d - d_d)\\ I &= g_d(v_d)\sigma(av - d) \end{aligned}\end{split}\]

where \(\tau\) the timescale, \(\tau_r\) the relative timescale, \(\tau_d\) the relative depression timescale, \(g\) is the conductance, \(a\) the slope, \(d\) the bias, \(a_d\) the depression slope, and \(d_d\) the depression bias. The conductance \(g\) can optionnaly be set as an input.

Input:

Ev (boolean) – Input events signal \(\text{Ev}\) such that \(\text{In} = \text{Ev}\).

Alternative Input:

V (analog) – Input voltage \(\text{V}\) such that \(\text{In} = g_\text{in}\sigma(a_\text{in}\text{V} - d_\text{in})\).

Optional Input:

gsyn (analog)– The conductances \(g\) as described in the parameter section.

Output:

Isyn (analog) – Output current \(I\).

Parameters:
  • Conductance – The conductance \(g\). Default value is 0.

  • Conductance Source – Where to get the conductance value from. Can be set to ‘Internal’ or ‘External’. Default value is ‘Internal’.

  • Bias – The bias \(d\). Default value is 0.

  • Depression Bias – The depression bias \(d_d\). Default value is 0.

  • Slope – The slope \(a\). Default value is 1.

  • Depression Slope – The depression slope \(a_d\). Default value is 1.

  • Timescale – The timescale \(\tau\). Default value is 0.004.

  • Relative Timescale – The relative timescale \(\tau_r\). Default value is 0.

  • Relative Depression Timescale – The relative depression timescale \(\tau_d\). Default value is 100.

  • Input Type – The exposed input channel. Can be set to ‘Events’ or ‘Voltage’. Default value is ‘Events’.

  • Input Conductance – The input conductance \(g_\text{in}\) used if voltage input is selected. Default value is 1.

  • Input Bias – The input bias \(d_\text{in}\) used if voltage input is selected. Default value is 0.

  • Input Slope – The input slope \(a_\text{in}\) used if voltage input is selected. Default value is 1.

Modulatory Synapse

Block implementing a synapse emulating a modulation mechanism. The blocks can be mathematically described as:

\[\begin{aligned} \tau\tau_r\dot{p} &= \bar{p} + g_+\text{In}_+ - g_-\text{In}_- - p \end{aligned}\]

where \(\tau\) the timescale, \(\tau_r\) the relative timescale, \(\bar{p}\) the base parameter value, \(g_+\) the positive conductance, and \(g_-\) the negative conductance. The conductance \(g_+\) and \(g_-\) can optionnaly be set as an input.

Inputs:
  • Ev+ (boolean) – Input events signal \(\text{Ev+}\) such that \(\text{In}_+ = \text{Ev+}\).

  • Ev- (boolean) – Input events signal \(\text{Ev-}\) such that \(\text{In}_- = \text{Ev-}\).

Alternative Inputs:
  • V+ (analog) – Input positive voltage \(\text{V+}\) such that \(\text{In}_+ = \sigma(a_\text{in+}\text{V+} - d_\text{in+})\).

  • V- (analog) – Input negative voltage \(\text{V-}\) such that \(\text{In}_- = \sigma(a_\text{in-}\text{V-} - d_\text{in-})\).

Optional Inputs:
  • gsyn_p (analog)– The conductances \(g_+\) as described in the parameter section.

  • gsyn_m (analog)– The conductances \(g_-\) as described in the parameter section.

Output:

p (analog) – Output parameter \(p\).

Parameters:
  • Base Parameter Value – The base parameter value \(\bar{p}\). Default value is 0.

  • Positive Conductance – The positive conductance \(g_+\). Default value is 0.

  • Negative Conductance – The negative conductance \(g_-\). Default value is 0.

  • Positive Conductance Source – Where to get the conductances value from. Can be set to ‘Internal’ or ‘External’. Default value is ‘Internal’.

  • Negative Conductance Source – Where to get the conductances value from. Can be set to ‘Internal’ or ‘External’. Default value is ‘Internal’.

  • Timescale – The timescale \(\tau\). Default value is 0.004.

  • Relative Timescale – The relative timescale \(\tau_r\). Default value is 1000.

  • Input Type – The exposed input channels. Can be set to ‘Events’ or ‘Voltage’. Default value is ‘Events’.

  • Input Positive Bias – The input positive bias \(d_\text{in+}\) used if voltage input is selected. Default value is 0.

  • Input Negative Bias – The input negative bias \(d_\text{in-}\) used if voltage input is selected. Default value is 0.

  • Input Positive Slope – The input positive slope \(a_\text{in+}\) used if voltage input is selected. Default value is 1.

  • Input Negative Slope – The input negative slope \(a_\text{in-}\) used if voltage input is selected. Default value is 1.