Changes for page 03. Building and simulating a simple model
Last modified by adavison on 2022/10/04 13:55
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -45,8 +45,38 @@ 45 45 (% class="wikigeneratedid" id="HDescription2Cexplanation2Candpractice" %) 46 46 (% class="small" %)**Description, explanation, and practice** 47 47 48 -. 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 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 +TO BE COMPLETED 79 + 50 50 (% class="wikigeneratedid" id="HSummary28Inthistutorial2CyouhavelearnedtodoX202629" %) 51 51 (% class="small" %)**Summary (In this tutorial, you have learned to do X…)** 52 52