Skip to content

Commit 1e305de

Browse files
committed
refactor and add an orientation check
1 parent db05ef6 commit 1e305de

File tree

2 files changed

+54
-47
lines changed

2 files changed

+54
-47
lines changed

src/roi/createRoi.m

Lines changed: 7 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,7 @@
180180
error('Number of voxels requested greater than the total number of voxels in this mask');
181181
end
182182

183-
specification = struct( ...
184-
'mask1', roiImage, ...
183+
specification = struct('mask1', roiImage, ...
185184
'mask2', sphere);
186185

187186
% take as radius step the smallest voxel dimension of the roi image
@@ -310,6 +309,12 @@
310309
error(err);
311310
end
312311

312+
if ~strcmp(mask.def, 'sphere') && ...
313+
exist(mask.spec, 'file') == 2 && ...
314+
strcmp(spm_file(mask.spec, 'ext'), 'nii')
315+
checkRoiOrientation(volumeDefiningImage, mask.spec);
316+
end
317+
313318
if strcmp(mask.def, 'sphere')
314319

315320
[~, mask.roi.XYZmm] = spm_ROI(mask, volumeDefiningImage);
@@ -347,48 +352,3 @@
347352
bids.util.jsonencode(json.filename, json.content);
348353

349354
end
350-
351-
function roiName = createRoiName(mask, volumeDefiningImage)
352-
353-
if strcmp(mask.def, 'sphere')
354-
355-
bf = bids.File('');
356-
bf.extension = '.nii';
357-
bf.suffix = 'mask';
358-
359-
if ~isempty(volumeDefiningImage)
360-
361-
tmp = bids.File(volumeDefiningImage);
362-
363-
% if the volume defining image has a space entity we reuse it
364-
if isfield(tmp.entities, 'space')
365-
entities.space = tmp.entities.space;
366-
end
367-
368-
end
369-
370-
label = '';
371-
if isfield(bf.entities, 'label')
372-
label = bf.entities.label;
373-
end
374-
375-
entities.label = bids.internal.camel_case([label ' ' mask.label]);
376-
377-
bf.entities = entities;
378-
379-
else
380-
381-
bf = bids.File(mask.global.hdr.fname);
382-
383-
label = '';
384-
if isfield(bf.entities, 'label')
385-
label = bf.entities.label;
386-
end
387-
388-
bf.entities.label = bids.internal.camel_case([label ' ' mask.label]);
389-
390-
end
391-
392-
roiName = bf.filename;
393-
394-
end

src/roi/createRoiName.m

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
function roiName = createRoiName(mask, volumeDefiningImage)
2+
%
3+
%
4+
% (C) Copyright 2022 CPP ROI developers
5+
6+
if strcmp(mask.def, 'sphere')
7+
8+
bf = bids.File('');
9+
bf.extension = '.nii';
10+
bf.suffix = 'mask';
11+
12+
if ~isempty(volumeDefiningImage)
13+
14+
tmp = bids.File(volumeDefiningImage);
15+
16+
% if the volume defining image has a space entity we reuse it
17+
if isfield(tmp.entities, 'space')
18+
entities.space = tmp.entities.space;
19+
end
20+
21+
end
22+
23+
label = '';
24+
if isfield(bf.entities, 'label')
25+
label = bf.entities.label;
26+
end
27+
28+
entities.label = bids.internal.camel_case([label ' ' mask.label]);
29+
30+
bf.entities = entities;
31+
32+
else
33+
34+
bf = bids.File(mask.global.hdr.fname);
35+
36+
label = '';
37+
if isfield(bf.entities, 'label')
38+
label = bf.entities.label;
39+
end
40+
41+
bf.entities.label = bids.internal.camel_case([label ' ' mask.label]);
42+
43+
end
44+
45+
roiName = bf.filename;
46+
47+
end

0 commit comments

Comments
 (0)