Skip to content

Commit 85a285a

Browse files
author
dPys
committed
[ENH] Add error handling to
1 parent 5e64dfa commit 85a285a

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

dmriprep/interfaces/images.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
"""Image tools interfaces."""
2-
from dmriprep.utils.images import rescale_b0, median, match_transforms, extract_b0
2+
from pathlib import Path
33
from nipype import logging
44
from nipype.interfaces.base import (
55
traits, TraitedSpec, BaseInterfaceInputSpec, SimpleInterface, File,
66
InputMultiObject, OutputMultiObject
77
)
8-
9-
from dmriprep.utils.images import extract_b0, median, rescale_b0
8+
from dmriprep.utils.images import extract_b0, median, rescale_b0, match_transforms
109

1110
LOGGER = logging.getLogger('nipype.interface')
1211

dmriprep/utils/images.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,18 @@ def save_3d_to_4d(in_files):
362362
>>> out_file = save_3d_to_4d(threeD_files)
363363
>>> assert len(threeD_files) == nb.load(out_file).shape[-1]
364364
"""
365-
img_4d = nb.funcs.concat_images([nb.load(img_3d) for img_3d in in_files])
365+
# Remove one-sized extra dimensions
366+
nii_list = []
367+
for i, f in enumerate(in_files):
368+
filenii = nb.load(f)
369+
filenii = nb.squeeze_image(filenii)
370+
if len(filenii.shape) == 5:
371+
raise RuntimeError('Input image (%s) is 5D.' % f)
372+
if filenii.dataobj.ndim == 4:
373+
nii_list += nb.four_to_three(filenii)
374+
else:
375+
nii_list.append(filenii)
376+
img_4d = nb.funcs.concat_images(nii_list)
366377
out_file = fname_presuffix(in_files[0], suffix="_merged")
367378
img_4d.to_filename(out_file)
368379
return out_file

0 commit comments

Comments
 (0)