File tree Expand file tree Collapse file tree 4 files changed +97
-0
lines changed Expand file tree Collapse file tree 4 files changed +97
-0
lines changed Original file line number Diff line number Diff line change 1+ function [taskName , taskNameValid ] = createTaskName(taskName )
2+ % [taskName, taskNameValid] = createTaskName(taskName)
3+ %
4+ % Name of the task (for resting state use the "rest" prefix). No two tasks
5+ % should have the same name. Task label is derived from this field by
6+ % removing all non alphanumeric ([a-zA-Z0-9]) characters.
7+
8+ % camel case: upper case for first letter for all words but the first one
9+ spaceIdx = regexp(taskName , ' [a-zA-Z0-9]*' , ' start' );
10+ taskName(spaceIdx(2 : end )) = upper(taskName(spaceIdx(2 : end )));
11+
12+ % remove invalid characters
13+ [unvalidCharacters ] = regexp(taskName , ' [^a-zA-Z0-9]' );
14+ taskNameValid = taskName ;
15+ taskNameValid(unvalidCharacters ) = [];
16+
17+ end
18+
Original file line number Diff line number Diff line change 1+ function fieldsToSet = transferInfoToBids(fieldsToSet , cfg )
2+ % transfer any info that might have been provided by the user to the
3+ % relevant field for its reuse for BIDS filenames or JSON later
4+
5+ if isfield(cfg , ' task' ) && isfield(cfg .task , ' name' )
6+ [taskName , taskNameValid ] = createTaskName(cfg .task .name );
7+ fieldsToSet.fileName.task = taskNameValid ;
8+ fieldsToSet.bids.meg.TaskName = taskName ;
9+ fieldsToSet.bids.mri.TaskName = taskName ;
10+ end
11+
12+ if isfield(cfg , ' mri' ) && isfield(cfg .mri , ' repetitionTime' )
13+ fieldsToSet.bids.mri.RepetitionTime = cfg .mri .repetitionTime ;
14+ end
15+
16+ end
Original file line number Diff line number Diff line change 1+ function test_createTaskName()
2+ %
3+
4+ taskName = ' &|@#-_(§!{})[]ù%£+/=:;.?,\<> visual task' ;
5+
6+ [taskName , taskNameValid ] = createTaskName(taskName )
7+
8+ [unvalidCharacters ] = regexp(taskNameValid , ' [^a-zA-Z0-9]' );
9+
10+ assert(isempty(unvalidCharacters ));
11+
12+
13+ taskName = ' 09 visual task' ;
14+
15+ [taskName , taskNameValid ] = createTaskName(taskName )
16+
17+ [unvalidCharacters ] = regexp(taskNameValid , ' [^a-zA-Z0-9]' );
18+
19+ assert(isempty(unvalidCharacters ));
20+
21+
22+ taskName = ' foo bar' ;
23+ [taskName , taskNameValid ] = createTaskName(taskName )
24+ assert(isequal(taskName , ' foo Bar' ))
25+ assert(isequal(taskNameValid , ' fooBar' ))
26+
27+ end
28+
Original file line number Diff line number Diff line change 1+ function test_transferInfoToBids()
2+
3+ %%
4+ cfg = struct();
5+ fieldsToSet = struct();
6+ cfg = transferInfoToBids(fieldsToSet , cfg );
7+
8+ expectedStruct = struct();
9+
10+ assert(isequal(expectedStruct , fieldsToSet ))
11+
12+ %%
13+ cfg.task.name = ' foo bar' ;
14+
15+ fieldsToSet = transferInfoToBids(fieldsToSet , cfg );
16+
17+ expectedStruct.fileName.task = ' fooBar' ;
18+ expectedStruct.bids.meg.TaskName = ' foo Bar' ;
19+ expectedStruct.bids.mri.TaskName = ' foo Bar' ;
20+
21+ assert(isequal(expectedStruct , fieldsToSet ))
22+
23+ %%
24+ clear cfg fieldsToSet expectedStruct
25+
26+ cfg.mri.repetitionTime = 1.56 ;
27+
28+ fieldsToSet = struct();
29+ fieldsToSet = transferInfoToBids(fieldsToSet , cfg );
30+
31+ expectedStruct.bids.mri.RepetitionTime = 1.56 ;
32+
33+ assert(isequal(expectedStruct , fieldsToSet ))
34+
35+ end
You can’t perform that action at this time.
0 commit comments