Auryn simulator

Simulator for spiking neural networks with synaptic plasticity

User Tools

Site Tools


manual:neurons_and_populations

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

manual:neurons_and_populations [2018/02/07 08:50] – created zenkemanual:neurons_and_populations [2018/02/07 08:56] (current) – Adds link to subtopic zenke
Line 3: Line 3:
 Objects exchanging spikes such as neurons are simulated as groups in Auryn (in most cases you won't use Auryn to simulate one neuron in isolation, but many of them). Managing neurons in groups makes allows efficient simulation through vectorization, but it also makes it easier to declare and connect a simulation, because these groups can best be thought of as populations of functionally identical (or at least similar) units.  Objects exchanging spikes such as neurons are simulated as groups in Auryn (in most cases you won't use Auryn to simulate one neuron in isolation, but many of them). Managing neurons in groups makes allows efficient simulation through vectorization, but it also makes it easier to declare and connect a simulation, because these groups can best be thought of as populations of functionally identical (or at least similar) units. 
 {{:manual:network_sketch1.png?150 |}} A vanilla balanced network can, for instance, be thought of as consisting of a population of excitatory and inhibitory neurons and maybe a third population of Poisson input neurons. In a Auryn simulation this would correspond to distinct [[NeuronGroup|neuron groups]] of a particular type for the excitatory and the inhibitory populations respectively. External Poisson neurons would be modeled as a third group and so forth. Each NeuronGroup is represented as a C++ object and synaptic connections are then defined between these objects (see below). Auryn comes with a bunch of standard integrate-and-fire neuron models already implemented. They are all descendants of [[NeuronGroup]]. A good general purpose neuron model to start which implements conductance based synapses is for instance [[IFGroup]] (or [[TIFGroup]] if you don't want a slow NMDA-like conductance) or the [[AdExGroup|AdEx model]] by Brette and Gerstner (2005). If you are used to delta-current synaptic input you might want to take a look at [[IafPscDeltaGroup]], which was written after the example of a neuron model in NEST with the same name. Finally, in many cases you will ultimately want to write your own neuron model which is straight forward in Auryn (see [[tutorials::neurongroup|creating your own NeuronGroup]]). {{:manual:network_sketch1.png?150 |}} A vanilla balanced network can, for instance, be thought of as consisting of a population of excitatory and inhibitory neurons and maybe a third population of Poisson input neurons. In a Auryn simulation this would correspond to distinct [[NeuronGroup|neuron groups]] of a particular type for the excitatory and the inhibitory populations respectively. External Poisson neurons would be modeled as a third group and so forth. Each NeuronGroup is represented as a C++ object and synaptic connections are then defined between these objects (see below). Auryn comes with a bunch of standard integrate-and-fire neuron models already implemented. They are all descendants of [[NeuronGroup]]. A good general purpose neuron model to start which implements conductance based synapses is for instance [[IFGroup]] (or [[TIFGroup]] if you don't want a slow NMDA-like conductance) or the [[AdExGroup|AdEx model]] by Brette and Gerstner (2005). If you are used to delta-current synaptic input you might want to take a look at [[IafPscDeltaGroup]], which was written after the example of a neuron model in NEST with the same name. Finally, in many cases you will ultimately want to write your own neuron model which is straight forward in Auryn (see [[tutorials::neurongroup|creating your own NeuronGroup]]).
 +
 +See [[NeuronGroup]] for more.
manual/neurons_and_populations.txt · Last modified: 2018/02/07 08:56 by zenke