-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathparameterSweepIteration.m
More file actions
executable file
·59 lines (49 loc) · 3.2 KB
/
Copy pathparameterSweepIteration.m
File metadata and controls
executable file
·59 lines (49 loc) · 3.2 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function [targetedSubjRinROIpair,randomSubjRinROIpair,totalNumFramesRemaining,totalNumFrames, ...
meanSamplingVar,meanRunsVar,harmMeanFrames,harmMeanRuns,meanRunsNoSamplingVar,harmMeanFramesMinus3] ...
= parameterSweepIteration(FDcutoff,gevDVcutoff,useGSR,rawCutoff,useFDgev,useDVgev,TR,numROIpairs,SETS, numOfSecToTrim, minSecDataNeeded, ...
numRunsDataNeededPerSubject, minSecDataNeededPerSubject, minNumContiguousDataSeconds)
%A single iteration (set of parameter values) for a volume censoring
%parameter sweep.
numSubjects = length(SETS);
thisSubjNumRuns = nan(numSubjects,1);
for subjectNumber = 1:numSubjects
thisSubjNumRuns(subjectNumber) = size(SETS(subjectNumber).rts,3);
end
maxNumRuns = max(thisSubjNumRuns);
[targetedSubjRinROIpair,randomSubjRinROIpair] = deal(nan(numROIpairs,numSubjects));
[totalNumFramesRemaining,totalNumFrames] = deal(nan(1,numSubjects));
[subjHarmMeanFrames,subjMeanSamplingVar,subjNumRuns,subjRunsVar,subjMeanRunsNoSamplingVar,subjHarmMeanFramesMinus3] ...
= deal(nan(numSubjects,1));
pause(eps); drawnow;
parfor subjectNumber = 1:numSubjects
[thisSubjRscr,thisSubjRandomRscr,totalNumFramesRemaining(subjectNumber),totalNumFrames(subjectNumber), ...
subjHarmMeanFrames(subjectNumber),subjMeanSamplingVar(subjectNumber),subjNumRuns(subjectNumber), ...
subjRunsVar(subjectNumber),subjMeanRunsNoSamplingVar(subjectNumber),subjHarmMeanFramesMinus3(subjectNumber)] = ...
new_getSubjectScrubbedROIpairCorrelations(SETS(subjectNumber),useGSR,FDcutoff, ...
gevDVcutoff,numROIpairs,rawCutoff,useFDgev,useDVgev,maxNumRuns,TR(subjectNumber), numOfSecToTrim, minSecDataNeeded, ...
minNumContiguousDataSeconds);
totalSecondsDataRemaining = totalNumFramesRemaining(subjectNumber) * TR(subjectNumber);
notEnoughSecondsData = totalSecondsDataRemaining < minSecDataNeededPerSubject;
notEnoughRunsData = subjNumRuns(subjectNumber) < numRunsDataNeededPerSubject;
subjNotEnoughData = notEnoughSecondsData | notEnoughRunsData;
if(subjNotEnoughData)
thisSubjRscr = nan(size(thisSubjRscr));
thisSubjRandomRscr = nan(size(thisSubjRandomRscr));
totalNumFramesRemaining(subjectNumber) = 0;
subjHarmMeanFrames(subjectNumber) = 0;
subjMeanSamplingVar(subjectNumber) = NaN;
subjNumRuns(subjectNumber) = 0;
subjRunsVar(subjectNumber) = NaN;
subjMeanRunsNoSamplingVar(subjectNumber) = NaN;
subjHarmMeanFramesMinus3(subjectNumber) = NaN;
end
targetedSubjRinROIpair(:,subjectNumber) = thisSubjRscr;
randomSubjRinROIpair(:,subjectNumber) = thisSubjRandomRscr;
end
meanSamplingVar = mean(subjMeanSamplingVar,'omitnan');
meanRunsVar = mean(subjRunsVar,'omitnan');
harmMeanFrames = harmmean(subjHarmMeanFrames(subjHarmMeanFrames>0),'omitnan');
harmMeanRuns = harmmean(subjNumRuns(subjNumRuns>0),'omitnan');
meanRunsNoSamplingVar = mean(subjMeanRunsNoSamplingVar,'omitnan');
harmMeanFramesMinus3 = harmmean(subjHarmMeanFramesMinus3(subjHarmMeanFrames>0),'omitnan');
end