Skip to content

Commit c4a900b

Browse files
committed
eyetracker made optional
by using isfield
1 parent a3040a1 commit c4a900b

File tree

2 files changed

+127
-1
lines changed

2 files changed

+127
-1
lines changed

createFilename.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
[~, ~, ~] = mkdir(expParameters.outputDir);
9090
[~, ~, ~] = mkdir(fullfile(expParameters.outputDir, modality));
9191

92-
if cfg.eyeTracker
92+
if isfield(cfg,'eyeTracker')
9393
[~, ~, ~] = mkdir(fullfile(expParameters.outputDir, 'eyetracker'));
9494
end
9595

createFilename.m~

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
function expParameters = createFilename(cfg,expParameters)
2+
% create the BIDS compliant directories and filenames for the behavioral output for this subject /
3+
% session / run.
4+
% Will also create the right filename for the eyetracking data file.
5+
%
6+
% For the moment the date of acquisition is appreneded to the filename
7+
%
8+
% can work for behavioral experiment if cfg.device is set to 'PC'
9+
% can work for fMRI experiment if cfg.device is set to 'scanner'
10+
% can work for simple eyetracking data if cfg.eyeTracker is set to 1
11+
%
12+
% BOLD
13+
% sub-<label>[_ses-<label>]_task-<label>[_acq-<label>][_ce-<label>][_dir-<label>][_rec-<label>][_run-<index>][_echo-<index>]_<contrast_label>.nii[.gz]
14+
%
15+
% iEEG
16+
% sub-<label>[_ses-<label>]_task-<task_label>[_run-<index>]_ieeg.json
17+
%
18+
% EEG
19+
% sub-<label>[_ses-<label>]_task-<label>[_run-<index>]_eeg.<manufacturer_specific_extension>
20+
%
21+
% EYETRACKER
22+
% sub-<participant_label>[_ses-<label>][_acq-<label>]_task-<task_label>_eyetrack.<manufacturer_specific_extension>
23+
24+
zeroPadding = 3;
25+
pattern = ['%0' num2str(zeroPadding) '.0f'];
26+
27+
dateFormat = 'yyyymmdd_HHMM';
28+
29+
% Setting some defaults: no need to change things here
30+
expParameters = checkCFG(expParameters);
31+
32+
% extract input
33+
subjectGrp = expParameters.subjectGrp;
34+
subjectNb = expParameters.subjectNb;
35+
sessionNb = expParameters.sessionNb;
36+
runNb = expParameters.runNb;
37+
38+
expParameters.date = datestr(now, dateFormat);
39+
40+
% output dir
41+
expParameters.outputDir = fullfile (...
42+
expParameters.outputDir, ...
43+
'source', ...
44+
['sub-' subjectGrp, sprintf(pattern, subjectNb)], ...
45+
['ses-', sprintf(pattern, sessionNb)]);
46+
47+
% create base filename
48+
expParameters.fileName.base = ...
49+
['sub-', subjectGrp, sprintf(pattern, subjectNb), ...
50+
'_ses-', sprintf(pattern, sessionNb) , ...
51+
'_task-', expParameters.task];
52+
53+
runSuffix = ['_run-' sprintf(pattern, runNb)];
54+
55+
56+
switch lower(cfg.device)
57+
case 'pc'
58+
modality = 'beh';
59+
case 'scanner'
60+
modality = 'func';
61+
otherwise
62+
modality = 'beh';
63+
end
64+
65+
expParameters.modality = modality;
66+
67+
68+
% set values for the suffixes for the different fields in the BIDS name
69+
fields2Check = { ...
70+
'ce', ...
71+
'dir', ... % For BIDS file naming: phase encoding direction of acquisition for fMRI
72+
'rec', ... % For BIDS file naming: reconstruction of fMRI images
73+
'echo', ... % For BIDS file naming: echo fMRI images
74+
'acq' % For BIDS file naming: acquisition of fMRI images
75+
};
76+
77+
for iField = 1:numel(fields2Check)
78+
if isempty (getfield(expParameters, fields2Check{iField}) ) %#ok<*GFLD>
79+
expParameters = setfield(expParameters, [fields2Check{iField} 'Suffix'], ...
80+
''); %#ok<*SFLD>
81+
else
82+
expParameters = setfield(expParameters, [fields2Check{iField} 'Suffix'], ...
83+
['_' fields2Check{iField} '-' getfield(expParameters, fields2Check{iField})]);
84+
end
85+
end
86+
87+
88+
%% create directories
89+
[~, ~, ~] = mkdir(expParameters.outputDir);
90+
[~, ~, ~] = mkdir(fullfile(expParameters.outputDir, modality));
91+
92+
if isfield(cfg.eyeTracker)
93+
[~, ~, ~] = mkdir(fullfile(expParameters.outputDir, 'eyetracker'));
94+
end
95+
96+
97+
%% create filenames
98+
99+
switch modality
100+
101+
case 'beh'
102+
103+
expParameters.fileName.events = ...
104+
[expParameters.fileName.base, runSuffix, '_events_date-' expParameters.date '.tsv'];
105+
106+
case 'func'
107+
108+
expParameters.fileName.events = ...
109+
[expParameters.fileName.base, ...
110+
expParameters.acqSuffix, expParameters.ceSuffix, ...
111+
expParameters.dirSuffix, expParameters.recSuffix, ...
112+
runSuffix, expParameters.echoSuffix, ...
113+
'_events_date-' expParameters.date '.tsv'];
114+
115+
end
116+
117+
if cfg.eyeTracker
118+
119+
expParameters.fileName.eyetracker = ...
120+
[expParameters.fileName.base, expParameters.acqSuffix, ...
121+
runSuffix, '_eyetrack_date-' expParameters.date '.edf'];
122+
123+
end
124+
125+
126+
end

0 commit comments

Comments
 (0)