ITW_unfold_calcERPs.m 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. function [n2n,n2h,h2n,h2h,n2n_nodc,n2h_nodc,h2n_nodc,h2h_nodc,sb]=ITW_unfold_calcERPs(d2nd,codingscheme,chan,phase)
  2. subjects=d2nd.subject;
  3. if strcmp(codingscheme,'mashup')
  4. if strcmp(phase,'WLFO')
  5. [~,parampos]= ismember({'(Intercept)','curr_HF','prev_HF','humanface:prevhumanface','samebox_1'},{d2nd.param.name});
  6. elseif strcmp(phase,'Lab')
  7. [~,parampos]= ismember({'2_(Intercept)','curr_HF','prev_HF','humanface:prevhumanface'},{d2nd.param.name});
  8. end
  9. end
  10. n2n=[]; n2h=[]; h2n=[]; h2h=[];
  11. n2n_nodc=[]; n2h_nodc=[]; h2n_nodc=[]; h2h_nodc=[];
  12. sb=[];
  13. for sub_num=1:length(subjects)
  14. fprintf('calculating subject %i \n',subjects(sub_num))
  15. unfold2=d2nd;
  16. unfold2.unfold = unfold2.unfold(sub_num);
  17. unfold2.beta=squeeze(d2nd.beta(:,:,:,sub_num));
  18. unfold2.beta_nodc=d2nd.beta_nodc(:,:,:,sub_num);
  19. if strcmp(phase,'WLFO')
  20. uf2am = uf_predictContinuous(unfold2,'predictAt',{{'sac_amplitude',[0.5 1 2.5 5 7.5 10]},{'fix_avgpos_y',linspace(500,1500,5)},{'fix_avgpos_x',linspace(900,3000,5)},{'samebox_1',1}});
  21. uf2am = uf_addmarginal(uf2am);
  22. elseif strcmp(phase,'Lab')
  23. uf2am=unfold2;
  24. end
  25. n2n_data = uf2am.beta(chan,:,parampos(1))-unfold2.beta(chan,:,parampos(3))-unfold2.beta(chan,:,parampos(2))+unfold2.beta(chan,:,parampos(4));
  26. n2h_data = uf2am.beta(chan,:,parampos(1))-unfold2.beta(chan,:,parampos(3))+unfold2.beta(chan,:,parampos(2))-unfold2.beta(chan,:,parampos(4));
  27. h2n_data = uf2am.beta(chan,:,parampos(1))+unfold2.beta(chan,:,parampos(3))-unfold2.beta(chan,:,parampos(2))-unfold2.beta(chan,:,parampos(4));
  28. h2h_data = uf2am.beta(chan,:,parampos(1))+unfold2.beta(chan,:,parampos(3))+unfold2.beta(chan,:,parampos(2))+unfold2.beta(chan,:,parampos(4));
  29. n2n(sub_num,:,:)=n2n_data;
  30. n2h(sub_num,:,:)=n2h_data ;
  31. h2n(sub_num,:,:)=h2n_data;
  32. h2h(sub_num,:,:)=h2h_data;
  33. n2n_nodc_data = uf2am.beta_nodc(chan,:,parampos(1))-unfold2.beta_nodc(chan,:,parampos(3))-unfold2.beta_nodc(chan,:,parampos(2))+unfold2.beta_nodc(chan,:,parampos(4));
  34. n2h_nodc_data = uf2am.beta_nodc(chan,:,parampos(1))-unfold2.beta_nodc(chan,:,parampos(3))+unfold2.beta_nodc(chan,:,parampos(2))-unfold2.beta_nodc(chan,:,parampos(4));
  35. h2n_nodc_data = uf2am.beta_nodc(chan,:,parampos(1))+unfold2.beta_nodc(chan,:,parampos(3))-unfold2.beta_nodc(chan,:,parampos(2))-unfold2.beta_nodc(chan,:,parampos(4));
  36. h2h_nodc_data = uf2am.beta_nodc(chan,:,parampos(1))+unfold2.beta_nodc(chan,:,parampos(3))+unfold2.beta_nodc(chan,:,parampos(2))+unfold2.beta_nodc(chan,:,parampos(4));
  37. n2n_nodc(sub_num,:,:)=n2n_nodc_data;
  38. n2h_nodc(sub_num,:,:)=n2h_nodc_data ;
  39. h2n_nodc(sub_num,:,:)=h2n_nodc_data;
  40. h2h_nodc(sub_num,:,:)=h2h_nodc_data;
  41. %samebox data
  42. if strcmp(phase, 'WLFO')
  43. sb_data=uf2am.beta(chan,:,parampos(1))+unfold2.beta(chan,:,parampos(3))+unfold2.beta(chan,:,parampos(2))+unfold2.beta(chan,:,parampos(4))+unfold2.beta(chan,:,parampos(5));
  44. sb(sub_num,:,:)=sb_data;
  45. end
  46. end
  47. end