function [CAPtime, rate]=CAP(time_tot, duration, hyp) % This function applies Terzano's rules [Terzano et al., 2001] to count CAP sequences % and computes for each night the CAPtime and the CAPrate=CAPtime/NREMtime % Developed by Martin O. Mendez, PhD and Sara Mariani, MSc, under the supervision of professor Anna M. Bianchi and Professor % Sergio cerutti, at the Department of Bioengineering of Politecnico di Milano, Italy % inputs: % - time_tot is the vector of the starting times of phases A in seconds % - duration is the vector of the durations of phases A in seconds % - hyp is a two-column matrix containing the hypnogram and the reference epochs startB =[]; startA = []; durationB = []; upto60 = []; CAPs=[]; CAPf=[]; startB = time_tot+duration; %B phase start startA = time_tot; %A phase start durationB = startA(2:end)-startB(1:end-1); %array containing the durations of B phases upto60 = find(durationB>=60); %non CAP count=0; countCAP=0; for k = 1:length(durationB), %for each B phase if durationB(k)<60, count = count + 1; else if count>=2, countCAP=countCAP+1; %number of CAP sequences CAPf(countCAP)=k; %correspondance between the number or CAP sequence found and the phase A in which it ended CAPs(countCAP)=k-count; %correspondance between the number or CAP sequence found and the phase A in which it started end count=0; end if k==length(durationB) & count>=2, countCAP=countCAP+1; CAPf(countCAP)=k+1; CAPs(countCAP)=k-count+1; end end NREMtime=numel(find(hyp(:,1)~=5 & hyp(:,1)~=0))*30; %%sleep NREM time CAPtime=sum(startA(CAPf)-startA(CAPs)); rate=CAPtime/NREMtime;