This tutorial has been designed for the following classes:
- [2023] Brain modelling, AI BSc, UNIMI/PV/B
- [22-23-24] Numerical methods in Neuroscience, Physics MSc, UNIPI, Pisa, Italy
- [21-22-23-24] Biorobotics and Complex Systems, Physics MSc, UNIPI, Pisa, Italy
- [21-22-23] Neural Modeling for Neural Engineering, PhD in Biorobotics, SSSA, Pisa
- [2021] Large Scale Network Simulations, PhD in Neuroscience, INT, Marseille, France
- Spiking Neural Networks (SNNs) by using PyNN language and/or Brian2 stand-alone simulator
PyNN is a Python library for simulating neural networks. It provides a common interface for a variety of neural simulators, such as NEURON, NEST, and Brian, making it easy to switch between them without having to change the model code. PyNN allows users to define and simulate neural networks using a high-level, neuron-centric interface, similar to the way models are described in neuroscience literature. It is used in many research and education projects to study neural systems, and can be used to simulate models of the brain, as well as artificial neural networks. Brian is a simulator for spiking neural networks. It is written in the Python programming language and is available on almost all platforms.
- Neural mass modelling with The Virtual Brain simulator
TheVirtualBrain is a framework for the simulation of the dynamics of large-scale brain networks with biologically realistic connectivity. TheVirtualBrain uses tractographic data (DTI/DSI) to generate connectivity matrices and build cortical and subcortical brain networks. The connectivity matrix defines the connection strengths and time delays via signal transmission between all network nodes. Various neural mass models are available in the repertoire of TheVirtualBrain and define the dynamics of a network node. Together, the neural mass models at the network nodes and the connectivity matrix define the Virtual Brain. TheVirtualBrain simulates and generates the time courses of various forms of neural activity including Local Field Potentials (LFP) and firing rate, as well as brain imaging data such as EEG, MEG and BOLD activations as observed in fMRI. TheVirtualBrain is foremost a scientific simulation platform and provides all means necessary to generate, manipulate and visualize connectivity and network dynamics. In addition, TheVirtualBrain comprises a set of classical time series analysis tools, structural and functional connectivity analysis tools, as well as parameter exploration facilities by launching parallel simulations on a cluster.
- make the EBRAINS credentials to access the SpiNNaker server (https://spinn-20.cs.man.ac.uk/hub/login)
- login on the Jupyter Lab interface
- install brian2 simulator
pip install brain2
- install PyNN module
pip install PyNN
- install TVB module
pip install tvb-library tvb-framework
- clone this repository
git clone https://github.com/albertoarturovergani/CNT-2024
- Open the directory
notebooks/
and run a test with balance network by selecting the sPyNNaker kernel - if you receive any errors, write to [email protected]
- neurons
- cell types
- populations
- recording variables
- connections
- synapse types
- connections types
- projections
- simulation managing
- computational settings
- save and load outputs
- visualization tools
- entry network
- single cell
- single clique
- decaying network
- diverging network
- persistent network
- small-world network
- testing cell models network
- testing STDP model network
- VA_balance network
- basis of spiking neural network theory (https://neuronaldynamics.epfl.ch/online/index.html) or (https://neuromatch.io/academy/)
- familiarity with physical quantities related to electric circuits (e.g., voltages, conductances, currents, etc)
- basic python coding (numpy, work with dictionaries, some matplotlib tools, etc)
- import the simulator
- setup the simulator
- decide the cell types
- design the populations
- define the synapse types
- select the connection algorithm
- make the projections
- idealize the stimulus
- run the simulation
- save the results
- recover the results
- postprocessing (visualization, statistics, etc)
- close the simulations