NEST simulator官方提供了35个example network,数量不多,所以珍贵

本文对这些example做以分类以便后续学习进行。

分类依据2条主线:
1.example内容: 包括example本身预期提供的内容,以及我对其的关注点。
2.example优先级: 这是后续对example展开学习时要遵循的次序。

example内容

  device usage(DU): nest device的使用方法,属simulator基础。
  neuron behavior(NB):neuron理论和行为,属computational neuroscience内容
  synapse behavior(SB): synapse理论和行为,属computational neuroscience内容
  modeling methods(MM): 侧重理解建模方法,属simulator应用。
  extension(EX): 扩展性知识,可扩大知识面,用到工程中的机率不大

example优先级  

  class 0: 基础方法和知识,直接影响建模
  class 1: 专项知识,会影响模型复杂度
  class 2: 高级方法, 提高效率
  class 3: 扩展性方法和知识,不会直接建模有影响
  class 0,1会影响到模型,class2, 不会影响模型,只是影响效率

以下是全部example list table:

 
index  example description class priority of class
1 balanced neuron example

内容:excitatory & inhibitory neurons populations发出poisson spike train给同1个neuron,
找到该neuron的某个firing rate使之与excitatory的firing rate相同
关注点:不同neurons population之间firing rate的匹配方法

MM 0
2 campbell & siegert approximation example

内容:多个poisson generators分别使用不同rate和weight驱动if neuron使其firing,
并将其firing rate与iaf_psc_alpha model比较。
关注点:建模方法,非比较结果

MM  0
3 compare tsodyks-markram synapse models - - -
4 Comparing precise and grid-based neuron models 内容:比较precise和grid-based neuron models的差异
关注点:对precise不关注,所以该example意义不大
EX  3
5 correlospinmatrix_detector example 内容:binary neuron model和差异比较.
ginzburg_neuron和mcculloch_pitts_neuron是binary neuron,
correlospinmatrix_detector比较binary之间差异
关注点: binary model有极大可能无须关注,
但如果后期发现其有效性,
那将对neuromorphic system design产生极大影响。
这是一个不鸣则己,一鸣惊人的潜在爆发点
EX 
6 Example for the quantal_stp_synapse 内容:描述STP(包括short term depression/shor term facilitation)的synapse model.
从release site层面描述weight的变化,
机理可能做为neuromorphic hardware的基础,
但很可能无法直接由硬件实现。
关注点:model本身和STP规则  
SB 
7 Example of the Adaptive Exponential Integrate and Fire (AdEx) in NEST. 内容:从速度和精确度比较aeif_cond_alpha的两种不同计算实现
关注点:对该example不关注比较过程和结果。aeif_cond_alpha本身后期需要理解,
该模型用alpha-function对synaptic conductance建模,
如果alpha-function真的能对NG/FNG产生影响,
那么可以考虑将其加入硬件模型 。
对aeif_cond_alpha的介绍见https://jn.physiology.org/content/94/5/3637
NB  1
8 Example of the tsodyks2_synapse in NEST 内容:tsodyks2_synapse的简单network
关注点:network本身没什么特别的,
tsodyks2_synapse model需要学习,
与STP有关 
 SB 1
9 IAF Neuron example

内容:IAF neuron test
关注点: 基础example,需掌握

NB  0
10 IF curve example 内容:向neurons中依次输入递增的current,
观察current-spiking frequence的关系。
关注点: 基础,需掌握
 NB 0
11 Initial membrane voltage 内容:在无外界input时iaf_cond_exp_sfa_rr model的membrain potential趋于-70mV
关注点: 现象的原因,实质上是对neural dynamics的理解。
(可能是reseting potential,但由于有多个membrane potential为-70mV,所以不能确定)
 NB
12 Intrinsic currents spiking 内容:细化到receptor种类层面上了,暂不看,暂不考虑这个层面
关注点: 无
 EX 3
13 Intrinsic currents subthreshold 内容:Intrinsic current相关的暂不看
关注点: 无
 EX 3
14 Multi-compartment neuron example 内容:multi-compartment neuron test.
关注点: multi-compartment model将neuron dendrite分为三种:distal, proximal, soma,
每种synapse都可以接收current和spike,不同位置的dendrite对membrane potential的影响不同,
这种模型暂时忽略,
如果model的形态的后期出现可能有用的迹象,再关注multi-comparment model.
 EX 3
15 Multimeter to file example 内容:multimeter的使用
关注点: 基础,要掌握
 DU 0
16 One neuron example 内容:基础
关注点: 基础,要掌握
 MM 0
17 one_neuron_with_noise 内容:基础
关注点: 基础,要掌握
 MM 0
18 Plot weight matrices example 内容:将2个neuron group之间所有类型的全部connection strength提取出来保存到matrix中,
并进行analysis和visualization
关注点:  基础,要掌握
 MM  0
19 Pulse packet example 内容:在收到pulse package(高斯分布的瞬态spike volley)后membrain potential的状态变化
关注点: 侧重于spiking的产生
 MM  0
20 Random balanced network (alpha synapses) connected with NEST 内容:用NEST自带的connection roution实现random connection创建network
关注点: 基础,要掌握
 MM  0
21 Random balanced network (alpha synapses) connected with NumPy 内容:用numpy实现random connection创建network
关注点: 基础,要掌握
 MM  0
22 Random balanced network (delta synapses) 内容:以brunel N的一篇paper为基础创建network
关注点: 基本network的建立方法
MM   0
23 Random balanced network (exp synapses, multiple time constants) 内容:以brunel N的paper为基础,synapse产生exponential PSP,
在receptor type定义对应PSP的time constant,receptor types均匀分布。
关注点: 所有与receptor type的暂不考虑,
因为现在首先要做的是从network层面理解neuron group,
将这一flow走通,然后再细致理解neuron model。
但我也觉得,receptor type或者可以引入到硬件模型中增加可变性。
NB 
24 Repeated Stimulation 内容:在指定的时间区间内产生stimulus,利用‘origin’反复产生stimulus
关注点: 基础,要掌握
 MM  0
25 Sinusoidal poisson generator example 内容:介绍sinusoidal_poisson_generator的使用
关注点: 基本device的使用,要掌握
 DU  0
26 sinusoidal_gamma_generator 内容:介绍sinusoidal_gamma_generator的使用
关注点: 基本device的使用,要掌握
 DU
27 spike synchronization through subthreshold oscillation 内容:复现“Simple Networks for Spike-Timing-Based Computation, with Application to Olfactory Processing.pdf”中的现象,
即在subthreshold oscillation条件下产生spike synchronization行为

关注点: FNG,关注产生FNG的modeling methodology,以便开发新的FNG
 NB
28 structural plasticity example 内容:这个例子有意思.2组population,一开始无连接,
使用Buts, M., & Von Ooyen A.(2013)中的structural plasticity model,
可以在仿真过程中create和delete synapses dynamically,直至达到期望的electrical activity
关注点: 这种synapse创建的方法不同之前我所理解的weight的简单调整,而是synapse创建和消失的过程,
仔细理解并使用该过程,可能会使synpase所占memory容量大大减少。
 NB  1
29 test of the adapting exponential integrate and fire model in nest 内容:对adaptive integrate and fire model(AdEx)的test
关注点: 学习test过程的思路,
此外该model需要学习(Brette and Gerstner (2005) J. Neurophysiology and reproduces figure 2.C)
 NB  1
30 test of the adapting exponential integrate and fire model in nest 内容:同上,针对(Brette and Gerstner (2005) J. Neurophysiology and reproduces figure 3.D)
关注点: 同上
 NB
31 tsodyks depressing example 内容:Depressing Tsodyks synapse例子,验证其行为,见”Neural Networks with Dynamic Synapses.pdf”
关注点: 该paper很重要,应该仔细看看。
 SB
32 tsodyks facilitating example 内容:同上,改变参数形成facilitating tsodyks synapse
关注点: 同上
 SB  1
33 twoneurons 内容:2个neuron的连接
关注点: 基础,需掌握
 MM  0
34 Using CSA for connection setup 内容:介绍了独立于simulator的一种高效地创建network connection的方法:使用Connection Set Algebra(CSA),
见”Efficient generation of connectivity in neuronal networks.pdf”
关注点: 掌握该方法,属tools的高级使用方法
 MM  2
35 Using CSA with Topology layers 内容:同上,用CSA创建topology layer之间connection
关注点: 同上
 MM  2

注:

[1].以上关注点从neuromorphic角度出发,而非computational neuroscience角度出发。直接表现就是会将某些synapse/neuron model的模型细节忽略掉

[2]. example 3略去,因为example未做描述,且根据code明显没不重要

[3] NG/FNG: neurogroup/functional neurogroup

下面是example优先级list,根据上面table列出,包含对各class内部的ordering,即学习次序:

  class 0:
    #neuron connection
    IAF Neuron example
    One neuron example
    one_neuron_with_noise
    twoneurons
    IF curve example

    #network
    Balanced neuron example
    Random balanced network (alpha synapses) connected with NEST
    Random balanced network (alpha synapses) connected with NumPy
    Random balanced network (delta synapses)

    #device
    Sinusoidal poisson generator example
    sinusoidal_gamma_generator
    Pulse packet example
    Multimeter to file example

    #modeling methods
    Repeated Stimulation
    Plot weight matrices example  
    Campbell & Siegert approximation example

  class 1:
    #synapse
    Example for the quantal_stp_synapse
    Example of the tsodyks2_synapse in NEST
    tsodyks depressing example
    tsodyks facilitating example
    structural plasticity example

    #NG
    spike synchronization through subthreshold oscillation: NG
    test of the adapting exponential integrate and fire model in nest: new model
    test of the adapting exponential integrate and fire model in nest : new model
    Example of the Adaptive Exponential Integrate and Fire (AdEx) in NEST.: algorithm implementation
    Initial membrane voltage: no use
    Random balanced network (exp synapses, multiple time constants): receptor type

  class 2:
    Using CSA for connection setup
    Using CSA with Topology layers

  class 3:
    Comparing precise and grid-based neuron models
    correlospinmatrix_detector example
    Intrinsic currents spiking
    Intrinsic currents subthreshold
    Multi-compartment neuron example