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

From version 19.1
edited by adavison
on 2021/12/01 13:17
Change comment: There is no comment for this version
To version 24.1
edited by shailesh
on 2021/12/09 23:07
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.adavison
1 +XWiki.shailesh
Content
... ... @@ -84,7 +84,7 @@
84 84  
85 85  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.
86 86  
87 -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.
87 +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 1.1 nanoamps into these neurons, so that we get some action potentials.
88 88  
89 89  (% class="box infomessage" %)
90 90  (((
... ... @@ -92,7 +92,7 @@
92 92  \\(% style="color:#000000" %)"""Simple network model using PyNN"""
93 93  \\import pyNN.nest as sim
94 94  sim.setup(timestep=0.1)(%%)
95 -(% style="color:#e74c3c" %)cell_type  = sim.IF_curr_exp(v_rest=-65, v_thresh=-55, v_reset=-65, tau_refrac=1, tau_m=10, cm=1, i_offset=0.1)
95 +(% style="color:#e74c3c" %)cell_type  = sim.IF_curr_exp(v_rest=-65, v_thresh=-55, v_reset=-65, tau_refrac=1, tau_m=10, cm=1, i_offset=1.1)
96 96  )))
97 97  
98 98  Let's create 100 of these neurons; then, we're going to record the membrane voltage and run a simulation for 100 milliseconds.
... ... @@ -103,7 +103,7 @@
103 103  \\(% style="color:#000000" %)"""Simple network model using PyNN"""
104 104  \\import pyNN.nest as sim
105 105  sim.setup(timestep=0.1)(%%)
106 -(% style="color:#000000" %)cell_type  = sim.IF_curr_exp(v_rest=-65, v_thresh=-55, v_reset=-65, tau_refrac=1, tau_m=10, cm=1, i_offset=0.1)(%%)
106 +(% style="color:#000000" %)cell_type  = sim.IF_curr_exp(v_rest=-65, v_thresh=-55, v_reset=-65, tau_refrac=1, tau_m=10, cm=1, i_offset=1.1)(%%)
107 107  (% style="color:#e74c3c" %)population1 = sim.Population(100, cell_type, label="Population 1")
108 108  population1.record("v")
109 109  sim.run(100.0)(%%)
... ... @@ -119,7 +119,7 @@
119 119  \\import pyNN.nest as sim(%%)
120 120  (% style="color:#e74c3c" %)from pyNN.utility.plotting import Figure, Panel(%%)
121 121  (% style="color:#000000" %)sim.setup(timestep=0.1)(%%)
122 -(% style="color:#000000" %)cell_type  = sim.IF_curr_exp(v_rest=-65, v_thresh=-55, v_reset=-65, tau_refrac=1, tau_m=10, cm=1, i_offset=0.1)(%%)
122 +(% style="color:#000000" %)cell_type  = sim.IF_curr_exp(v_rest=-65, v_thresh=-55, v_reset=-65, tau_refrac=1, tau_m=10, cm=1, i_offset=1.1)(%%)
123 123  (% style="color:#000000" %)population1 = sim.Population(100, cell_type, label="Population 1")
124 124  population1.record("v")
125 125  sim.run(100.0)(%%)
... ... @@ -166,14 +166,14 @@
166 166  \\(% style="color:#000000" %)"""Simple network model using PyNN"""
167 167  \\import pyNN.nest as sim(%%)
168 168  (% style="color:#000000" %)from pyNN.utility.plotting import Figure, Panel(%%)
169 -(% style="color:#e74c3c" %)from pyNN.random import RandomDistribution(%%)
169 +(% style="color:#e74c3c" %)from pyNN.random import RandomDistribution, NumpyRNG(%%)
170 170  (% style="color:#000000" %)sim.setup(timestep=0.1)(%%)
171 +(% style="color:#e74c3c" %)rng = NumpyRNG(seed=1)(%%)
171 171  (% style="color:#000000" %)cell_type  = sim.IF_curr_exp(
172 - (% style="color:#e74c3c" %) v_rest=RandomDistribution('normal', mu=-65.0, sigma=1.0),
173 - v_thresh=RandomDistribution('normal', mu=-55.0, sigma=1.0),
174 - v_reset=RandomDistribution('normal', mu=-65.0, sigma=1.0), (%%)
175 -(% style="color:#000000" %) tau_refrac=1, tau_m=10, cm=1, i_offset=0.1)(%%)
176 -
173 + (% style="color:#e74c3c" %) v_rest=RandomDistribution('normal', mu=-65.0, sigma=1.0, rng=rng),
174 + v_thresh=RandomDistribution('normal', mu=-55.0, sigma=1.0, rng=rng),
175 + v_reset=RandomDistribution('normal', mu=-65.0, sigma=1.0, rng=rng), (%%)
176 +(% style="color:#000000" %) tau_refrac=1, tau_m=10, cm=1, i_offset=1.1)
177 177  
178 178  **...**
179 179  
... ... @@ -263,7 +263,7 @@
263 263  
264 264  **...**
265 265  (% style="color:#000000" %)population2.record("v")(%%)
266 -(% style="color:#e74c3c" %)connection_algorithm = sim.FixedProbabilityConnector(p=0.5)
266 +(% style="color:#e74c3c" %)connection_algorithm = sim.FixedProbabilityConnector(p_connect=0.5, rng=rng)
267 267  synapse_type = sim.StaticSynapse(weight=0.5, delay=0.5)
268 268  connections = sim.Projection(population1, population2, connection_algorithm, synapse_type)(%%)
269 269  (% style="color:#000000" %)sim.run(100.0)(%%)
... ... @@ -307,19 +307,20 @@
307 307  \\(% style="color:#000000" %)"""Simple network model using PyNN"""
308 308  \\import pyNN.(% style="color:#e74c3c" %)neuron(% style="color:#000000" %) as sim(%%)
309 309  (% style="color:#000000" %)from pyNN.utility.plotting import Figure, Panel(%%)
310 -(% style="color:#000000" %)from pyNN.random import RandomDistribution(%%)
310 +(% style="color:#000000" %)from pyNN.random import RandomDistribution, NumpyRNG(%%)
311 311  (% style="color:#000000" %)sim.setup(timestep=0.1)(%%)
312 +(% style="color:#000000" %)rng = NumpyRNG(seed=1)(%%)
312 312  (% style="color:#000000" %)cell_type  = sim.IF_curr_exp(
313 - (% style="color:#e74c3c" %) (% style="color:#000000" %)v_rest=RandomDistribution('normal', mu=-65.0, sigma=1.0),
314 - v_thresh=RandomDistribution('normal', mu=-55.0, sigma=1.0),
315 - v_reset=RandomDistribution('normal', mu=-65.0, sigma=1.0), (%%)
316 -(% style="color:#000000" %) tau_refrac=1, tau_m=10, cm=1, i_offset=0.1)(%%)
317 -(% style="color:#000000" %)population1 = sim.Population(100, cell_type, label="Population 1")(%%)
318 -(% style="color:#000000" %)population2 = sim.Population(100, cell_type, label="Population 2")
314 + v_rest=RandomDistribution('normal', mu=-65.0, sigma=1.0, rng=rng),
315 + v_thresh=RandomDistribution('normal', mu=-55.0, sigma=1.0, rng=rng),
316 + v_reset=RandomDistribution('normal', mu=-65.0, sigma=1.0, rng=rng)
317 + tau_refrac=1, tau_m=10, cm=1, i_offset=1.1)
318 +population1 = sim.Population(100, cell_type, label="Population 1")
319 +population2 = sim.Population(100, cell_type, label="Population 2")
319 319  population2.set(i_offset=0)
320 320  population1.record("v")
321 -population2.record("v")(%%)
322 -(% style="color:#000000" %)connection_algorithm = sim.FixedProbabilityConnector(p=0.5)
322 +population2.record("v")
323 +connection_algorithm = sim.FixedProbabilityConnector(p_connect=0.5, rng=rng)
323 323  synapse_type = sim.StaticSynapse(weight=0.5, delay=0.5)
324 324  connections = sim.Projection(population1, population2, connection_algorithm, synapse_type)(%%)
325 325  (% style="color:#000000" %)sim.run(100.0)(%%)
... ... @@ -355,7 +355,7 @@
355 355  
356 356  Of course, PyNN allows you to create much more complex networks than this, with more realistic neuron models, synaptic plasticity, spatial structure, and so on. You can also use other simulators, such as Brian or SpiNNaker, and you can run simulations in parallel on clusters or supercomputers.
357 357  
358 -We will be releasing a series of tutorials, throughout the rest of 2021 and 2022, to introduce these more advanced features of PyNN, so keep an eye on the EBRAINS website.
359 +We will be releasing a series of tutorials, throughout this year, to introduce these more advanced features of PyNN, so keep an eye on the EBRAINS website.
359 359  
360 360  (% class="box successmessage" %)
361 361  (((