Connection Models

Neurons, and populations of neurons, are connected in SNS-Toolbox using connections. The different versions available are as follows:

Non-Spiking Chemical Synapse

The most basic form of synaptic connection. The amount of synaptic current \(I_{syn}^{ji}\) from pre-synaptic neuron \(j\) to post-synaptic neuron \(i\) is

\[I_{syn}^{ji} = G_{syn}^{ji}(V_j) \cdot \left ( E_{syn}^{ji} - V_i \right ),\]

where \(E_{syn}^{ji}\) is the reversal potential of the synapse, and \(G_{syn}^{ji}(V_j)\) is the synaptic conductance as a function of the pre-synaptic neural voltage:

\[G_{syn}^{ji}(V_j) = max \left ( 0, min \left ( G_{max,non}^{ji} \cdot \frac{V_j - E_{lo}}{E_{hi} - E_{lo}}, G_{max,non}^{ji} \right ) \right )\]
_images/linear_conductance.png

\(G_{max,non}^{ji}\) is the maximum synaptic conductance, \(E_{lo}\) is the synaptic activation voltage, and \(E_{hi}\) is the synaptic saturation voltage.

Default values are as follows:

  • \(G_{max,non}^{ji} = 1 \mu S\)

  • \(E_{syn}^{ji} = 40mV\)

  • \(E_{lo} = 0mV\)

  • \(E_{hi} = 20mV\)

This form of synapse can be implemented using sns_toolbox.connections.NonSpikingSynapse.

Spiking Chemical Synapse

Spiking synapses produce a synaptic current similar in formulation to non-spiking chemical synapses,

\[I_{syn}^{ji} = G_{syn}^{ji} \cdot \left ( E_{syn}^{ji} - V_i \right ),\]

however they differ in that \(G_{syn}^{ji}\) is a dynamical variable. This conductance is incremented by the constant \(G_{inc}^{ji}\) (constrained to a maximum value of \(G_{max,spike}^{ji}\)) whenever the pre-synaptic neuron spikes, and otherwise decays to 0 with a time constant of \(\tau_{syn}^{ji}\).

\[ \begin{align}\begin{aligned}\tau_{syn}^{ji}\frac{dG_{syn}^{ji}}{dt} = -G_{syn}^{ji}\\\text{if $\delta = 1, max\left ( G_{max,spike}^{ji}, G_{syn}^{ji}+G_{inc}^{ji} \right ) \leftarrow G_{syn}^{ji}$}\end{aligned}\end{align} \]

If desired, synaptic propagation delay can also be incorporated. If the synapse from neuron \(j\) to \(i\) has a delay of \(d\) timesteps, the delayed spike can be defined as:

\[\delta_{delay}^{ji}[t] = \delta^{ji}[t - d\cdot\Delta t].\]

Default values are as follows:

  • \(G_{max,spike}^{ji} = 1 \mu S\)

  • \(E_{syn}^{ji} = 194 mV\)

  • \(\tau_{syn}^{ji} = 1 ms\)

  • \(d = 0\)

  • \(G_{inc}^{ji} = G_{max,spike}^{ji}\)

This form of synapse can be implemented using sns_toolbox.connections.SpikingSynapse.

Electrical Synapse

Electrical synapses (also known as gap junctions) are a form of synaptic connection which communicates using direct current transmission instead of synaptic neurotransmitters. Their generated synaptic current is:

\[I_{syn}^{ji} = G_{syn,electrical} \cdot \left ( V_j - V_i \right ),\]

where \(G_{syn,electrical}\) is the synaptic conductance. By default electrical synapses are bidirectional, meaning current can flow in either direction between \(U_j\) and \(U_i\). However electrical synapses can also be rectified if desired, meaning that current only flows from \(U_j\) to \(U_i\), and only if \(U_j>U_i\).

This form of synapse can be implemented using sns_toolbox.connections.ElectricalSynapse.

Pattern Connection

Chemical synapses can also be defined which connect populations of neurons, instead of single neurons.

_images/pattern_connection.png

All of the synaptic dynamics are unchanged between a non-spiking or spiking synapse and a non-spiking or spiking pattern connection, the only difference is that these parameters are now vectors/matrices representing the kernel which is tiled to describe the synaptic pattern. Note that there is currently no pattern implementation for electrical synapses.

These forms of synapse can be implemented using sns_toolbox.connections.NonSpikingPatternConnection and sns_toolbox.connections.SpikingPatternConnection.

For more information, see Tutorial 6: Connectivity Patterns.

Other Connections

There are other connection presets available, which inherit from the above connection models. For a full reference to them, please consult sns_toolbox.connections.