核心提示:MATLAB代做-python代做-Which Model to Use For Cortical ...
% This MATLAB file generates figure 1 in the paper by
% Izhikevich E.M. (2004)
% Which Model to Use For Cortical Spiking Neurons?
% use MATLAB R13 or later. November 2003. San Diego, CA
%%%%%%%%%%%%%%% (A) tonic spiking %%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,1)
a=0.02; b=0.2; c=-65; d=6;
V=-70; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:100;
T1=tspan(end)/10;
for t=tspan
if (t>T1)
I=14;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 max(tspan)],-90+[0 0 10 10]);
axis([0 max(tspan) -90 30])
axis off;
title('(A) tonic spiking');
%%%%%%%%%%%%%%%%%% (B) phasic spiking %%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,2)%
a=0.02; b=0.25; c=-65; d=6;
V=-64; u=b*V;
VV=[]; uu=[];
tau = 0.25;tspan = 0:tau:200;
T1=20;
for t=tspan
if (t>T1)
I=0.5;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 max(tspan)],-90+[0 0 10 10]);
axis([0 max(tspan) -90 30])
axis off;
title('(B) phasic spiking');
%%%%%%%%%%%%%% (C) tonic bursting %%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,3)
a=0.02; b=0.2; c=-50; d=2;
V=-70; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:220;
T1=22;
for t=tspan
if (t>T1)
I=15;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 max(tspan)],-90+[0 0 10 10]);
axis([0 max(tspan) -90 30])
axis off;
title('(C) tonic bursting');
%%%%%%%%%%%%%%% (D) phasic bursting %%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,4)
a=0.02; b=0.25; c=-55; d=0.05;
V=-64; u=b*V;
VV=[]; uu=[];
tau = 0.2; tspan = 0:tau:200;
T1=20;
for t=tspan
if (t>T1)
I=0.6;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 max(tspan)],-90+[0 0 10 10]);
axis([0 max(tspan) -90 30])
axis off;
title('(D) phasic bursting');
%%%%%%%%%%%%%%% (E) mixed mode %%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,5)
a=0.02; b=0.2; c=-55; d=4;
V=-70; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:160;
T1=tspan(end)/10;
for t=tspan
if (t>T1)
I=10;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 max(tspan)],-90+[0 0 10 10]);
axis([0 max(tspan) -90 30])
axis off;
title('(E) mixed mode');
%%%%%%%%%%%%%%%% (F) spike freq. adapt %%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,6)
a=0.01; b=0.2; c=-65; d=8;
V=-70; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:85;
T1=tspan(end)/10;
for t=tspan
if (t>T1)
I=30;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 max(tspan)],-90+[0 0 10 10]);
axis([0 max(tspan) -90 30])
axis off;
title('(F) spike freq. adapt');
%%%%%%%%%%%%%%%%% (G) Class 1 exc. %%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,7)
a=0.02; b=-0.1; c=-55; d=6;
V=-60; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:300;
T1=30;
for t=tspan
if (t>T1)
I=(0.075*(t-T1));
else
I=0;
end;
V = V + tau*(0.04*V^2+4.1*V+108-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 max(tspan) max(tspan)],-90+[0 0 20 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(G) Class 1 excitable');
%%%%%%%%%%%%%%%%%% (H) Class 2 exc. %%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,8)
a=0.2; b=0.26; c=-65; d=0;
V=-64; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:300;
T1=30;
for t=tspan
if (t>T1)
I=-0.5+(0.015*(t-T1));
else
I=-0.5;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 max(tspan) max(tspan)],-90+[0 0 20 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(H) Class 2 excitable');
%%%%%%%%%%%%%%%%% (I) spike latency %%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,9)
a=0.02; b=0.2; c=-65; d=6;
V=-70; u=b*V;
VV=[]; uu=[];
tau = 0.2; tspan = 0:tau:100;
T1=tspan(end)/10;
for t=tspan
if t>T1 & t < T1+3
I=7.04;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 T1+3 T1+3 max(tspan)],-90+[0 0 10 10 0 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(I) spike latency');
%%%%%%%%%%%%%%%%% (J) subthresh. osc. %%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,10)
a=0.05; b=0.26; c=-60; d=0;
V=-62; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:200;
T1=tspan(end)/10;
for t=tspan
if (t>T1) & (t < T1+5)
I=2;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 (T1+5) (T1+5) max(tspan)],-90+[0 0 10 10 0 0],...
tspan(220:end),-10+20*(VV(220:end)-mean(VV)));
axis([0 max(tspan) -90 30])
axis off;
title('(J) subthreshold osc.');
%%%%%%%%%%%%%%%%%% (K) resonator %%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,11)
a=0.1; b=0.26; c=-60; d=-1;
V=-62; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:400;
T1=tspan(end)/10;
T2=T1+20;
T3 = 0.7*tspan(end);
T4 = T3+40;
for t=tspan
if ((t>T1) & (t < T1+4)) | ((t>T2) & (t < T2+4)) | ((t>T3) & (t < T3+4)) | ((t>T4) & (t < T4+4))
I=0.65;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 (T1+8) (T1+8) T2 T2 (T2+8) (T2+8) T3 T3 (T3+8) (T3+8) T4 T4 (T4+8) (T4+8) max(tspan)],-90+[0 0 10 10 0 0 10 10 0 0 10 10 0 0 10 10 0 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(K) resonator');
%%%%%%%%%%%%%%%% (L) integrator %%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,12)
a=0.02; b=-0.1; c=-55; d=6;
V=-60; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:100;
T1=tspan(end)/11;
T2=T1+5;
T3 = 0.7*tspan(end);
T4 = T3+10;
for t=tspan
if ((t>T1) & (t < T1+2)) | ((t>T2) & (t < T2+2)) | ((t>T3) & (t < T3+2)) | ((t>T4) & (t < T4+2))
I=9;
else
I=0;
end;
V = V + tau*(0.04*V^2+4.1*V+108-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 (T1+2) (T1+2) T2 T2 (T2+2) (T2+2) T3 T3 (T3+2) (T3+2) T4 T4 (T4+2) (T4+2) max(tspan)],-90+[0 0 10 10 0 0 10 10 0 0 10 10 0 0 10 10 0 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(L) integrator');
%%%%%%%%%%%%%%%%% (M) rebound spike %%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,13)
a=0.03; b=0.25; c=-60; d=4;
V=-64; u=b*V;
VV=[]; uu=[];
tau = 0.2; tspan = 0:tau:200;
T1=20;
for t=tspan
if (t>T1) & (t < T1+5)
I=-15;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 (T1+5) (T1+5) max(tspan)],-85+[0 0 -5 -5 0 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(M) rebound spike');
%%%%%%%%%%%%%%%%% (N) rebound burst %%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,14)
a=0.03; b=0.25; c=-52; d=0;
V=-64; u=b*V;
VV=[]; uu=[];
tau = 0.2; tspan = 0:tau:200;
T1=20;
for t=tspan
if (t>T1) & (t < T1+5)
I=-15;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 (T1+5) (T1+5) max(tspan)],-85+[0 0 -5 -5 0 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(N) rebound burst');
%%%%%%%%%%%%%%%%% (O) thresh. variability %%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,15)
a=0.03; b=0.25; c=-60; d=4;
V=-64; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:100;
for t=tspan
if ((t>10) & (t < 15)) | ((t>80) & (t < 85))
I=1;
elseif (t>70) & (t < 75)
I=-6;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 10 10 15 15 70 70 75 75 80 80 85 85 max(tspan)],...
-85+[0 0 5 5 0 0 -5 -5 0 0 5 5 0 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(O) thresh. variability');
%%%%%%%%%%%%%% (P) bistability %%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,16)
a=0.1; b=0.26; c=-60; d=0;
V=-61; u=b*V;
VV=[]; uu=[];
tau = 0.25; tspan = 0:tau:300;
T1=tspan(end)/8;
T2 = 216;
for t=tspan
if ((t>T1) & (t < T1+5)) | ((t>T2) & (t < T2+5))
I=1.24;
else
I=0.24;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1 T1 (T1+5) (T1+5) T2 T2 (T2+5) (T2+5) max(tspan)],-90+[0 0 10 10 0 0 10 10 0 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(P) bistability');
%%%%%%%%%%%%%% (Q) DAP %%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,17)
a=1; b=0.2; c=-60; d=-21;
V=-70; u=b*V;
VV=[]; uu=[];
tau = 0.1; tspan = 0:tau:50;
T1 = 10;
for t=tspan
if abs(t-T1)<1
I=20;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 T1-1 T1-1 T1+1 T1+1 max(tspan)],-90+[0 0 10 10 0 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(Q) DAP ');
%%%%%%%%%%%%%% (R) accomodation %%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,18)
a=0.02; b=1; c=-55; d=4;
V=-65; u=-16;
VV=[]; uu=[]; II=[];
tau = 0.5; tspan = 0:tau:400;
for t=tspan
if (t < 200)
I=t/25;
elseif t < 300
I=0;
elseif t < 312.5
I=(t-300)/12.5*4;
else
I=0;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*(V+65));
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
II(end+1)=I;
end;
plot(tspan,VV,tspan,II*1.5-90);
axis([0 max(tspan) -90 30])
axis off;
title('(R) accomodation');
%%%%%%%%%%%%%% (S) inhibition induced spiking %%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,19)
a=-0.02; b=-1; c=-60; d=8;
V=-63.8; u=b*V;
VV=[]; uu=[];
tau = 0.5; tspan = 0:tau:350;
for t=tspan
if (t < 50) | (t>250)
I=80;
else
I=75;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 50 50 250 250 max(tspan)],-80+[0 0 -10 -10 0 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(S) inh. induced sp.');
%%%%%%%%%%%%%% (T) inhibition induced bursting %%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(5,4,20)
a=-0.026; b=-1; c=-45; d=-2;
V=-63.8; u=b*V;
VV=[]; uu=[];
tau = 0.5; tspan = 0:tau:350;
for t=tspan
if (t < 50) | (t>250)
I=80;
else
I=75;
end;
V = V + tau*(0.04*V^2+5*V+140-u+I);
u = u + tau*a*(b*V-u);
if V > 30
VV(end+1)=30;
V = c;
u = u + d;
else
VV(end+1)=V;
end;
uu(end+1)=u;
end;
plot(tspan,VV,[0 50 50 250 250 max(tspan)],-80+[0 0 -10 -10 0 0]);
axis([0 max(tspan) -90 30])
axis off;
title('(T) inh. induced brst.');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
set(gcf,'Units','normalized','Position',[0.3 0.1 0.6 0.8]);
联系:highspeedlogic
QQ :1224848052
微信:HuangL1121
邮箱:1224848052@qq.com
微信扫一扫: