Download Neurons II - Romain Brette

Document related concepts
no text concepts found
Transcript
Neurons II
CA6 – Theoretical Neuroscience
Romain Brette ([email protected])
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:
tn1  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  Cmd  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 )
4t
 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( 2ft )
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.
Related documents