clc;
clear all;
close all;
% % ----this script sims the thalamic module
% % --------------choose the GPi data to upload
[gpi2load, pathload, inutile] = uigetfile('simulazioni\GPI1*.mat','Choose the GPi data to upload:');
load(strcat('sims\',gpi2load));
% % ---------------choose the Thalamic model to use
[tal2load, pathload, inutile] = uigetfile('TAL*.mdl','Choose the Thalamic model to use:');
% % --------------define time vector
sim_length=1000;
t=[0:1:sim_length]';
% % ------------upload parameters
data_GPI;
data_TAL;
data_synapses;
ggpith=ggpith*2;
% % -------------upload initial conditions
load in_val
i_v_16=in_val_16_norm2;
vt0=[i_v_16(321),i_v_16(324),i_v_16(321),i_v_16(324),i_v_16(321),i_v_16(324)];
ht0=[i_v_16(322),i_v_16(325),i_v_16(322),i_v_16(325),i_v_16(322),i_v_16(325)];
rt0=[i_v_16(323),i_v_16(326),i_v_16(323),i_v_16(326),i_v_16(323),i_v_16(326)];
% % ---------CTX input
amp_SM=6;
dur_SM=5;
[I_SM n_SM]=CN_calculate_sm(amp_SM,dur_SM,length(t));
input6=[t I_SM];
tagSM=strcat(num2str(amp_SM),'-',num2str(dur_SM));
t_SM=t;
% % -------------------------sim!
tic
t2=t_GPI;
u2=[SYNGPI];
sim(tal2load,t(sim_length+1),[],[]);
toc
% ------------ sample!
freq_camp=2000; %in Hz
passo=1000/freq_camp;
t_TALc=(0:passo:t_TAL(length(t_TAL)))';
VTALc=interp1(t_TAL,VTAL,t_TALc);
IGPTALc=interp1(t_TAL,IGPTAL,t_TALc);
% ------------ spikes detection through a threshold method
soglia_TAL=-40;
[sp_TAL soglia_TAL]=sp_rev_thresh(t_TALc,VTALc,soglia_TAL,'TAL','TAL');
%----------- thalamic spikes count; .
[correc miss fal]=spike_contr(n_SM,t_SM,I_SM,t_TALc,sp_TAL);
correc2=mean(correc);
false2=mean(fal);
missed2=mean(miss);
% % ------------------------save!
modelloTAL=tal2load(1:(length(tal2load)-4));
tagTAL=strcat(modelloTAL,'--',num2str(sim_length),'--',tagSM,'--',tagGPI);
filematTAL=strcat(tagTAL,'.mat');
save(strcat('sims\',filematTAL),'t_TAL','VTAL','t_SM','I_SM','IGPTAL','tagTAL','filematGPI','filematTAL','filematGPESTN','n_SM');
% % --------upload GPeSTN data
load(strcat('sims\',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));
figure(4);
subplot(2,1,1)
for i=1:min(size(VTAL))
plot(t_TAL,VTAL(:,i)-(i-1)*150); hold on
end
grid;
hold on;
plot(t,5*I_SM,'r')
title(strcat('VTAL--',tagTAL));
subplot(2,1,2)
for i=1:min(size(IGPTAL))
plot(t_TAL,IGPTAL(:,i)-(i-1)*10); hold on
end
grid;
title(strcat('IGPTAL--',tagTAL));