Making synaptic connections
Subsections

Making synaptic connections

Now we want to set up synaptic connections between the neurons in the individual pools. This is done by commands of the form

>> [nmc,c_idx] = add(nmc,'conn','dest',<destination>,'src',<source>,...);
where <destination> and <source> specify a set of neurons either by the handle/index of a pool or by specifying a volume.

Connecting the input

To see how it works lets start by connecting the spiking inputs to the pool of LifNeurons:

>> [nmc,c(1)]=add(nmc,'conn','dest',p_lif,'src',p_sin,...
                      'Cscale',1,'Wscale',5);
Here we used the pool handles/indices as source and destination specification. The additional parameters given specify how to scale the overall connection probability (Cscale) and the synaptic strength (Wscale). To see the actual connectivity pattern generated you can again use the command plot(nmc); and interaktively explore the network structure. By clicking on a neuron you can look at presynaptic as well as postsynaptic connections. Figure [*] shows how the input neurons are connected at the moment.
Figure 3: Synaptic connections of the spiking input neurons to the LifNeuron pool.

\includegraphics{in_conn}
As the next step we connect the spiking input via static synapses (default are dynamic synapses to some subset of the pool of sigmoidal neurons by specifying a certain volume
>> [nmc,c(2)]=add(nmc,'conn','dest',[6 1 1; 6 3 6],'src',p_sin,...
                      'type','StaticSpikingSynapse','Cscale',Inf);
The synaptic connection created by this command are shown in Figure [*]. Note that the setting 'Cscale',Inf ensures that there will be a synaptic connection between each pair of neurons in the source region and the destination region.
Figure 4: Synaptic connections of the spiking input neurons to the SigmoidalNeuron pool.

\includegraphics{in_sig}
And finaly we connect the analog input to the pool of HHNeurons by means of a StaticAnalogSynapse. This is necessary since StaticSpikingSynapses can not transmit analog signals.
>> [nmc,c(3)]=add(nmc,'conn','dest',p_hh,'src',p_ain,...
                      'type','StaticAnalogSynapse','Wscale',0.2);

Making recurrent connections

Now we want to create recurrent connections with the pools themselves. The only differene to the previous section is that now the source and destination is the same pool:

>> [nmc,c(4)]=add(nmc,'conn','dest',p_lif,'src',p_lif,...
                      'SH_W',0.5,'lambda',2.5,'Wscale',2);

>> [nmc,c(5)]=add(nmc,'conn','dest',p_sig,'src',p_sig,...
                      'SH_W',0.5,'lambda',2,'type','StaticAnalogSynapse');

>> [nmc,c(7)]=add(nmc,'conn','dest',p_hh,'src',p_hh,...
               'SH_W',0.5,'lambda',1);

Again one can specify in addition to the destination and the source other parameters which determine how individual synaptic connections are created. For example the parameter lambda determines the ``average distance'' of synaptic connections and SH_W determines the standard deviation SD of the Gamma distribution used to generate the synaptic weights: $SD = \mathtt{SH\_W} \cdot \mathrm{mean}$. Figure [*] shows a typical postsynaptic connectivity pattern for one neuron generated by the code above.

Figure 5: Postsynaptic connections of a typical excitatory LifNeuron.

\includegraphics{lif_incoming}

Connecting pools

In this example we connect the pool of HHneurons to the LifNeuron pool by static synapses.

>> [nmc,c(6)]=add(nmc,'conn','dest',p_hh,'src',p_lif,...
                      'SH_W',0.5,'lambda',Inf,'type','StaticSpikingSynapse');

Note that using lambda=Inf has the effect that the distance between the neurons dose not matter in determining wheter a synaptic connection will by generated or not.

 
(C) 2003, Thomas Natschläger last modified 06/12/2006