Last modified by adavison on 2022/10/04 13:55

From version 9.7
edited by adavison
on 2021/08/04 16:01
Change comment: There is no comment for this version
To version 7.1
edited by adavison
on 2021/08/03 18:27
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -17,81 +17,38 @@
17 17  
18 18  == Format ==
19 19  
20 -This tutorial will be a video combining slides, animations, and screencast elements. The intended duration is 10 minutes.
20 +.
21 21  
22 22  == Script ==
23 23  
24 -(% class="wikigeneratedid" id="HIntroduceyourself28ifvideo29" %)
25 -(% class="small" %)**Introduce yourself**
24 +=== Introduce yourself (if video) ===
26 26  
27 -Hello, my name is X.
26 +.
28 28  
29 -This video is one of a series of tutorials for PyNN, which is Python software for modelling and simulating spiking neural networks.
28 +=== State the learning objectives (In this tutorial, you will learn to do X…) ===
30 30  
31 -For a list of the other tutorials in this series, you can visit ebrains.eu/service/pynn, that's p-y-n-n.
30 +.
32 32  
33 -(% class="wikigeneratedid" id="HStatethelearningobjectives28Inthistutorial2CyouwilllearntodoX202629" %)
34 -(% class="small" %)**State the learning objectives**
32 +=== State prerequisites ===
35 35  
36 -In this tutorial, you will learn the basics of PyNN: how to build a simple network of integrate-and-fire neurons using PyNN, how to run simulation experiments with this network using different simulators, and how to visualize the data generated by these experiments.
34 +.
37 37  
38 -(% class="wikigeneratedid" id="HStateprerequisites" %)
39 -(% class="small" %)**State prerequisites**
36 +=== Description, explanation, and practice ===
40 40  
41 -To follow this tutorial, you need a basic knowledge of neuroscience (high-school level or greater), basic familiarity with the Python programming language, and you should have already followed our earlier tutorial video which guides you through the installation process.
38 +.
42 42  
43 -This video covers PyNN 0.10. If you've installed a more recent version of PyNN, you might want to look for an updated version of this video.
40 +=== Summary (In this tutorial, you have learned to do X…) ===
44 44  
45 -(% class="wikigeneratedid" id="HDescription2Cexplanation2Candpractice" %)
46 -(% class="small" %)**Description, explanation, and practice**
47 -
48 -PyNN is a tool for building models of nervous systems, and parts of nervous systems, at the level of individual neurons and synapses.
49 -
50 -We'll start off creating a group of 100 neurons, using a really simple model of a neuron, the leaky integrate-and-fire model.
51 -
52 -When we inject positive current into this model, either from an electrode or from an excitatory synapse, it increases the voltage across the cell membrane, until the voltage reaches a certain threshold.
53 -
54 -At that point, the neuron produces an action potential, also called a spike, and the membrane voltage is reset.
55 -
56 -Let's start by writing a docstring, "Simple network model using PyNN".
57 -
58 -For now, we're going to use the NEST simulator to simulate this model, so we import the PyNN-for-NEST module.
59 -
60 -Like with any numerical model, we need to break time down into small steps, so let's set that up with steps of 0.1 milliseconds.
61 -
62 -PyNN comes with a selection of integrate-and-fire models. We're going to use the IF_curr_exp model, where "IF" is for integrate-and-fire, "curr" means that synaptic responses are changes in current, and "exp" means that the shape of the current is a decaying exponential function.
63 -
64 -This is where we set the parameters of the model: the resting membrane potential is -65 millivolts, the spike threshold is -55 millivolts, the reset voltage after a spike is again -65 millivolts, the refractory period after a spike is one millisecond, the membrane time constant is 10 milliseconds, and the membrane capacitance is 1 nanofarad. We're also going to inject a constant bias current of 0.1 nanoamps into these neurons, so that we get some action potentials.
65 -
66 -Let's create 100 of these neurons, then we're going to record the membrane voltage, and run a simulation for 100 milliseconds.
67 -
68 -PyNN has some built-in tools for making simple plots, so let's import those, and plot the membrane voltage of the zeroth neuron in our population (remember Python starts counting at zero).
69 -
70 -As you'd expect, the bias current causes the membrane voltage to increase until it reaches threshold~-~--it doesn't increase in a straight line because it's a //leaky// integrate-and-fire neuron~-~--then once it hits the threshold the voltage is reset, and then stays at the same level for a short time~-~--this is the refractory period~-~--before it starts to increase again.
71 -
72 -Now, all 100 neurons in our population are identical, so if we plotted the first neuron, the second neuron, ..., we'd get the same trace.
73 -
74 -Let's change that. In nature every neuron is a little bit different, so let's set the resting membrane potential and the spike threshold randomly from a Gaussian distribution, and let's plot membrane voltage from _all_ the  neurons.
75 -
76 -Now if we run our simulation again, we can see the effect of this heterogeneity in the neuron population.
77 -
78 -
79 -(% class="wikigeneratedid" id="HSummary28Inthistutorial2CyouhavelearnedtodoX202629" %)
80 -(% class="small" %)**Summary (In this tutorial, you have learned to do X…)**
81 -
82 82  .
83 83  
84 -(% class="wikigeneratedid" id="HAcknowledgementsifappropriate" %)
85 -(% class="small" %)**Acknowledgements if appropriate**
44 +=== Acknowledgements if appropriate ===
86 86  
87 87  .
88 88  
89 -(% class="wikigeneratedid" id="HReferencestowebsites28Formoreinformation2Cvisitusat202629" %)
90 -(% class="small" %)**References to websites (For more information, visit us at…)**
48 +=== References to websites (For more information, visit us at…) ===
91 91  
92 92  .
93 93  
94 -(% class="wikigeneratedid" id="HContactinformation28Forquestions2Ccontactusat202629" %)
95 -(% class="small" %)**Contact information (For questions, contact us at…)**
52 +=== Contact information (For questions, contact us at…) ===
96 96  
97 97  .