Hi everyone, has anyone successfully added a gap junction to an existing model using NESTML? I would like to add gap junction support to the aeif_cond_alpha neuron model but it is unclear how this can be done within NESTML. As suggested by Charl, I started to look into updating the jinja templates but I am not sure this will be possible since both the input/output of the neuron and the model's equation must be updated to support gap junctions. If anyone has any suggestions or if anyone has NESTML code for adding a gap junction to an existing model, I would be very appreciative. Thanks!
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.-
Hi All,
I am using the aeif_cond_alpha neuron model in NEST and the synaptic dynamics are calculated together with the membrane potential of the neuron model. I understand that the synapse uses an alpha function. However, it is unclear what the actual equation is for calculating the synaptic conductance. After looking through the documentation and C++ code it was still unclear to me, however, I found this journal article which defines an equation for the synaptic conductance (equation 4), https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0057134. Is this the correct equation? Thanks for any help!
Best,
Beck
Dear NEST Users & Developers!
I would like to invite you to our next fortnightly Open NEST Developer Video Conference, today
Monday April 24, 11.30-12.30 CET (UTC+1).
As usual, in the Project team round, a contact person of each team will give a short statement summarizing ongoing work in the team and cross-cutting points that need discussion among the teams. The remainder of the meeting we would go into a more in-depth discussion of topics that came up on the mailing list or that are suggested by the teams.
Feel free to join the meeting also if it's just to bring your own quick questions for direct discussion in the in-depth section.
Agenda
* Welcome
* Review of NEST User Mailing List
* Project team round
* In-depth discussion
The agenda for this meeting is also available online, see
https://github.com/nest/nest-simulator/wiki/2023-04-24-Open-NEST-Developer-…
Looking forward to seeing you!
Cheers,
Dennis Terhorst
------------------
Log-in information
------------------
We use a virtual conference room provided by DFN (Deutsches Forschungsnetz).
You can use the web client to connect. We however encourage everyone to
use a headset for better audio quality or even a proper video
conferencing system (see below) or software when available.
Web client
* Visit https://conf.dfn.de/webapp/conference/97938800
* Enter your name and allow your browser to use camera and microphone
* The conference does not need a PIN to join, just click join and you're in.
In case you see a dfnconf logo and the phrase "Auf den
Meetingveranstalter warten", just be patient, the meeting host needs to
join first (a voice will tell you).
VC system/software
How to log in with a video conferencing system, depends on you VC system
or software.
- Using the H.323 protocol (eg Polycom): vc.dfn.net##97938800 or
194.95.240.2##97938800
- Using the SIP protocol:97938800@vc.dfn.de
- By telephone: +49-30-200-97938800
For those who do not have a video conference system or suitable
software, Polycom provides a pretty good free app for iOS and Android,
so you can join from your tablet (Polycom RealPresence Mobile, available
from AppStore/PlayStore). Note that firewalls may interfere with
videoconferencing in various and sometimes confusing ways.
For more technical information on logging in from various VC systems,
please see http://vcc.zih.tu-dresden.de/index.php?linkid=1.1.3.4
Hi,
Continuing with my exploration, I am now developing my own nestML module. I successfully compiled it and ran it without errors or problems. However, the result was not what I expect, so I modified the nestML code, compiled it, and... well, I tried to re-install it with
nest.Install("nestmlmodule")
and I get an error that the module was already loaded. When I try to rerun my simulation, I get the old result, not the new one. How do I do to reload the module? I've searched through the documentation and I do not find any reload, reinstall, or anything similar... Is there any other way than killing everything and starting over from scratch?
By the way, are there any debug tools for a nestML module? I tend to make zillions of mistakes, and any way of inspecting the behavior of the module and the state of the internal variables would be of incredible help!
thanks!!!
gus.-
Dear all,
While I try to solve my doubts on the other thread, I decided to try nestml on my own. For this, I installed docker and did:
wget https://raw.githubusercontent.com/steffengraber/nest-docker/master/docker-c…
and then:
docker-compose up nest-jupyterlab
as explained here: https://nest-simulator.readthedocs.io/en/latest/installation/docker.html#do…
Then, I created a silly Python file that simply does:
import matplotlib.pyplot as plt
import nest
import numpy as np
import os
from pynestml.frontend.pynestml_frontend import generate_nest_target
NEST_SIMULATOR_INSTALL_LOCATION = nest.ll_api.sli_func("statusdict/prefix ::")
generate_nest_target(input_path="izhikevich.nestml",
target_path="/tmp/nestml-component",
logging_level="ERROR",
codegen_opts={"nest_path": NEST_SIMULATOR_INSTALL_LOCATION})
where izhikevich.nestml is nothing else than a brute-force copy and paste of
https://github.com/nest/nestml/blob/master/models/neurons/izhikevich.nestml
It should be trivial, but then I get:
-- N E S T --
Copyright (C) 2004 The NEST Initiative
Version: 3.4
Built: Mar 31 2023 12:33:35
This program is provided AS IS and comes with
NO WARRANTY. See the file LICENSE for details.
Problems or suggestions?
Visit https://www.nest-simulator.org
Type 'nest.help()' to find out more about NEST.
WARNING:root:PyGSL is not available. The stiffness test will be skipped.
WARNING:root:Error when importing: No module named 'pygsl'
line 44:4 extraneous input 'equations' expecting {NEWLINE, 'end', 'inline', 'recordable', NAME}
line 48:4 extraneous input 'parameters' expecting {NEWLINE, 'end', 'inline', 'recordable', 'kernel', NAME}
line 59:4 missing 'end' at 'input'
line 63:4 extraneous input 'output' expecting {NEWLINE, 'end', NAME}
line 77:24 mismatched input '<EOF>' expecting {'end', 'elif', 'else'}
[6,GLOBAL, ERROR]: Error occurred during parsing: abort
Traceback (most recent call last):
File "/opt/data/Izhikevich.py", line 10, in <module>
generate_nest_target(input_path="izhikevich.nestml",
File "/usr/local/lib/python3.10/dist-packages/pynestml/frontend/pynestml_frontend.py", line 229, in generate_nest_target
generate_target(input_path, target_platform="NEST", target_path=target_path, logging_level=logging_level,
File "/usr/local/lib/python3.10/dist-packages/pynestml/frontend/pynestml_frontend.py", line 199, in generate_target
raise Exception("Error(s) occurred while processing the model")
Exception: Error(s) occurred while processing the model
which I do not understand. The syntaxis of nestml seems clear, no "end", right? Then, what am I doing wrong?
Thanks!
gus.-
PS: I still have my doubts, as explained in the other thread, but I thought this is a different issue... sorry if I did wrong!!!
Dear All,
My name is Gustavo (Gus) and I am a complete newbie at NEST, so probably this will be a stupid question. However, I have thoroughly;y searched the documentation for nest-desktop, nest, nestml, and this mailing list, but couldn't find an appropriate answer. So, if this is a stupid question, sorry!
Well, I want to model a population of Izhikevich-like neurons, as described in this 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
arXiv: https://arxiv.org/abs/2203.08341
code: https://senselab.med.yale.edu/ModelDB/ShowModel?model=267382#tabs-1
Basically, it is a light variant of the original model in Izhikevich's 2003 paper, with a standard synaptic current I = g S (e_r - u_k), with S the gating variable following its own first-order differential equation, and assuming an intrinsic current with a Lorentzian distribution (and probably something else that I do not remember right now).
I also wanted to take this opportunity to learn nest at the same time, so I decided to start with NEST-Desktop online (I have an account at EBRAINS), but couldn't figure out how to exactly configure the standard Izhikevich model to be the one in the paper, and also couldn't find a mechanism to plug a gating variable, or a way to specify the intrinsic current, and also couldn't find a Lorentzian distribution among the options for the current generators... So, I guess I should go deeper. Is that right? Can I solve this with merely nest-desktop?
Then, I started to look at some examples in nestml, including the Izhikevich one, and I think that, if I have to modify it, it is feasible. I am fluent in Python, and reading the Izhikevich tutorial seemed reasonable to me:
https://nestml.readthedocs.io/en/latest/tutorials/izhikevich/nestml_izhikev…
So, my final question... is this the way to go? Should I write my neuron model as a new variant of the original one, perhaps in nestml? Should I include the gating variable inside this model, or is there another mechanism for that? Then, I guess I need to build a current generator, right? Can I have more than one (1 for the external stimulus, 1 for the intrinsic current)? Is this plan sound? Are there any shortcuts for what I want to do? Any hints or tips you could share?
In any case, THANKS FOR THE PATIENCE!!!
cheers
gus.-