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 ([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: 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.