setsavpath gtype = {'wtld','aiald','wthd','aiahd'}; svon = 0; %% segment and quantify state stats clear fct stdurs for gi = 1:length(gtype) curdf = [bpath gtype{gi} '_hlddata.mat']; load(curdf) stmat = xgt.states; % fraction time in state for bi = 1:200 sl = size(stmat,1); tid = randperm(sl,round(.5*sl)); stbm = stmat(tid,:); xtt = sum(~isnan(stbm(:))); xtr = sum((stbm(:)==2)); xtd = sum((stbm(:)==1)); xft(bi) = xtr/xtt; end fct.dat{gi} = xft; fct.mean(gi) = nanmean(xft); fct.ci(:,gi) = (prctile(xft,[2.5 97.5]))'; % state duration hist & stats ddurs = []; rdurs = []; for xi = 1:size(stmat,1) dvc = stmat(xi,:)==1; rvc = stmat(xi,:)==2; dp = regionprops(dvc,'area','pixelidxlist'); da = cat(1,dp.Area); if ~isempty(da) if dp(1).PixelIdxList(1)==1 da(1) = []; elseif dp(end).PixelIdxList(end)==length(dvc) da(end) = []; end end ddurs = [ddurs; da]; rp = regionprops(rvc,'area','pixelidxlist'); ra = cat(1,rp.Area); if ~isempty(ra) if rp(1).PixelIdxList(1)==1 ra(1) = []; elseif rp(end).PixelIdxList(end)==length(rvc) ra(end) = []; end end rdurs = [rdurs; ra]; end stdurs(gi).rd = rdurs; stdurs(gi).dd = ddurs; end %% run tests fid = 49; dx = [.65 1.35 2.65 3.35]; bw = .45; pclr = {0*[1 1 1],[0 .5 0],0*[1 1 1],[0 .5 0]}; dset = fct.dat; [pmat1,~] = pwrksm(dset); pv.fct = pmat1; figure(fid);clf;hold all [bm,bci] = make_barplt(dx,dset,pclr,fid,bw,2); % title('Fraction time roaming') set(gca,'ylim',[0 .5],'ytick',0:.25:.5,'yticklabel','') set(gcf,'outerposition',[105 641 140 235]) %% dset = {stdurs(1).dd stdurs(2).dd stdurs(3).dd stdurs(4).dd}; [pmat2,~] = pwrksm(dset); pv.ddur = pmat2; figure(fid+1);clf;hold all [bm,bci] = make_barplt(dx,dset,pclr,fid+1,bw,2); % title('Dwelling state duration') set(gca,'ylim',[0 2700],'ytick',0:900:2700,'yticklabel','') set(gcf,'outerposition',[105 401 140 235]) dset = {stdurs(1).rd stdurs(2).rd stdurs(3).rd stdurs(4).rd}; [pmat3,~] = pwrksm(dset); pv.rdur = pmat3 figure(fid+2);clf;hold all [bm,bci] = make_barplt(dx,dset,pclr,fid+2,bw,2); % title('Roaming state duration') set(gca,'ylim',[0 800],'ytick',0:360:800,'yticklabel','') set(gcf,'outerposition',[105 141 140 235]) pcp = [pmat1;pmat2;pmat3]; pfdr = mafdr(pcp(:),'BHFDR',true); pfdm = reshape(pfdr,[3*length(pmat1) length(pmat1)])