main_function_calculate_PAC_several_GutGlue_segs.m 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. function pacwin= main_function_calculate_PAC_several_GutGlue_segs(Experiment,exp_num, Path,rangePhase,rangeAmplitude,cross,measure,Merge_num)
  2. %written by Xiaxia
  3. % cross --- 'aa' , ab, bb, ba , region
  4. % measure---- the method name, 'mi', 'esc', 'cfc'
  5. % rangePhase - range of frequencies for low signal; for example 1:1:20
  6. % rangeAmplitude - range of frequencies for high signal; for example
  7. % 30:2:200
  8. % Merge_num, the number of segments to merge
  9. cd(Path.output)
  10. dirName=strcat('Mi_PAC OB Phase LEC Amplitude 2s no zeropad filter 1')
  11. mkdir(dirName)
  12. th_r=2;flag_signal='xndetrend';
  13. for inum=1:length(exp_num)
  14. iExperiment=exp_num(inum);
  15. nameBaseline=Experiment(iExperiment).name1;
  16. name_nO=Experiment(iExperiment).name2;
  17. Name={nameBaseline,name_nO};
  18. Channel1=Experiment(iExperiment).OBchannels; %OB
  19. Channel2=Experiment(iExperiment).LECchannels; %LEC
  20. %%%%%%%%% load filtered and cut glued signal to calculate PE
  21. for group=1:length(Name)
  22. filename=Name{group};
  23. clear signal_LFP
  24. clear Signal1
  25. load( strcat(Path.temp,filesep,'nlx_load_LFP_LP100',filesep,filename,'\CSC',num2str(Channel1),'.mat'));
  26. fs=fsOutput;
  27. Signal1=ZeroPhaseFilter(signal_LFP,fs,[1 100]);
  28. clear signal_LFP
  29. clear Signal2
  30. load( strcat(Path.temp,filesep,'nlx_load_LFP_LP100',filesep,filename,'\CSC',num2str(Channel2),'.mat'));
  31. Signal2=ZeroPhaseFilter(signal_LFP,fs,[1 100]);
  32. %load overlapping Event timestamps
  33. clear oscStartInner
  34. clear oscEndInner
  35. clear timestamps1
  36. load( strcat(Path.output,filesep,'SymOsc50',filesep,filename,'.mat'));
  37. timestamps1(1,:)=oscStartInner/fs;
  38. timestamps1(2,:)=oscEndInner/fs;
  39. [ Sig1,Nwindows1]=cutandglue_nozeropadding(Signal1,timestamps1',fs);
  40. [ Sig2,Nwindows2]=cutandglue_nozeropadding(Signal2,timestamps1',fs);
  41. Signal1=Sig1.xndetrend;
  42. size(Signal1)
  43. Signal2=Sig2.xndetrend;
  44. segs=size(Signal2,1)
  45. Merge_segs=floor(2*segs/Merge_num-1)
  46. for Merge_seg=1:Merge_segs
  47. %Tem=(Merge_seg-1)*Merge_num+1:Merge_seg*Merge_num;
  48. Tem=floor(Merge_seg-1)*Merge_num/2+1:(Merge_seg+1)*Merge_num/2;
  49. if strcmp(cross,'aa')
  50. X1=Signal1(Tem,:);
  51. X2=Signal1(Tem,:);
  52. end
  53. if strcmp(cross,'ab')
  54. X1=Signal1(Tem,:);
  55. X2=Signal2(Tem,:);
  56. end
  57. if strcmp(cross,'ba')
  58. X2=Signal2(Tem,:);
  59. X1=Signal1(Tem,:);
  60. end
  61. if strcmp(cross,'bb')
  62. X1=Signal2(Tem,:);
  63. X2=Signal2(Tem,:);
  64. end
  65. [PAC_2to12_15to80]=find_pac_shf_several_CutGlue_segs(X2,fs,measure,X1,rangePhase,rangeAmplitude);
  66. pacwin{Merge_seg}=PAC_2to12_15to80
  67. clear PAC_2to12_15to80;
  68. end
  69. %pacwin=relat_shaf_win(pacwin{iExperiment});
  70. dirName
  71. cd(Path.output)
  72. cd(dirName)
  73. save(filename,'pacwin')
  74. end
  75. end
  76. end