Dear Gustavo,
You are right, the nest.Create() call only creates network nodes such as neurons or devices, but never connects them. This is done by a subsequent nest.Connect() call. The rule "all_to_all" can be omitted but only because it is the default rule, as shown in Charl's example below.
For an overview of connection rules like "all_to_all" and further constraints such as autapses or multapses, I can refer you to our recent publication: Senk et al. (2022) Connectivity concepts in neuronal network modeling. PLoS Comput Biol 18(9): e1010086. https://doi.org/ 10.1371/journal.pcbi.1010086
Best, Johanna
On 25.04.23 21:19, Charl Linssen wrote:
Hi Gustavo,
Great to hear about your reports.
Actually, all_to_all should be the default connection rule, and seems to work OK for me:
pop = nest.Create("izhikevich", 10) nest.Connect(pop, pop) syn = nest.GetConnections(target=pop) len(syn)
100
For the postsynaptic integration, we are actually just in the process of fixing a confusion about the units of a train of delta pulses, please see here for a discussion: https://github.com/nest/nestml/pull/882#issuecomment-1517816133
Until that pull request is merged, please use the examples in the NESTML models database (at https://github.com/nest/nestml/tree/master/models/neurons) for guidance. For example, check out the _delta, _exp or _alpha neuron models. In principle, your kernel (exp(-t/tau)) should work fine. For a delta kernel, indeed you don't have to convolve the delta with a delta, but you can add the name of the spiking input port directly into the ODE for V_m. If you run into any trouble, feel free to send us your .nestml model file and .py test script, and we will try to reproduce the issue you are seeing.
With kind regards, Charl
On Mon, Apr 24, 2023, at 00:02, gustavo.patow@udg.edu wrote:
Dear friends,
Thanks to all your help, I've successfully reproduced the behavior
of the modified Izhikevich neuron described in the paper:
Chen, L., Campbell, S.A. Exact mean-field models for spiking neural networks with adaptation. J Comput Neurosci 50, 445–469 (2022). https://doi.org/10.1007/s10827-022-00825-9
But when I try to connect a population of neurons among themselves, I have problems. In particular, imagine I create 10 neurons with the following Python code: neurons = nest.Create("izhikevich_ODE", 10)
Then, I found in some of the examples that the neurons do not come connected, and to connect them all-to-all, I had to do the following: nest.Connect(neurons, neurons, 'all_to_all') Is that right?
Then, in the NESTML model, how do I receive the spikes into the gating variable? If I am not wrong, I have to set the input as input: spikes real <- spike and then add them to the synaptic gating variable as a simple convolution: kernel G = delta(t) SS' = ((-SS/tau) + S_jump/N * convolve(G, spikes)) /s Note: the /s is because the equations in the paper are without units. Is this right? As kernel, I also tried exp(-t/tau), with the same tau as the one used for SS, but then it seemed to take forever to compute, so I left the delta... However, if the spikes themselves are Dirac deltas, I do not completely understand the meaning of this convolution... What is the correct way to get the spikes from the other neurons?
thanks!
gus.- _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org