clear
clc
%% load data
%%%%%% control group
file_saline = {'mouse1_date1_brainstate.mat'...
               'mouse1_date2_brainstate.mat'...
               'mouse2_date1_brainstate.mat'...
               'mouse2_date2_brainstate.mat'};
    
saline_mouse_low = [1 3];   %%%%%% 1 represents first session of mouse1, 3 represents first session of mouse2
saline_mouse_up = [2 4];    %%%%%% 2 represents last session of mouse1, 4 represents last session of mouse2

%%%%%%% experimental group
file_cno = {'mouse1_date1_brainstate.mat'...
            'mouse1_date2_brainstate.mat'...
            'mouse2_date1_brainstate.mat'...
            'mouse2_date2_brainstate.mat'};
    
cno_mouse_low = [1 3];   
cno_mouse_up = [2 4];   

interval = 30;   %% min, data bin to show
total_time = 3;  %% hour, recording time
behav_bin = 5;   %% sec
%%%%%%%%%%%%%%%

cd G:\code_call\duration_and_number

         [rem_duration_average_in_bin_session_saline,rem_num_in_bin_session_saline,rem_duration_percent_in_bin_session_saline,...
          nrem_duration_average_in_bin_session_saline,nrem_num_in_bin_session_saline,nrem_duration_percent_in_bin_session_saline,...
          wake_duration_average_in_bin_session_saline,wake_num_in_bin_session_saline,wake_duration_percent_in_bin_session_saline,...
          rem_duration_total_average_session_saline,rem_num_session_saline,rem_duration_percent_session_saline,...
          nrem_duration_total_average_session_saline,nrem_num_session_saline,nrem_duration_percent_session_saline,...
          wake_duration_total_average_session_saline,wake_num_session_saline,wake_duration_percent_session_saline,...
          nrem_first_onset_session_saline,...
          rem_duration_average_in_bin_mouse_saline,rem_num_in_bin_mouse_saline,rem_duration_percent_in_bin_mouse_saline,...
          nrem_duration_average_in_bin_mouse_saline,nrem_num_in_bin_mouse_saline,nrem_duration_percent_in_bin_mouse_saline,...
          wake_duration_average_in_bin_mouse_saline,wake_num_in_bin_mouse_saline,wake_duration_percent_in_bin_mouse_saline,...
          rem_duration_total_average_mouse_saline,rem_num_mouse_saline,rem_duration_percent_mouse_saline,...
          nrem_duration_total_average_mouse_saline,nrem_num_mouse_saline,nrem_duration_percent_mouse_saline,...
          wake_duration_total_average_mouse_saline,wake_num_mouse_saline,wake_duration_percent_mouse_saline,...
          nrem_first_onset_mouse_saline] = find_episode(file_saline,saline_mouse_low,saline_mouse_up,behav_bin,interval,total_time);
      
         [rem_duration_average_in_bin_session_cno,rem_num_in_bin_session_cno,rem_duration_percent_in_bin_session_cno,...
          nrem_duration_average_in_bin_session_cno,nrem_num_in_bin_session_cno,nrem_duration_percent_in_bin_session_cno,...
          wake_duration_average_in_bin_session_cno,wake_num_in_bin_session_cno,wake_duration_percent_in_bin_session_cno,...
          rem_duration_total_average_session_cno,rem_num_session_cno,rem_duration_percent_session_cno,...
          nrem_duration_total_average_session_cno,nrem_num_session_cno,nrem_duration_percent_session_cno,...
          wake_duration_total_average_session_cno,wake_num_session_cno,wake_duration_percent_session_cno,...
          nrem_first_onset_session_cno,...
          rem_duration_average_in_bin_mouse_cno,rem_num_in_bin_mouse_cno,rem_duration_percent_in_bin_mouse_cno,...
          nrem_duration_average_in_bin_mouse_cno,nrem_num_in_bin_mouse_cno,nrem_duration_percent_in_bin_mouse_cno,...
          wake_duration_average_in_bin_mouse_cno,wake_num_in_bin_mouse_cno,wake_duration_percent_in_bin_mouse_cno,...
          rem_duration_total_average_mouse_cno,rem_num_mouse_cno,rem_duration_percent_mouse_cno,...
          nrem_duration_total_average_mouse_cno,nrem_num_mouse_cno,nrem_duration_percent_mouse_cno,...
          wake_duration_total_average_mouse_cno,wake_num_mouse_cno,wake_duration_percent_mouse_cno,...
          nrem_first_onset_mouse_cno] = find_episode(file_cno,cno_mouse_low,cno_mouse_up,behav_bin,interval,total_time);
      
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  Averaged across sessions,in each bin (Fig 1)

figure1 = figure('position',[100 100 800 600]);
annotation(figure1,'textbox',[0.4 0.9 0.5 0.09],'String',{'Averaged across sessions'},'FontSize',12,'FitBoxToText','off','EdgeColor','none');

%%%%%%%%%%%%%%%%%%%  episode percent
subplot('position',[0.1 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(rem_duration_percent_in_bin_session_saline,rem_duration_percent_in_bin_session_cno)
ylabel('Percent (%)'); title('REM'); 
legend1 = legend('Saline','CNO');
set(legend1,'Position',[0.12 0.8 0.098 0.06]);

subplot('position',[0.41 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(nrem_duration_percent_in_bin_session_saline,nrem_duration_percent_in_bin_session_cno)
title('NREM')

subplot('position',[0.72 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(wake_duration_percent_in_bin_session_saline,wake_duration_percent_in_bin_session_cno)
title('Wake')


%%%%%%%%%%%%%%%%%%%  episode duration
subplot('position',[0.1 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(rem_duration_average_in_bin_session_saline,rem_duration_average_in_bin_session_cno)
ylabel('Episode duration (s)');

subplot('position',[0.41 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(nrem_duration_average_in_bin_session_saline,nrem_duration_average_in_bin_session_cno)

subplot('position',[0.72 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(wake_duration_average_in_bin_session_saline,wake_duration_average_in_bin_session_cno)

%%%%%%%%%%%%%%%%%%%  episode number
subplot('position',[0.1 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(rem_num_in_bin_session_saline,rem_num_in_bin_session_cno)
ylabel('Episode number');

subplot('position',[0.41 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(nrem_num_in_bin_session_saline,nrem_num_in_bin_session_cno)


subplot('position',[0.72 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(wake_num_in_bin_session_saline,wake_num_in_bin_session_cno)

%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  Averaged across sessions,in each session (Fig 2)

figure2 = figure('position',[100 100 800 600]);
annotation(figure2,'textbox',[0.4 0.9 0.5 0.09],'String',{'Averaged across sessions'},'FontSize',12,'FitBoxToText','off','EdgeColor','none');

%%%%%%%%%%%%%%%%%%%  episode percent
subplot('position',[0.1 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(rem_duration_percent_session_saline,rem_duration_percent_session_cno)
set(gca,'XTickLabel',[]);
ylabel('Percent (%)'); title('REM'); 

subplot('position',[0.41 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(nrem_duration_percent_session_saline,nrem_duration_percent_session_cno)
title('NREM')
set(gca,'XTickLabel',[]);

subplot('position',[0.72 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(wake_duration_percent_session_saline,wake_duration_percent_session_cno)
title('Wake')
set(gca,'XTickLabel',[]);

%%%%%%%%%%%%%%%%%%%  episode duration
subplot('position',[0.1 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(rem_duration_total_average_session_saline,rem_duration_total_average_session_cno)
ylabel('Episode duration (s)');
set(gca,'XTickLabel',[]);

subplot('position',[0.41 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(nrem_duration_total_average_session_saline,nrem_duration_total_average_session_cno)
set(gca,'XTickLabel',[]);

subplot('position',[0.72 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(wake_duration_total_average_session_saline,wake_duration_total_average_session_cno)
set(gca,'XTickLabel',[]);

%%%%%%%%%%%%%%%%%%%  episode number

subplot('position',[0.1 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(rem_num_session_saline,rem_num_session_cno)
ylabel('Episode number');
set(gca,'XTickLabel',{'Saline','CNO'},'XTick',[0.8 2.2]);

subplot('position',[0.41 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(nrem_num_session_saline,nrem_num_session_cno)
set(gca,'XTickLabel',{'Saline','CNO'},'XTick',[0.8 2.2]);


subplot('position',[0.72 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(wake_num_session_saline,wake_num_session_cno)
set(gca,'XTickLabel',{'Saline','CNO'},'XTick',[0.8 2.2]);

%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  Latency of first NREM (Fig 3)

figure('position',[100 200 500 300]);
subplot('position',[0.1 0.1 0.4 0.7])
hold off; hold on
plot_duration_number_in_each_session(nrem_first_onset_session_saline,nrem_first_onset_session_cno)
ylabel('First NREM latency (min)');
set(gca,'XTickLabel',{'Saline','CNO'},'XTick',[0.8 2.2]);
title('Averaged across sessions')

subplot('position',[0.55 0.1 0.4 0.7])
hold off; hold on
plot_duration_number_in_each_session(nrem_first_onset_mouse_saline,nrem_first_onset_mouse_cno)
set(gca,'XTickLabel',{'Saline','CNO'},'XTick',[0.8 2.2]);
title('Averaged across mice')


%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  Averaged across mice,in each bin (Fig 4)

figure1 = figure('position',[100 100 800 600]);
annotation(figure1,'textbox',[0.4 0.9 0.5 0.09],'String',{'Averaged across mice'},'FontSize',12,'FitBoxToText','off','EdgeColor','none');

%%%%%%%%%%%%%%%%%%%  episode percent
subplot('position',[0.1 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(rem_duration_percent_in_bin_mouse_saline,rem_duration_percent_in_bin_mouse_cno)
ylabel('Percent (%)'); title('REM'); 
legend1 = legend('Saline','CNO');
set(legend1,'Position',[0.12 0.8 0.098 0.06]);

subplot('position',[0.41 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(nrem_duration_percent_in_bin_mouse_saline,nrem_duration_percent_in_bin_mouse_cno)
title('NREM')

subplot('position',[0.72 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(wake_duration_percent_in_bin_mouse_saline,wake_duration_percent_in_bin_mouse_cno)
title('Wake')


%%%%%%%%%%%%%%%%%%%  episode duration
subplot('position',[0.1 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(rem_duration_average_in_bin_mouse_saline,rem_duration_average_in_bin_mouse_cno)
ylabel('Episode duration (s)');

subplot('position',[0.41 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(nrem_duration_average_in_bin_mouse_saline,nrem_duration_average_in_bin_mouse_cno)

subplot('position',[0.72 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(wake_duration_average_in_bin_mouse_saline,wake_duration_average_in_bin_mouse_cno)

%%%%%%%%%%%%%%%%%%%  episode number
subplot('position',[0.1 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(rem_num_in_bin_mouse_saline,rem_num_in_bin_mouse_cno)
ylabel('Episode number');

subplot('position',[0.41 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(nrem_num_in_bin_mouse_saline,nrem_num_in_bin_mouse_cno)


subplot('position',[0.72 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_bin(wake_num_in_bin_mouse_saline,wake_num_in_bin_mouse_cno)

%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  Averaged across mice,in each mouse (Fig 5)

figure1 = figure('position',[100 100 800 600]);
annotation(figure1,'textbox',[0.4 0.9 0.5 0.09],'String',{'Averaged across mice'},'FontSize',12,'FitBoxToText','off','EdgeColor','none');

%%%%%%%%%%%%%%%%%%%  episode percent
subplot('position',[0.1 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(rem_duration_percent_mouse_saline,rem_duration_percent_mouse_cno)
set(gca,'XTickLabel',[]);
ylabel('Percent (%)'); title('REM'); 

subplot('position',[0.41 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(nrem_duration_percent_mouse_saline,nrem_duration_percent_mouse_cno)
title('NREM')
set(gca,'XTickLabel',[]);

subplot('position',[0.72 0.65 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(wake_duration_percent_mouse_saline,wake_duration_percent_mouse_cno)
title('Wake')
set(gca,'XTickLabel',[]);

%%%%%%%%%%%%%%%%%%%  episode duration
subplot('position',[0.1 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(rem_duration_total_average_mouse_saline,rem_duration_total_average_mouse_cno)
ylabel('Episode duration (s)');
set(gca,'XTickLabel',[]);

subplot('position',[0.41 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(nrem_duration_total_average_mouse_saline,nrem_duration_total_average_mouse_cno)
set(gca,'XTickLabel',[]);

subplot('position',[0.72 0.37 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(wake_duration_total_average_mouse_saline,wake_duration_total_average_mouse_cno)
set(gca,'XTickLabel',[]);

%%%%%%%%%%%%%%%%%%%  episode number

subplot('position',[0.1 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(rem_num_mouse_saline,rem_num_mouse_cno)
ylabel('Episode number');
set(gca,'XTickLabel',{'Saline','CNO'},'XTick',[0.8 2.2]);

subplot('position',[0.41 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(nrem_num_mouse_saline,nrem_num_mouse_cno)
set(gca,'XTickLabel',{'Saline','CNO'},'XTick',[0.8 2.2]);


subplot('position',[0.72 0.09 0.25 0.23])
hold off; hold on
plot_duration_number_in_each_session(wake_num_mouse_saline,wake_num_mouse_cno)
set(gca,'XTickLabel',{'Saline','CNO'},'XTick',[0.8 2.2]);


