|
1 | | -function [cfg, expParameters] = createFilename(cfg, expParameters) |
| 1 | +function cfg = createFilename(cfg) |
2 | 2 | % create the BIDS compliant directories and filenames for the behavioral output |
3 | 3 | % for this subject / session / run using the information from cfg and expParameters. |
4 | 4 | % Will also create the right filename for the eyetracking data file. |
|
14 | 14 |
|
15 | 15 | zeroPadding = 3; |
16 | 16 | pattern = ['%0' num2str(zeroPadding) '.0f']; |
17 | | - expParameters.pattern = pattern; |
| 17 | + cfg.pattern = pattern; |
18 | 18 |
|
19 | 19 | dateFormat = 'yyyymmddHHMM'; |
20 | | - expParameters.date = datestr(now, dateFormat); |
| 20 | + cfg.date = datestr(now, dateFormat); |
21 | 21 |
|
22 | | - [cfg, expParameters] = checkCFG(cfg, expParameters); |
| 22 | + cfg = checkCFG(cfg); |
23 | 23 |
|
24 | | - if ~isfield(expParameters, 'task') |
25 | | - error('createFilename: missing a task name. i.e expParameters.task'); |
| 24 | + if ~isfield(cfg, 'task') |
| 25 | + error('createFilename: missing a task name. i.e cfg.task'); |
26 | 26 | end |
27 | 27 |
|
28 | | - expParameters = getModality(cfg, expParameters); |
| 28 | + cfg = getModality(cfg); |
29 | 29 |
|
30 | | - expParameters = createDirectories(cfg, expParameters); |
| 30 | + cfg = createDirectories(cfg); |
31 | 31 |
|
32 | | - expParameters = setSuffixes(expParameters); |
| 32 | + cfg = setSuffixes(cfg); |
33 | 33 |
|
34 | | - expParameters = setFilenames(cfg, expParameters); |
| 34 | + cfg = setFilenames(cfg); |
35 | 35 |
|
36 | | - talkToMe(cfg, expParameters); |
| 36 | + talkToMe(cfg); |
37 | 37 |
|
38 | 38 | cfg = orderfields(cfg); |
39 | | - expParameters = orderfields(expParameters); |
| 39 | + cfg = orderfields(cfg); |
40 | 40 |
|
41 | 41 | end |
42 | 42 |
|
43 | | -function expParameters = getModality(cfg, expParameters) |
| 43 | +function cfg = getModality(cfg) |
44 | 44 |
|
45 | 45 | switch lower(cfg.testingDevice) |
46 | 46 | case 'pc' |
|
57 | 57 | modality = 'beh'; |
58 | 58 | end |
59 | 59 |
|
60 | | - expParameters.modality = modality; |
| 60 | + cfg.modality = modality; |
61 | 61 |
|
62 | 62 | end |
63 | 63 |
|
64 | | -function [subjectGrp, subjectNb, sessionNb, modality, taskName] = extractInput(expParameters) |
| 64 | +function [subjectGrp, subjectNb, sessionNb, modality, taskName] = extractInput(cfg) |
65 | 65 |
|
66 | | - subjectGrp = expParameters.subjectGrp; |
67 | | - subjectNb = expParameters.subjectNb; |
68 | | - sessionNb = expParameters.sessionNb; |
69 | | - modality = expParameters.modality; |
70 | | - taskName = expParameters.task; |
| 66 | + subjectGrp = cfg.subjectGrp; |
| 67 | + subjectNb = cfg.subjectNb; |
| 68 | + sessionNb = cfg.sessionNb; |
| 69 | + modality = cfg.modality; |
| 70 | + taskName = cfg.task; |
71 | 71 |
|
72 | 72 | if isempty(sessionNb) |
73 | 73 | sessionNb = 1; |
74 | 74 | end |
75 | 75 |
|
76 | 76 | end |
77 | 77 |
|
78 | | -function expParameters = createDirectories(cfg, expParameters) |
| 78 | +function cfg = createDirectories(cfg) |
79 | 79 |
|
80 | | - [subjectGrp, subjectNb, sessionNb, modality] = extractInput(expParameters); |
| 80 | + [subjectGrp, subjectNb, sessionNb, modality] = extractInput(cfg); |
81 | 81 |
|
82 | | - pattern = expParameters.pattern; |
| 82 | + pattern = cfg.pattern; |
83 | 83 |
|
84 | 84 | % output dir |
85 | | - expParameters.subjectOutputDir = fullfile ( ... |
86 | | - expParameters.outputDir, ... |
| 85 | + cfg.subjectOutputDir = fullfile ( ... |
| 86 | + cfg.outputDir, ... |
87 | 87 | 'source', ... |
88 | 88 | ['sub-' subjectGrp, sprintf(pattern, subjectNb)], ... |
89 | 89 | ['ses-', sprintf(pattern, sessionNb)]); |
90 | 90 |
|
91 | | - [~, ~, ~] = mkdir(expParameters.outputDir); |
92 | | - [~, ~, ~] = mkdir(expParameters.subjectOutputDir); |
93 | | - [~, ~, ~] = mkdir(fullfile(expParameters.subjectOutputDir, modality)); |
| 91 | + [~, ~, ~] = mkdir(cfg.outputDir); |
| 92 | + [~, ~, ~] = mkdir(cfg.subjectOutputDir); |
| 93 | + [~, ~, ~] = mkdir(fullfile(cfg.subjectOutputDir, modality)); |
94 | 94 |
|
95 | 95 | if cfg.eyeTracker |
96 | | - [~, ~, ~] = mkdir(fullfile(expParameters.subjectOutputDir, 'eyetracker')); |
| 96 | + [~, ~, ~] = mkdir(fullfile(cfg.subjectOutputDir, 'eyetracker')); |
97 | 97 | end |
98 | 98 |
|
99 | 99 | end |
100 | 100 |
|
101 | | -function expParameters = setSuffixes(expParameters) |
| 101 | +function cfg = setSuffixes(cfg) |
102 | 102 |
|
103 | | - expParameters.runSuffix = ['_run-' sprintf(expParameters.pattern, expParameters.runNb)]; |
| 103 | + cfg.runSuffix = ['_run-' sprintf(cfg.pattern, cfg.runNb)]; |
104 | 104 |
|
105 | 105 | % set values for the suffixes for the different fields in the BIDS name |
106 | 106 | fields2Check = { ... |
|
112 | 112 | }; |
113 | 113 |
|
114 | 114 | for iField = 1:numel(fields2Check) |
115 | | - if isempty (expParameters.MRI.(fields2Check{iField})) %#ok<*GFLD> |
116 | | - expParameters.MRI.([fields2Check{iField} 'Suffix']) = ''; %#ok<*SFLD> |
| 115 | + if isempty (cfg.MRI.(fields2Check{iField})) %#ok<*GFLD> |
| 116 | + cfg.MRI.([fields2Check{iField} 'Suffix']) = ''; %#ok<*SFLD> |
117 | 117 | else |
118 | | - expParameters.MRI.([fields2Check{iField} 'Suffix']) = ... |
119 | | - ['_' fields2Check{iField} '-' getfield(expParameters.MRI, fields2Check{iField})]; |
| 118 | + cfg.MRI.([fields2Check{iField} 'Suffix']) = ... |
| 119 | + ['_' fields2Check{iField} '-' getfield(cfg.MRI, fields2Check{iField})]; |
120 | 120 | end |
121 | 121 | end |
122 | 122 |
|
123 | 123 | end |
124 | 124 |
|
125 | | -function expParameters = setFilenames(cfg, expParameters) |
| 125 | +function cfg = setFilenames(cfg) |
126 | 126 |
|
127 | | - [subjectGrp, subjectNb, sessionNb, modality, taskName] = extractInput(expParameters); |
| 127 | + [subjectGrp, subjectNb, sessionNb, modality, taskName] = extractInput(cfg); |
128 | 128 |
|
129 | | - runSuffix = expParameters.runSuffix; |
130 | | - pattern = expParameters.pattern; |
131 | | - acqSuffix = expParameters.MRI.acqSuffix ; |
132 | | - ceSuffix = expParameters.MRI.ceSuffix ; |
133 | | - dirSuffix = expParameters.MRI.dirSuffix ; |
134 | | - recSuffix = expParameters.MRI.recSuffix ; |
135 | | - echoSuffix = expParameters.MRI.echoSuffix; |
| 129 | + runSuffix = cfg.runSuffix; |
| 130 | + pattern = cfg.pattern; |
| 131 | + acqSuffix = cfg.MRI.acqSuffix ; |
| 132 | + ceSuffix = cfg.MRI.ceSuffix ; |
| 133 | + dirSuffix = cfg.MRI.dirSuffix ; |
| 134 | + recSuffix = cfg.MRI.recSuffix ; |
| 135 | + echoSuffix = cfg.MRI.echoSuffix; |
136 | 136 |
|
137 | | - expParameters.datasetDescription.filename = fullfile ( ... |
138 | | - expParameters.outputDir, ... |
| 137 | + cfg.datasetDescription.filename = fullfile ( ... |
| 138 | + cfg.outputDir, ... |
139 | 139 | 'dataset_description.json'); |
140 | 140 |
|
141 | 141 | % create base filename |
142 | 142 | fileNameBase = ... |
143 | 143 | ['sub-', subjectGrp, sprintf(pattern, subjectNb), ... |
144 | 144 | '_ses-', sprintf(pattern, sessionNb), ... |
145 | 145 | '_task-', taskName]; |
146 | | - expParameters.fileName.base = fileNameBase; |
| 146 | + cfg.fileName.base = fileNameBase; |
147 | 147 |
|
148 | 148 | switch modality |
149 | 149 |
|
150 | 150 | case 'func' |
151 | 151 |
|
152 | | - expParameters.fileName.events = ... |
| 152 | + cfg.fileName.events = ... |
153 | 153 | [fileNameBase, ... |
154 | 154 | acqSuffix, ceSuffix, ... |
155 | 155 | dirSuffix, recSuffix, ... |
156 | 156 | runSuffix, echoSuffix, ... |
157 | | - '_events_date-' expParameters.date '.tsv']; |
| 157 | + '_events_date-' cfg.date '.tsv']; |
158 | 158 |
|
159 | 159 | otherwise |
160 | 160 |
|
161 | | - expParameters.fileName.events = ... |
162 | | - [fileNameBase, runSuffix, '_events_date-' expParameters.date '.tsv']; |
| 161 | + cfg.fileName.events = ... |
| 162 | + [fileNameBase, runSuffix, '_events_date-' cfg.date '.tsv']; |
163 | 163 |
|
164 | 164 | end |
165 | 165 |
|
166 | | - expParameters.fileName.stim = strrep(expParameters.fileName.events, 'events', 'stim'); |
| 166 | + cfg.fileName.stim = strrep(cfg.fileName.events, 'events', 'stim'); |
167 | 167 |
|
168 | 168 | if cfg.eyeTracker |
169 | | - expParameters.fileName.eyetracker = ... |
| 169 | + cfg.fileName.eyetracker = ... |
170 | 170 | [fileNameBase, acqSuffix, ... |
171 | | - runSuffix, '_eyetrack_date-' expParameters.date '.edf']; |
| 171 | + runSuffix, '_eyetrack_date-' cfg.date '.edf']; |
172 | 172 |
|
173 | 173 | end |
174 | 174 |
|
175 | 175 | end |
176 | 176 |
|
177 | | -function talkToMe(cfg, expParameters) |
| 177 | +function talkToMe(cfg) |
178 | 178 |
|
179 | 179 | fprintf(1, '\nData will be saved in this directory:\n\t%s\n', ... |
180 | | - fullfile(expParameters.subjectOutputDir, expParameters.modality)); |
| 180 | + fullfile(cfg.subjectOutputDir, cfg.modality)); |
181 | 181 |
|
182 | 182 | fprintf(1, '\nData will be saved in this file:\n\t%s\n', ... |
183 | | - expParameters.fileName.events); |
| 183 | + cfg.fileName.events); |
184 | 184 |
|
185 | 185 | if cfg.eyeTracker |
186 | 186 |
|
187 | 187 | fprintf(1, '\nEyetracking data will be saved in this directory:\n\t%s\n', ... |
188 | | - fullfile(expParameters.subjectOutputDir, 'eyetracker')); |
| 188 | + fullfile(cfg.subjectOutputDir, 'eyetracker')); |
189 | 189 |
|
190 | 190 | fprintf(1, '\nEyetracking data will be saved in this file:\n\t%s\n', ... |
191 | | - expParameters.fileName.eyetracker); |
| 191 | + cfg.fileName.eyetracker); |
192 | 192 |
|
193 | 193 | end |
194 | 194 |
|
|
0 commit comments