clc
clear all
close all
struct.C=10;
struct.gca=2;
struct.Vca=60;
struct.Vm=-20;
struct.sm=12;
struct.gk=3;
struct.Vk=-75;
struct.vn=-5;
struct.sn=10;
struct.taun=30;
struct.Vf=-20;
struct.Sf=2;
struct.gl=0.2;
struct.Vl=-50;
struct.fc=0.01;
struct.alfa=0.0015;
struct.Kc=0.12;
struct.gsk=1.2;
struct.ks=0.4;
struct.gbk=1;
type='ind';
nch=1;
if nch==1
type_color='c';
struct.nch=1;
struct.nca=1;
Y0=[-60, 0.01, 0.1, 0.1, 0.1, 0.1];
elseif nch==2
type_color='g';
if strcmp(type,'ind')
struct.nch=2;
struct.nca=1;
Y0=[-60, 0.01, 0.1, 0.1, 0.1, 0.1,0.1,0.1];
else
struct.nch=1;
struct.nca=2;
Y0=[-60, 0.01, 0.1, 0.1, 0.1, 0.1];
end
elseif nch==3
type_color='m';
if strcmp(type,'ind')
struct.nch=3;
struct.nca=1;
Y0=[-60, 0.01, 0.1, 0.1, 0.1, 0.1,0.1,0.1,0.1,0.1];
else
struct.nch=1;
struct.nca=3;
Y0=[-60, 0.01, 0.1, 0.1, 0.1, 0.1];
end
elseif nch==4
type_color='r';
if strcmp(type,'ind')
struct.nch=4;
struct.nca=1;
Y0=[-60, 0.01, 0.1, 0.1, 0.1, 0.1,0.1,0.1,0.1,0.1,0.1,0.1];
else
struct.nch=1;
struct.nca=4;
Y0=[-60, 0.01, 0.1, 0.1, 0.1, 0.1];
end
end
tspan=0:0.05:3000;
[T, Y]=ode15s('model_pituitary_ODE',tspan, Y0,[],struct);
Y0=Y(end,:);
[T, Y]=ode15s('model_pituitary_ODE',tspan, Y0,[],struct);
color='b';
V=Y(:,1);
mBK=Y(:,2);
n=Y(:,3);
c=Y(:,4);
V_ODE=Y(:,1);
mBK_ODE=Y(:,2);
n_ODE=Y(:,3);
c_ODE=Y(:,4);
Y0=[-60, 0.01, 0.1, 0.1,0.1];
if nch==1
struct.nch=1;
struct.nca=1;
elseif nch==2
if strcmp(type,'ind')
struct.nch=2;
struct.nca=1;
else
struct.nch=1;
struct.nca=2;
end
elseif nch==3
if strcmp(type,'ind')
struct.nch=3;
struct.nca=1;
else
struct.nch=1;
struct.nca=3;
end
elseif nch==4
if strcmp(type,'ind')
struct.nch=4;
struct.nca=1;
else
struct.nch=1;
struct.nca=4;
end
end
tspan=0:0.05:3000;
[T, Y]=ode15s('model_pituitary_singleODE',tspan, Y0,[],struct,0);
Y0=Y(end,:);
[T, Y]=ode15s('model_pituitary_singleODE',tspan, Y0,[],struct,0);
V_1ODE=Y(:,1);
T_1ODE=T;
[T, Y]=ode15s('model_pituitary_singleODE',tspan, Y0,[],struct,1);
Y0=Y(end,:);
[T, Y]=ode15s('model_pituitary_singleODE',tspan, Y0,[],struct,1);
V_1ODE_simp=Y(:,1);
T_1ODE_simp=T;
mBK=Y(:,2);
n=Y(:,3);
c=Y(:,4);
C=struct.C;
gcal=struct.gca;
Vca=struct.Vca;
Vm=struct.Vm;
sm=struct.sm;
gk=struct.gk;
Vk=struct.Vk;
Vn=struct.vn;
sn=struct.sn;
taun=struct.taun;
Vf=struct.Vf;
Sf=struct.Sf;
gl=struct.gl;
Vl=struct.Vl;
ff=struct.fc;
alpha=struct.alfa;
kc=struct.Kc;
gbk=struct.gbk;
gsk=struct.gsk;
ks=struct.ks;
phical=1./(1+exp((Vm-V)/sm));
cinf=c.^2./(c.^2+ks^2);
ica=gcal*phical.*(V-Vca);
ibk=gbk*mBK_ODE.*(V-Vk);
ikdr=gk*n.*(V-Vk);
ileak=gl*(V-Vl);
isk=gsk*cinf.*(V-Vk);
ik =ibk + ikdr+isk;
D_ca=250;
F=9.6485*10^4;
conv_F=10^(-15);
conv_microM=10^6;
k_B=500;
B_tot=30;
conv_V=10^(-3);
g_ca_PQ=2.7;
g_ca_L=2;
g_ca_T=1.7;
conv_S=10^(-12);
r_bk=30*10^(-3);
i_ca_single=abs((V-Vca))*conv_V*g_ca_L*conv_S;
ca_o=i_ca_single/(8*pi*D_ca*F*conv_F*r_bk)*exp(-r_bk/(sqrt(D_ca/k_B/B_tot)))*conv_microM;
bk_par=[ 1.1093 3.3206 2.3298 0.0223 1.6012 16.5793 0.1000 0.4614];
k1_0=bk_par(1)*100;
k2_0=bk_par(2)*100;
K1=bk_par(6);
K2=bk_par(7);
n1=bk_par(3);
n2=bk_par(8);
beta0=bk_par(4);
alpha0=-bk_par(5)*beta0;
ca_c=0.2;
k1=k1_0.*exp(-alpha0*V);
k2=k2_0.*exp(-beta0*V);
foc_Ca_o=k2.*(K2^n2)./(K2^n2+ca_o.^n2);
fco_Ca_o=k1.*(ca_o.^n1)./(ca_o.^n1+K1^n1);
foc_Ca_c=k2.*(K2.^n2)./(K2.^n2+ca_c^n2);
offset=find(V_1ODE>=V_ODE(10),1);
figure
subplot(3,1,1)
plot(T,V_ODE,'Color', type_color)
xlim([0 1600])
ylim([-65 5])
ylabel('V [mV]')
set(gca,'FontSize',12)
subplot(3,1,2)
plot(T_1ODE(1:end-offset+1),V_1ODE(offset:end),'Color',type_color)
xlim([0 1600])
ylim([-65 5])
ylabel('V [mV]')
set(gca,'FontSize',12)
subplot(3,1,3)
plot(T,V_1ODE_simp,type_color)
xlim([0 1600])
ylim([-65 5])
ylabel('V [mV]')
xlabel('time [ms]')
set(gca,'FontSize',12)
set(gcf,'Units','Centimeters');
screenposition = get(gcf,'Position');
set(gcf,'PaperPosition',[0 0 screenposition(3:4)],'PaperSize',[screenposition(3:4)]);