|
1 | 1 | function [cfg, expParameters] = checkCFG(cfg, expParameters) |
2 | 2 | % check that we have all the fields that we need in the experiment parameters |
3 | 3 |
|
| 4 | + checkCppBidsDependencies(); |
| 5 | + |
| 6 | + if nargin < 1 || isempty(cfg) |
| 7 | + cfg = struct(); |
| 8 | + end |
| 9 | + if nargin < 2 || isempty(expParameters) |
| 10 | + expParameters = struct(); |
| 11 | + end |
| 12 | + |
4 | 13 | %% set the expParameters defaults |
5 | 14 |
|
6 | 15 | fieldsToSet.verbose = 0; |
|
9 | 18 | '..', ... |
10 | 19 | 'output'); |
11 | 20 |
|
12 | | - fieldsToSet.subjectGrp = []; % in case no group was provided |
| 21 | + fieldsToSet = mriDefaults(fieldsToSet); |
| 22 | + |
| 23 | + fieldsToSet.subjectGrp = ''; % in case no group was provided |
13 | 24 | fieldsToSet.sessionNb = 1; % in case no session was provided |
14 | 25 | fieldsToSet.askGrpSess = [true true]; |
15 | 26 |
|
16 | | - % BIDS |
| 27 | + expParameters = setDefaultFields(expParameters, fieldsToSet); |
17 | 28 |
|
18 | | - % dataset description json |
19 | | - % required |
20 | | - fieldsToSet.bids.datasetDescription.json.Name = ''; |
21 | | - fieldsToSet.bids.datasetDescription.json.BIDSVersion = ''; |
22 | | - % recommended |
23 | | - fieldsToSet.bids.datasetDescription.json.License = ''; |
24 | | - fieldsToSet.bids.datasetDescription.json.Authors = {''}; |
25 | | - fieldsToSet.bids.datasetDescription.json.Acknowledgements = ''; |
26 | | - fieldsToSet.bids.datasetDescription.json.HowToAcknowledge = ''; |
27 | | - fieldsToSet.bids.datasetDescription.json.Funding = {''}; |
28 | | - fieldsToSet.bids.datasetDescription.json.ReferencesAndLinks = {''}; |
29 | | - fieldsToSet.bids.datasetDescription.json.DatasetDOI = ''; |
30 | | - |
31 | | - % mri |
32 | | - % for json |
33 | | - fieldsToSet.MRI.repetitionTime = []; |
34 | | - % for file naming |
35 | | - fieldsToSet.MRI.ce = []; |
36 | | - fieldsToSet.MRI.dir = []; % phase encoding direction of acquisition for fMRI |
37 | | - fieldsToSet.MRI.rec = []; % reconstruction of fMRI images |
38 | | - fieldsToSet.MRI.echo = []; % echo fMRI images |
39 | | - fieldsToSet.MRI.acq = []; % acquisition of fMRI images |
| 29 | + %% BIDS |
| 30 | + clear fieldsToSet; |
| 31 | + fieldsToSet.bids = struct(); |
| 32 | + expParameters = setDefaultFields(expParameters, fieldsToSet); |
| 33 | + |
| 34 | + clear fieldsToSet; |
| 35 | + fieldsToSet.MRI = struct(); |
| 36 | + fieldsToSet.datasetDescription = struct(); |
| 37 | + expParameters.bids = setDefaultFields(expParameters.bids, fieldsToSet); |
| 38 | + |
| 39 | + clear fieldsToSet; |
| 40 | + fieldsToSet = datasetDescriptionDefaults(); |
| 41 | + |
| 42 | + expParameters.bids.datasetDescription = ... |
| 43 | + setDefaultFields(expParameters.bids.datasetDescription, fieldsToSet); |
| 44 | + |
| 45 | + clear fieldsToSet; |
| 46 | + fieldsToSet = mriJsonDefaults(); |
| 47 | + if isfield(expParameters, 'task') |
| 48 | + fieldsToSet.TaskName = expParameters.task; |
| 49 | + end |
| 50 | + |
| 51 | + expParameters.bids.MRI = ... |
| 52 | + setDefaultFields(expParameters.bids.MRI, fieldsToSet); |
40 | 53 |
|
41 | | - expParameters = setDefaults(expParameters, fieldsToSet); |
| 54 | + % sort fields alphabetically |
| 55 | + expParameters = orderfields(expParameters); |
42 | 56 |
|
43 | 57 | %% set the cfg defaults |
44 | 58 |
|
45 | 59 | clear fieldsToSet; |
46 | 60 | fieldsToSet.testingDevice = 'pc'; |
47 | 61 | fieldsToSet.eyeTracker = false; |
48 | 62 |
|
49 | | - cfg = setDefaults(cfg, fieldsToSet); |
| 63 | + cfg = setDefaultFields(cfg, fieldsToSet); |
50 | 64 |
|
51 | | -end |
| 65 | + % sort fields alphabetically |
| 66 | + cfg = orderfields(cfg); |
52 | 67 |
|
53 | | -function structure = setDefaults(structure, fieldsToSet) |
54 | | - % loop through the defaults fiels to set and update if they don't exist |
| 68 | +end |
55 | 69 |
|
56 | | - names = fieldnames(fieldsToSet); |
| 70 | +function fieldsToSet = mriDefaults(fieldsToSet) |
57 | 71 |
|
58 | | - for i = 1:numel(names) |
| 72 | + % for file naming |
| 73 | + fieldsToSet.MRI.ce = []; |
| 74 | + fieldsToSet.MRI.dir = []; % phase encoding direction of acquisition for fMRI |
| 75 | + fieldsToSet.MRI.rec = []; % reconstruction of fMRI images |
| 76 | + fieldsToSet.MRI.echo = []; % echo fMRI images |
| 77 | + fieldsToSet.MRI.acq = []; % acquisition of fMRI images |
59 | 78 |
|
60 | | - thisField = fieldsToSet.(names{i}); |
| 79 | +end |
61 | 80 |
|
62 | | - structure = setFieldToIfNotPresent( ... |
63 | | - structure, ... |
64 | | - names{i}, ... |
65 | | - thisField); |
| 81 | +function fieldsToSet = datasetDescriptionDefaults() |
| 82 | + % required |
| 83 | + fieldsToSet.Name = ''; |
| 84 | + fieldsToSet.BIDSVersion = ''; |
| 85 | + % recommended |
| 86 | + fieldsToSet.License = ''; |
| 87 | + fieldsToSet.Authors = {''}; |
| 88 | + fieldsToSet.Acknowledgements = ''; |
| 89 | + fieldsToSet.HowToAcknowledge = ''; |
| 90 | + fieldsToSet.Funding = {''}; |
| 91 | + fieldsToSet.ReferencesAndLinks = {''}; |
| 92 | + fieldsToSet.DatasetDOI = ''; |
| 93 | +end |
66 | 94 |
|
67 | | - end |
| 95 | +function fieldsToSet = mriJsonDefaults() |
68 | 96 |
|
69 | | -end |
| 97 | + % for json for funcfional data |
| 98 | + % required |
| 99 | + fieldsToSet.RepetitionTime = []; |
| 100 | + fieldsToSet.SliceTiming = []; |
| 101 | + fieldsToSet.TaskName = []; |
| 102 | + % fieldsToSet.PhaseEncodingDirection = []; |
| 103 | + % fieldsToSet.EffectiveEchoSpacing = []; |
| 104 | + % fieldsToSet.EchoTime = []; |
| 105 | + % recommended |
| 106 | + fieldsToSet.Instructions = []; |
| 107 | + fieldsToSet.TaskDescription = []; |
70 | 108 |
|
71 | | -function structure = setFieldToIfNotPresent(structure, fieldName, value) |
72 | | - if ~isfield(structure, fieldName) |
73 | | - structure.(fieldName) = value; |
74 | | - end |
75 | 109 | end |
0 commit comments