Skip to content

Latest commit

 

History

History
259 lines (178 loc) · 14.5 KB

_index.md

File metadata and controls

259 lines (178 loc) · 14.5 KB
title
From single-cell modeling to large-scale network dynamics with NEST Simulator

From single-cell modeling to large-scale network dynamics with NEST Simulator

<script src="moment.js"></script> <script src="moment-timezone-with-data.js"></script>

An on-site tutorial at the [33nd Annual Computational Neuroscience Meeting (CNS*2024)](https://www.cnsorg.org/cns-2024)
July 20-24th, 2024

Description

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.

Citations

[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

Schedule (on-site tutorial)

<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

Materials

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

Links

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.

Registration

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.

Software requirements

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:

Feedback

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.

Organisation

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.

Acknowledgements

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.