Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Neurons II
CA6 – Theoretical Neuroscience
Romain Brette (romain.brette@ens.fr)
Today
1.
2.
3.
The integrate-and-fire model
Simulation of neural networks
Dendrites
Books
Principles of Computational Modelling in Neuroscience, by Steratt,
Graham, Gillies, Willshaw, Cambridge University Press
Theoretical neuroscience, by Dayan & Abbott, MIT Press
Spiking neuron models, by Gerstner & Kistler, Cambridge Univerity
Press
Dynamical systems in neuroscience, by Izhikevich, MIT Press
Biophysics of computation, by Koch, Oxford University Press
Introduction to Theoretical Neurobiology, by Tuckwell, Cambridge
University Press
The integrate-and-fire model
The Hodgkin-Huxley model
Nobel Prize 1963
Model of the squid giant axon
dV
g l ( El V ) gm 3 h( E Na V ) g K n 4 ( E K V )
dt
dm
m (V )
m (V ) m
dt
dh
h (V ) h (V ) h
dt
dn
n (V ) n (V ) n
dt
C
The Hodgkin-Huxley model
The spike threshold
action potential or « spike »
postsynaptic
potential (PSP)
spike threshold
temporal integration
The sodium current
dm
m (V ) m
dt
I gm( ENa V )
m (V )
reversal potential
(= 50 mV)
max. conductance (= all
channels open)
dV
C
g l ( El V ) gm( E Na V )
dt
dm
m (V )
m (V ) m
dt
Triggering of an action potential
dV
C
g l ( El V ) gm( E Na V )
dt
dm
m (V )
m (V ) m
dt
The time constant of the sodium channel is very short (fraction of ms):
m m (V )
we approximate
dV
C
g l ( El V ) gm (V )( E Na V ) f (V )
dt
Triggering of an action potential
C
dV
g l ( El V ) gm (V )( E Na V ) f (V )
dt
unstable
0
V1 ≈ El
V2
stable
f(V)
V3 ≈ ENa
V
stable
fixed points
What happens when the neuron receives a presynaptic spike?
V -> V+w
Below V2, we go back to rest,
above V2, the potential grows (to V3 ≈ ENa)
V2 is the threshold
The integrate-and-fire model
« postsynaptic potential »
PSP
action potential
spike threshold
« Integrate-and-fire »:
dVm
EL Vm RI
dt
If V = Vt (threshold)
then: neuron spikes and V→Vr (reset)
(phenomenological description of action potentials)
Is this a sensible description
of neurons?
A phenomenological approach
Fitting spiking models to electrophysiological recordings
Injected current
Recording
Model
Rossant et al. (Front. Neuroinform. 2010)
(IF with adaptive threshold fitted with Brian + GPU)
Results: regular spiking cell
Winner of INCF
competition: 76%
(variation of adaptive
threshold IF)
Rossant et al. (2010). Automatic fitting of spiking
neuron models to electrophysiological recordings
(Frontiers in Neuroinformatics)
Good news
Adaptive integrate-and-fire models are good
phenomenological models!
(response to somatic injection)
The firing rate
T = interspike interval (ISI)
Firing rate
F= 10 spikes/ 100 ms = 100 Hz
F
1
Tn
(Tn = tn+1-tn)
Constant current
dVm
EL Vm RI
dt
Firing condition:
threshold Vt
reset Vr
EL RI Vt
Vt E L
I
R
« Rheobase current »
Time to threshold:
EL RI Vm (0)
T log
EL RI Vt
EL RI Vr
T log
EL RI Vt
from reset
Current-frequency relationship
1
E L RI Vr
F log
T
EL RI Vt
1
Refractory period
Δ = refractory period
T log
EL RI Vr
EL RI Vt
from reset
1
EL RI Vr
F log
T
EL RI Vt
1
max 1/Δ
Simulating neural networks with
Brian
Who is Brian?
briansimulator.org
Example: current-frequency curve
from brian import *
N = 1000
tau = 10 * ms
eqs = '''
dv/dt=(v0-v)/tau : volt
v0 : volt
'''
group = NeuronGroup(N, model=eqs,
threshold=10 * mV, reset=0 * mV,
refractory=5 * ms)
group.v = 0 * mV
group.v0 = linspace(0 * mV, 20 * mV, N)
counter = SpikeCounter(group)
duration = 5 * second
run(duration)
plot(group.v0 / mV, counter.count / duration)
show()
Simulating neural networks with
Brian
Synaptic currents
synapse
synaptic
current
postsynaptic neuron
Is(t)
dVm
EL Vm RI s
dt
Idealized synapse
Total charge
Q Is
Opens for a short duration
Is(t)=Qδ(t)
Dirac function
Vm (t ) EL
dVm
E L Vm RQ (t )
dt
Spike-based notation:
EL
dVm
E L Vm
dt
RQ
Vm Vm
at t=0
RQ
e
t
Example: a fully connected network
from brian import *
tau = 10 * ms
v0 = 11 * mV
N = 20
w = .1 * mV
group = NeuronGroup(N, model='dv/dt=(v0-v)/tau : volt',
threshold=10 * mV, reset=0 * mV)
W = Connection(group, group, 'v', weight=w)
group.v = rand(N) * 10 * mV
S = SpikeMonitor(group)
run(300 * ms)
raster_plot(S)
show()
Example: a fully connected network
from brian import *
tau = 10 * ms
v0 = 11 * mV
N = 20
w = .1 * mV
group = NeuronGroup(N, model='dv/dt=(v0-v)/tau : volt',
threshold=10 * mV, reset=0 * mV)
W = Connection(group, group, 'v', weight=w)
group.v = rand(N) * 10 * mV
S = SpikeMonitor(group)
run(300 * ms)
raster_plot(S)
show()
R.E. Mirollo and S.H. Strogatz. Synchronization of pulse-coupled biological
oscillators. SIAM Journal on Applied Mathematics 50, 1645-1662 (1990).
Example 2: a ring of IF neurons
from brian import *
tau = 10 * ms
v0 = 11 * mV
N = 20
w = 1 * mV
ring = NeuronGroup(N, model='dv/dt=(v0-v)/tau : volt',
threshold=10 * mV, reset=0 * mV)
W = Connection(ring, ring, 'v')
for i in range(N):
W[i, (i + 1) % N] = w
ring.v = rand(N) * 10 * mV
S = SpikeMonitor(ring)
run(300 * ms)
raster_plot(S)
show()
Example 2: a ring of IF neurons
from brian import *
tau = 10 * ms
v0 = 11 * mV
N = 20
w = 1 * mV
ring = NeuronGroup(N, model='dv/dt=(v0-v)/tau : volt',
threshold=10 * mV, reset=0 * mV)
W = Connection(ring, ring, 'v')
for i in range(N):
W[i, (i + 1) % N] = w
ring.v = rand(N) * 10 * mV
S = SpikeMonitor(ring)
run(300 * ms)
raster_plot(S)
show()
Example 3: a noisy ring
from brian import *
tau = 10 * ms
sigma = .5
N = 100
mu = 2
eqs = """
dv/dt=mu/tau+sigma/tau**.5*xi : 1
"""
group = NeuronGroup(N, model=eqs, threshold=1, reset=0)
C = Connection(group, group, 'v')
for i in range(N):
C[i, (i + 1) % N] = -1
S = SpikeMonitor(group)
trace = StateMonitor(group, 'v', record=True)
run(500 * ms)
subplot(211)
raster_plot(S)
subplot(212)
plot(trace.times / ms, trace[0])
show()
Example 3: a noisy ring
from brian import *
tau = 10 * ms
sigma = .5
N = 100
mu = 2
eqs = """
dv/dt=mu/tau+sigma/tau**.5*xi : 1
"""
group = NeuronGroup(N, model=eqs, threshold=1, reset=0)
C = Connection(group, group, 'v')
for i in range(N):
C[i, (i + 1) % N] = -1
S = SpikeMonitor(group)
trace = StateMonitor(group, 'v', record=True)
run(500 * ms)
subplot(211)
raster_plot(S)
subplot(212)
plot(trace.times / ms, trace[0])
show()
Example 4: topographic connections
from brian import *
tau = 10 * ms
N = 100
v0 = 5 * mV
sigma = 4 * mV
group = NeuronGroup(N, model='dv/dt=(v0-v)/tau + sigma*xi/tau**.5 : volt',
threshold=10 * mV, reset=0 * mV)
C = Connection(group, group, 'v',
weight=lambda i, j:.4 * mV * cos(2. * pi * (i - j) * 1. / N))
S = SpikeMonitor(group)
R = PopulationRateMonitor(group)
group.v = rand(N) * 10 * mV
run(5000 * ms)
subplot(211)
raster_plot(S)
subplot(223)
imshow(C.W.todense(), interpolation='nearest')
title('Synaptic connections')
subplot(224)
plot(R.times / ms, R.smooth_rate(2 * ms, filter='flat'))
title('Firing rate')
show()
Example 4: topographic connections
from brian import *
tau = 10 * ms
N = 100
v0 = 5 * mV
sigma = 4 * mV
group = NeuronGroup(N, model='dv/dt=(v0-v)/tau + sigma*xi/tau**.5 : volt',
threshold=10 * mV, reset=0 * mV)
C = Connection(group, group, 'v',
weight=lambda i, j:.4 * mV * cos(2. * pi * (i - j) * 1. / N))
S = SpikeMonitor(group)
R = PopulationRateMonitor(group)
group.v = rand(N) * 10 * mV
run(5000 * ms)
subplot(211)
raster_plot(S)
subplot(223)
imshow(C.W.todense(), interpolation='nearest')
title('Synaptic connections')
subplot(224)
plot(R.times / ms, R.smooth_rate(2 * ms, filter='flat'))
title('Firing rate')
show()
A more realistic synapse model
Electrodiffusion:
I s g s ( Es Vm )
ionic channel conductance
synaptic reversal potential
gs(t)
open
presynaptic
spike
closed
dVm
EL Vm Rg s (t )( Es Vm )
dt
« conductance-based integrate-and-fire model »
Example: random network
from brian import *
taum
taue
taui
Ee =
Ei =
= 20 * msecond
= 5 * msecond
= 10 * msecond
60 * mvolt
-80 * mvolt
eqs = '''
dv/dt = (-v+ge*(Ee-v)+gi*(Ei-v))*(1./taum) : volt
dge/dt = -ge/taue : 1
dgi/dt = -gi/taui : 1'''
P = NeuronGroup(4000, model=eqs, threshold=10 * mvolt,
reset=0 * mvolt, refractory=5 * msecond)
Pe = P.subgroup(3200)
Pi = P.subgroup(800)
we = 0.6
wi = 6.7
Ce = Connection(Pe, P, 'ge', weight=we, sparseness=0.02)
Ci = Connection(Pi, P, 'gi', weight=wi, sparseness=0.02)
P.v = (randn(len(P)) * 5 - 5) * mvolt
P.ge = randn(len(P)) * 1.5 + 4
P.gi = randn(len(P)) * 12 + 20
S = SpikeMonitor(P)
run(1 * second)
raster_plot(S)
show()
Example: random network
from brian import *
taum
taue
taui
Ee =
Ei =
= 20 * msecond
= 5 * msecond
= 10 * msecond
60 * mvolt
-80 * mvolt
eqs = '''
dv/dt = (-v+ge*(Ee-v)+gi*(Ei-v))*(1./taum) : volt
dge/dt = -ge/taue : 1
dgi/dt = -gi/taui : 1'''
P = NeuronGroup(4000, model=eqs, threshold=10 * mvolt,
reset=0 * mvolt, refractory=5 * msecond)
Pe = P.subgroup(3200)
Pi = P.subgroup(800)
we = 0.6
wi = 6.7
Ce = Connection(Pe, P, 'ge', weight=we, sparseness=0.02)
Ci = Connection(Pi, P, 'gi', weight=wi, sparseness=0.02)
P.v = (randn(len(P)) * 5 - 5) * mvolt
P.ge = randn(len(P)) * 1.5 + 4
P.gi = randn(len(P)) * 12 + 20
S = SpikeMonitor(P)
run(1 * second)
raster_plot(S)
show()
Temporal coding
Reliability of spike timing
The same constant current is injected 25
times.
The timing of the first spike is
reproducible
The timing of the 10th spike is not
Mainen & Sejnowski (1995)
Reliability of spike timing
Time of spike n:
tn1 tn Tn
n 1
t n t1 Ti
i 1
Constant current:
tn t1 (n 1)T t1 (n 1) f ( I )
Similar constant current: I+δ
tn ( I ) tn ( I ) (n 1)( f ( I ) f ( I ))
the distance between spikes grows linearly
Reliability of spike timing
Constant current + noise:
n 1
t n t1 Ti
i 1
Ti T small noise
Variance:
var( tn ) (n 1) var( small noise )
the distance between spikes grows as
n
But
The same variable current is injected 25
times
The timing of spikes is reproductible
even after 1 s.
Mainen & Sejnowski (1995)
(cortical neuron in vitro, injection at soma)
In the integrate-and-fire model
dVm
EL Vm RI (t )
dt
and if Vm=Vt:Vm → Vr
Spikes are precise if the injected
current is variable
in silico
in vitro
Dendrites
The dendritic tree
So far we assumed the potential is the same
everywhere on the neuron (« point model » or
« isopotential model »)
Not true!
Electrical model of a dendrite
outside
inside
dx
Assumptions:
• Extracellular milieu is conductor (= isopotential)
• Intracellular potential varies mostly along the dendrite (not across)
Let V(x) = Vintra(x) - Vextra
Electrical model of a dendrite
V(x)
I i (x)
I i ( x)
V(x+dx)
V ( x) V ( x dx)
1 V
Ra dx
Ra x
Electrical model of a dendrite
d
dx
Capacitance:
C dx Cmd dx
specific membrane capacitance
Membrane resistance:
Rm
R
dx d dx
Axial resistance:
Ra dx
specific membrane resistance
intracellular resistivity
4 Ri dx
d 2
The cable equation
Kirchhoff’s law at position x:
2
V
V
2
V EL
2
x
t
RmCm
membrane time constant
dRm
4 Ri
space constant or
« electrotonic constant »
Synapses
Is(t) = synaptic current at position x
Discontinuity of longitudinal current at position x:
I i ( x , t ) I i ( x , t ) I s (t )
1 V
1 V
(x , t)
( x , t ) I s (t )
Ra x
Ra x
Stationary response
2
V
V
2
V EL
2
x
t
2
d
V
2
V EL
2
dx
Let EL=0 (reference potential)
2
d
V
2
V
2
dx
Solutions:
V ( x) ae x / be x /
We need boundary conditions to determine a and b
Stationary response: infinite cable
I = (constant) current at x=0
V(x) is bounded
1 V
1 V
(0 , t )
(0 , t ) I
Ra x
Ra x
Exponential solution on each half-cylinder:
Ra I x /
V ( x)
e
2
Rm
Ra
d
Green function
I(t) = current at position x=0
bounded V(x)
1 V
1 V
(0 , t )
(0 , t ) I (t )
Ra x
Ra x
Let G(x,t) the solution of the cable equation with condition LV=δ(t).
Then:
V ( x, t ) G( x, s) I (t s)ds
0
(convolution)
G = Green function
Green function
I(t) = current at position x=0
bounded V(x)
1 V
1 V
(0 , t )
(0 , t ) (t )
Ra x
Ra x
(Fourier transform)
1
G( x, t )
C
t x 2
exp( 2 ) H (t )
4t
4 t
(Gaussian for x)
Dendritic delay
time to maximum = t*(x)
V
V
( x, t*) 0
t
simpler (and equivalent:)
(log V )
( x, t*) 0
t
t
t * ( x)
x o(1 / x)
2
8
(Pseudo) propagation speed:
v
2
proportional to
d
The dendritic tree
not really a cylinder
but almost: connected cylinders
Cable equation on the dendritic tree
On each cylinder k:
2Vk
Vk
k
Vk
2
x
t
d k Rm
k
4 Ri
2
At each branching point:
Continuity of potential:
V0 ( L) V1 (0) V2 (0)
0
Kirchhoff’s law
L
4 Ri
Rk 2
d k
1 V0
1 V1
1 V2
( L, t )
(0, t )
(0, t )
R0 x
R1 x
R2 x
Cable equation on the dendritic tree
At endings:
No current across:
Vk
( L, t ) 0
x
At the soma:
Kirchhoff’s law:
isopote
ntial
0
V0
1 V0
(0, t ) C
(0, t ) g LV0 (0, t )
R0 x
t
transmembrane current
Cable equation on the dendritic tree
Synapses:
Is(t) = synaptic current at position x
1 Vk
1 Vk
(x , t)
( x , t ) I s (t )
Rk x
Rk x
Cable equation on the dendritic tree
Summary:
Vk
( L, t ) 0
x
Vk 0 ( Lk 0 )
Vk1 (0)
2
Vk
Vk
2
k
Vk
2
x
t
Linear homogeneous PDEs
1 Vk 0
1 Vk1
1 Vk 2
( Lk 0 , t )
(0, t )
(0, t )
Rk 0 x
Rk1 x
Rk 2 x
Vk 2 (0)
Linear homogeneous
conditions:
V
1 V0
(0, t ) C 0 (0, t ) g LV0 (0, t )
R0 x
t
Lj(V)=0
linear operator
Synapses:
1 Vk
1 Vk
(x , t)
( x , t ) I s (t )
Rk x
Rk x
S (V ) I s (t )
Superposition principle
Postsynaptic potential PSPj(t):
solution at soma of
2Vk
Vk
k
Vk
2
x
t
2
Lj(V)=0
S j (V ) I j (t )
cable equation
PSPj(t)=V(0,t)
homogeneous conditions
(branchings, etc)
synaptic current at synapse j
for a spike at time 0
Solution for multiple spikes at all synapses:
V (0, t ) PSP(t t )
k
j
j ,k
kth spike at synapse j
Dendrites: summary
Membrane equation ⟶ partial
differential equation « the cable
equation »
2
V
V
2
V g i ( Ei V )
2
t
x
i, j
Linearity ⇒ superposition principle
Vm (t ) PPSi (t ti j )
i, j
Different story with non-linear
conductances!
See: Biophysics of computation, by Christof Koch, Oxford University Press
Variations around the integrateand-fire model
The « perfect integrator »
Neglect the leak current:
dVm
EL Vm RI (t )
dt
Vt Vr
2
Or more precisely: replace Vm by
dVm
V Vr
EL t
RI (t )
dt
2
Vt Vr
2
The perfect integrator
dV
and if V=Vt:V → Vr
I (t )
dt
EL (Vt Vr ) / 2 RI (t )
*
I (t )
Normalization
Vt=1,Vr=0
= change of variable for V:
V* = (V-Vr)/(Vt-Vr)
idem for I
The perfect integrator
Constant current
dV
I
dt
Integration: V (t ) V (0) It
Time to threshold:
1
T
I
Firing rate:
1
F I
T
if I>0
The perfect integrator
Variable threshold
dV
I (t )
dt
t
Integration: V (t ) V (0) I ( s)ds
0
Firing rate:
I (t )
F I
F 0 Hz
if
I 0
otherwise
1
sin( 2ft )
2
Comparison with integrate-and-fire:
constant current
Good approximation far from threshold
(proof: Taylor expansion)
R
Spike timing: the perfect integrator is not
reliable
2 different initial conditions:
dV1
I (t )
dt
dV2
I (t )
dt
constant difference modulo 1
2 slightly different inputs (ex. noise):
dV1
dV2
I (t )
I (t ) (t )
dt
dt
t
the difference grows as
(s)ds
0
(modulo 1)
O t
if ε(t) = noise
The quadratic IF model
Comes from bifurcation analysis of HH model, i.e., for
constant near-threshold input.
dV
a(V V0 )(V Vt ) RI
dt
Resting potential
Threshold
Spikes when V>Vmax (possibly infinity)
More realistic current-frequency curve (contant input)
But not realistic in fluctuation-driven regimes (noisy
input)
The exponential integrate-and-fire model
Spike initiation is due to the sodium (Na) channel
C
dV
g l ( El V ) gm3h( E Na V )
dt
INa
Boltzmann function
Va=-30 mV, ka=6 mV
(typical values)
I Na ~ exp(
V VT
)
ka
The exponential integrate-and-fire model
(Fourcaud-Trocmé et al., 2003)
(spike when V diverges to infinity)
The exponential integrate-and-fire model
(Fourcaud-Trocmé et al., 2003)
Na+ current (fast activation)
With adaptation, it predicts output spike
trains of Hodgkin-Huxley models
The exponential I-V curve fits in
vitro recordings
V
Brette & Gerstner (J Neurophysiol 2005)
Gerstner & Brette (Scholarpedia 2009)
Badel et al. (J Neurophysiol 2008)
Izhikevich model
Comes from bifurcation analysis of HH equations with
constant inputs near threshold
→ not correct for fluctuation-driven regimes
Many neuron types by changing a few
parameters
Fig. from E. M. Izhikevich, IEEE Transactions on Neural Networks 14, 1569 (2003).
Adaptive exponential model
Same as Izhikevich model, but with exponential initiation
dV
V VT
g L (V EL ) g L T exp(
) w I
dt
T
dw
w
a(V El ) w
dt
C
Spike:
V → Vr
w→w+b
More realistic for fluctuation-driven regimes
Brette, R. and W. Gerstner (2005). J Neurophysiol 94: 3637-3642.