clc;
clear all;
close all;
% %-----------------upload GPeSTN data
[gpestn2load, pathload, inutile] = uigetfile('simulazioni\GPE*.mat','upload GPeSTN data:');
load(strcat('sims\',gpestn2load));
% %---------------choose the GPi model
[gpi2load, pathload, inutile] = uigetfile('GPI*.mdl','choose the GPi model:');
% % --------------define time vector
sim_length=1000;
t=[0:1:sim_length]';
% % ------------upload parameters
data_GPE;
data_STN;
data_GPI;
data_synapses;
% %-------------upload initial conditions
load in_val;
i_v_16=in_val_16_park2;
sis0=i_v_16(97:112);
sig0=i_v_16(209:224);
vgi0=i_v_16(225:240);
hgi0=i_v_16(241:256);
ngi0=i_v_16(257:272);
rgi0=i_v_16(273:288);
cagi0=i_v_16(289:304);
sgi0=i_v_16(305:320);
% % -----------------------define additional currents and ISTRIATO DIR
% % define IMORE_GPI
ggpegpi=0.3;
imore_gpi=5;
istriato_dir=-9;
IMORE_GPI=(imore_gpi+istriato_dir)*ones(length(t),1);
input5=[t IMORE_GPI];
% % ------------------------DBS!
% % --------------------------------------- define IDBS (input DBS)
passo_DBS=0.1;%choose 0.01 if simulating DBS;
t_DBS=[0:passo_DBS:sim_length]';
amp_DBS=0; %% choose 400 if simulating DBS
freq_DBS=180;
dur_DBS=30;
flag=0;
IDBS=[];
while flag==0
dur0_DBS=floor((1000/freq_DBS)/passo_DBS)-dur_DBS;
period_DBS=[zeros(dur0_DBS,1); amp_DBS*ones(dur_DBS,1)];
if (length(IDBS)+length(period_DBS))<(length(t_DBS));
IDBS=[IDBS; period_DBS];
else
period_DBS=zeros(length(t_DBS)-length(IDBS),1);
IDBS=[IDBS; period_DBS];
flag=1;
end
end
figure()
plot(t_DBS,IDBS);
title('IDBS');
if amp_DBS==0
dbstag='0';
else
dbstag=strcat(num2str(amp_DBS),'-',num2str(freq_DBS),'-',num2str(dur_DBS));
end
input6=[t_DBS IDBS];
% %-------------------------sim!
tic
t1=t_GPESTN;
u1=[VSTN,VGPE];
sim(gpi2load,t(sim_length+1),[],[]);
toc
% %------------------------save!
modelloGPI=gpi2load(1:(length(gpi2load)-4));
tagGPI=strcat(modelloGPI,'--',num2str(ggpegpi),'--',num2str(sim_length),'--',num2str(istriato_dir),'--',dbstag,'--',tagSTNGPE);
filematGPI=strcat(tagGPI,'.mat');
save(strcat('sims\',filematGPI),'t_GPI','VGPI','SYNGPI','filematGPI','tagGPI','filematGPESTN');
% %------------------------plot!
figure(1)
for i=1:min(size(VGPE))
plot(t_GPESTN,VGPE(:,i)-(i-1)*150); hold on
end
grid;
title(strcat('VGPE--',tagSTNGPE));
figure(2)
for i=1:min(size(VSTN))
plot(t_GPESTN,VSTN(:,i)-(i-1)*150); hold on
end
grid;
title(strcat('VSTN--',tagSTNGPE))
figure(3);
for i=1:min(size(VGPI))
plot(t_GPI,VGPI(:,i)-(i-1)*150); hold on
end
grid;
title(strcat('VGPI--',tagGPI));