title |
---|
From single-cell modeling to large-scale network dynamics with NEST Simulator |
An on-site tutorial at the [33nd Annual Computational Neuroscience Meeting (CNS*2024)](https://www.cnsorg.org/cns-2024)
July 20-24th, 2024
NEST is an established, open-source simulator for spiking neuronal networks, which can capture a high degree of detail of biological network structures while retaining high performance and scalability from laptops to HPC [1]. This tutorial offers a hands-on experience in building and simulating neuron, synapse, and network models. It introduces several tools and front-ends to implement modeling ideas most effectively. Participants do not have to install software as all tools are accessible via the cloud. All parts of the tutorial are hands-on, and take place via Jupyter notebooks.
The tutorial consists of four independent parts.
We demonstrate how a tripartite connection can be included in neural simulations. We investigate the calcium dynamics in astrocytes and the effects of slow inward current on neural activity. Different connection rules are explored in order to account for spatial properties of astrocytes.
We develop a functional spiking network that can be trained to solve various tasks using an online, bio-inspired learning rule that approximates backpropagation through time: eligibility propagation (e-prop). Specifically, we use e-prop for training a network to solve a supervised classification task in which evidence needs to be accumulated over time, and generate arbitrary temporal patterns in a supervised regression task.
A neuron and synapse model are defined in NESTML that are subsequently used in a network to perform learning, prediction and replay of sequences of items, such as letters, images or sounds. The architecture learns sequences in a continuous manner: the network is exposed to repeated presentations of a given ensemble of sequences (e.g., {A,D,B,E} and {F,D,B,C}). At the beginning of the learning process, all presented sequence elements are unanticipated and do not lead to a prediction. As a consequence, the network generates mismatch signals and adjusts its synaptic strengths to minimise the prediction error.
We investigate how dendritic properties of neurons can be captured by constructing compartmental models in NEST, and using the NEAT toolbox. NEAT is a python library for the study, simulation and simplification of morphological neuron models. NEAT implements a new and powerful method to simplify morphological neuron models into compartmental models with few compartments.
[1] https://nest-simulator.readthedocs.org/
[2] https://nest-desktop.readthedocs.org/
[3] Diaz-Pier S, Naveau M, Butz-Ostendorf M, Morrison A (2016). Automatic Generation of Connectivity for Large-Scale Neuronal Network Models through Structural Plasticity. Frontiers in Neuroanatomy, Vol. 10. https://doi.org/10.3389/fnana.2016.00057
[4] https://nestml.readthedocs.org/
[5] Potjans W, Morrison A, Diesmann M (2010). Enabling functional neural circuit simulations with distributed computing of neuromodulated plasticity. Frontiers in Computational Neuroscience, 4:141. DOI: https://doi.org/10.3389/fncom.2010.00141
<script> var default_tz = 'America/Fortaleza'; var start_time = moment.tz("2024-07-20 09:00", "America/Fortaleza"); // !!! also update start time in the table in plain HTML s = "Timezone: "; s += ""; moment.tz.names().forEach(function (item, index) { s += ""; }); s += ""; document.write(s); document.getElementById('tz-selector').value = default_tz; function printTable(el, in_tz) { //alert(in_tz); for (var i = 0; i < document.getElementsByClassName('timecell').length; ++i) { item = document.getElementsByClassName('timecell')[i]; orig_time = item.querySelector('noscript').innerHTML.replace(/^\s+|\s+$/g, ''); //alert('orig time: ' + orig_time); //alert('attempted new time: ' + start_time.format("YYYY-MM-DD HH:mm:ss").slice(0, -8) + orig_time + ":00"); //alert('new time with date: ' + moment.tz(start_time.format("YYYY-MM-DD HH:mm:ss"), "Europe/Berlin").tz(in_tz).format("YYYY-MM-DD HH:mm:ss")); new_time = moment.tz(start_time.format("YYYY-MM-DD HH:mm:ss").slice(0, -8) + orig_time + ":00", default_tz).tz(in_tz); if (i == 0) { //alert('new time: ' + new_time.format("dddd MMMM Do, HH:mm")); document.getElementById('start_date_time').innerHTML = new_time.format("dddd MMMM Do, HH:mm"); } //alert('new time: ' + new_time.format()); item.innerHTML = "" + orig_time + "" + new_time.format('HH:mm'); } } window.addEventListener('load', (event) => { printTable(document.getElementById('schedule'), document.getElementById('tz-selector').value); }); </script>The tutorial will start on Saturday, July 20th, 09:00.
Time (Natal timezone) |
Description |
---|---|
09:00 | Overview and introduction to NEST Simulator Joshua Boettcher, Jasper Albers |
09:20 | Pattern generation and classification using eligibility propagation (e-prop) Joshua Boettcher, Jasper Albers |
10:10 | Coffee break |
10:40 | Creating neuron-astrocyte networks Iiro Ahokainen |
12:10 | Lunch break |
14:00 | Sequence learning with third-factor plasticity in NESTML Jasper Albers |
15:30 | Coffee break |
16:00 | Compartmental models Joshua Boettcher |
17:15 | Closing |
Course materials (presentations and notebooks) are available in our repository.
For presentations:
https://github.com/clinssen/OCNS-2024-NEST-workshop/tree/master/presentations
For the tutorial notebooks:
https://github.com/clinssen/OCNS-2024-NEST-workshop/tree/master/materials
NEST Simulator is a spiking neuron simulator which specialises in point neurons and neurons with few comparments. It can simulate synaptic plasticity, structural plasticity, gap junctions and countless other features on machines ranging from home PCs to high-performance computing systems.
NEST Desktop is a web-based GUI application for NEST Simulator. It enables the rapid construction, parametrization, and instrumentation of neuronal network models.
NESTML is a domain-specific modeling language and code-generation toolchain. It supports the specification of neuron models in an intuitive and concise syntax. Optimised code generation for the target simulation platform couples a highly accessible language with good simulation performance.
Please don't forget to register for the on-site meeting in Natal. Registration is required.
Tutorials are not recorded and are not livestreamed events on YouTube. Please note that this is an on-site event only.
We will provide login details for virtual machines running on Jülich Supercomputer Centre infrastructure to registered participants. You will be able to access the required software directly from your browser, without requiring any installation. Access is provided to a NEST Desktop instance, as well as a JupyterLab environment that includes NEST Simulator and NESTML.
Please register your account beforehand! See HPC account registration for mode details.
You can also run the software on a local computer. We suggest using two Docker images that we provide:
-
JupyterLab server with NEST and NESTML support
Launches a Jupyter Notebook server on localhost at port 7003. The password is: nest25years
The image is available via DockerHub. To install:
docker pull clifzju/nest-nestml-jupyterlab-ocns-tutorial
Then run the image while forwarding the port:
docker run -i -d -p 7003:7003 -t clifzju/nest-nestml-jupyterlab-ocns-tutorial
You can then access the server in your browser by navigating to the URL http://localhost:7003.
The Docker container can be started in interactive mode (giving you a shell prompt) by omitting the
-d
parameter. -
For local installation, we recommend to use the official NEST Desktop Docker image and instructions. Full instructions can be found at: https://nest-desktop.readthedocs.io/en/latest/deployer/deploy-docker-compose.html.
If you participated in (any part) of this tutorial, we value your feedback! Please take a moment to fill in our short feedback form at https://forms.gle/yv9MwmAKJugTs2mR9.
This tutorial is organised by (in alphabetical order):
Iiro Ahokainen (Tampere University, Finland), Jasper Albers (Jülich Research Centre, Germany), Pooja Babu (Jülich Research Centre, Germany), Joshua Boettcher (Jülich Research Centre, Germany), Jens Bruchertseifer (Trier University, Germany), Leander Ewert (Jülich Research Centre, Germany), Charl Linssen (Jülich Research Centre, Germany), and Willem Wybo (Jülich Research Centre, Germany)
For general inquiries, please contact Charl at c.linssen@fz-juelich.de.
We gratefully acknowledge the use of Fenix Infrastructure resources as part of the Human Brain Project, funded from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under Specific Grant Agreements No. 720270, No. 785907 and No. 945539 (Human Brain Project SGA1, SGA2 and SGA3), as well as the resources, expertise and support of the Jülich Supercomputing Centre (JSC) at Jülich Research Centre, Jülich, Germany.