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.
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(a)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(a)nest-simulator.org
To unsubscribe send an email to users-leave(a)nest-simulator.org
_______________________________________________
NEST Users mailing list -- users(a)nest-simulator.org
To unsubscribe send an email to users-leave(a)nest-simulator.org
--
Dr. Johanna Senk
Institute of Neuroscience and Medicine
Computational and Systems Neuroscience (INM-6) &
Institute for Advanced Simulation (IAS-6)
Theoretical Neuroscience & JARA (INM-10)
Jülich Research Centre
52425 Jülich, Germany
Tel.: +49 2461 61-9466
---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Stefan Müller
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Dr. Ir. Pieter Jansens,
Prof. Dr. Astrid Lambrecht, Prof. Dr. Frauke Melchior
---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------