Skip to content

Commit

Permalink
REF: Handle mixed cases of session label in rawdata folder.
Browse files Browse the repository at this point in the history
  • Loading branch information
ningfei committed Feb 14, 2024
1 parent 1ac5fab commit 677eb38
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
8 changes: 5 additions & 3 deletions helpers/BIDSFetcher.m
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,8 @@
end

% Get images and modalities
images = fullfile(rawDataDir, 'ses-preop', 'anat', append(struct2cell(rawImages.preop.anat), obj.settings.niiFileExt));
preopRawDataDir = ea_regexpdir(rawDataDir, '^ses-preop$', 0, 'd');
images = fullfile(preopRawDataDir{1}, 'anat', append(struct2cell(rawImages.preop.anat), obj.settings.niiFileExt));
modality = fieldnames(rawImages.preop.anat)';

% Set pre-defined orders
Expand Down Expand Up @@ -427,7 +428,8 @@
end

% Get images and modalities
images = fullfile(rawDataDir, 'ses-postop', 'anat', append(struct2cell(rawImages.postop.anat), obj.settings.niiFileExt));
postopRawDataDir = ea_regexpdir(rawDataDir, '^ses-postop$', 0, 'd');
images = fullfile(postopRawDataDir, 'anat', append(struct2cell(rawImages.postop.anat), obj.settings.niiFileExt));
modality = fieldnames(rawImages.postop.anat);

% Check presence of CT and MR
Expand Down Expand Up @@ -477,7 +479,7 @@
for i=1:length(fields)
modality = fields{i};
parsed = parseBIDSFilePath(preopAnat.(modality));
preprocAnat.preop.(modality) = strrep(preopAnat.(modality), [parsed.dir, filesep, 'sub-', subjId, '_ses-preop_'], [baseDir, filesep, baseName]);
preprocAnat.preop.(modality) = fullfile(baseDir, [baseName, 'acq-', parsed.acq, '_', parsed.suffix, parsed.ext]);
end

if ~exist('preferMRCT', 'var')
Expand Down
7 changes: 4 additions & 3 deletions helpers/ea_genrawimagesjson.m
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@

% Get all images
rawdataFolder = fullfile(GetFullPath(BIDSRoot), 'rawdata', ['sub-', subjId]);
preopNiftiFiles = ea_regexpdir([rawdataFolder, filesep, 'ses-preop'], '.*\.nii(\.gz)?$', 1, 'f');
postopNiftiFiles = ea_regexpdir([rawdataFolder, filesep, 'ses-postop'], '.*\.nii(\.gz)?$', 1, 'f');
niftiFiles = ea_regexpdir(rawdataFolder, '.*\.nii(\.gz)?$', 1, 'f');
preopNiftiFiles = niftiFiles(contains(niftiFiles, [filesep, 'ses-preop', filesep], 'IgnoreCase', true));
postopNiftiFiles = niftiFiles(contains(niftiFiles, [filesep, 'ses-postop', filesep], 'IgnoreCase', true));
niftiFiles = [preopNiftiFiles; postopNiftiFiles];

% Iterate all images
rawImages = struct;
for f = 1:length(niftiFiles)
parsed = parseBIDSFilePath(niftiFiles{f});
session = parsed.ses; % preop, postop
session = lower(parsed.ses); % preop, postop
[~, type] = fileparts(parsed.dir); % anat, func, dwi
if isfield(parsed, 'acq')
suffix = [parsed.acq, '_', parsed.suffix]; % e.g., ax_T1w
Expand Down

0 comments on commit 677eb38

Please sign in to comment.