-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathStatesToFinalScoring.m
41 lines (29 loc) · 1.43 KB
/
StatesToFinalScoring.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function StateIntervals = StatesToFinalScoring(NREMints,WAKEints,REMints)
minPacketDuration = 30;
maxMicroarousalDuration = 100;
maxEpisodeDuration = 40;
minSWSEpisodeDuration = 20;
minWAKEEpisodeDuration = 20;
minREMEpisodeDuration = 20;
SWSlengths = NREMints(:,2)-NREMints(:,1);
packetintervals = NREMints(SWSlengths>=minPacketDuration,:);
WAKElengths = WAKEints(:,2)-WAKEints(:,1);
MAIntervals = WAKEints(WAKElengths<=maxMicroarousalDuration,:);
WAKEIntervals = WAKEints(WAKElengths>maxMicroarousalDuration,:);
[episodeintervals{2}] = IDStateEpisode(NREMints,maxEpisodeDuration,minSWSEpisodeDuration);
[episodeintervals{1}] = IDStateEpisode(WAKEints,maxEpisodeDuration,minWAKEEpisodeDuration);
[episodeintervals{3}] = IDStateEpisode(REMints,maxEpisodeDuration,minREMEpisodeDuration);
%% Save
StateIntervals.NREMstate = NREMints;
StateIntervals.REMstate = REMints;
StateIntervals.WAKEstate = WAKEIntervals;
StateIntervals.NREMepisode = episodeintervals{2};
StateIntervals.REMepisode = episodeintervals{3};
StateIntervals.WAKEeposode = episodeintervals{1};
StateIntervals.NREMpacket = packetintervals;
StateIntervals.MAstate = MAIntervals;
%% Identify MAs preceeding REM
% [ ~,~,MA_REM,~ ] = FindIntsNextToInts(StateIntervals.MAstate,StateIntervals.REMstate);
% realMA = setdiff(1:length(StateIntervals.MAstate(:,1)),MA_REM);
% StateIntervals.MA_REM = StateIntervals.MAstate(MA_REM,:);
% StateIntervals.MAstate = StateIntervals.MAstate(realMA,:);