From d91f6d21fba138ddee787d45c31aa2260501beec Mon Sep 17 00:00:00 2001 From: Oweda Date: Mon, 24 Jun 2024 13:44:31 +0200 Subject: [PATCH] FIX #3653: added option for using compressed files as inputs in CAT12 interface --- nipype/interfaces/cat12/preprocess.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nipype/interfaces/cat12/preprocess.py b/nipype/interfaces/cat12/preprocess.py index 6fc3592843..082e72cf7d 100644 --- a/nipype/interfaces/cat12/preprocess.py +++ b/nipype/interfaces/cat12/preprocess.py @@ -8,6 +8,7 @@ isdefined, File, Str, + ImageFile, ) from nipype.interfaces.cat12.base import Cell @@ -23,7 +24,7 @@ class CAT12SegmentInputSpec(SPMCommandInputSpec): in_files = InputMultiPath( - ImageFileSPM(exists=True), + ImageFile(exists=True), field="data", desc="file to segment", mandatory=True, @@ -559,6 +560,8 @@ def _format_arg(self, opt, spec, val): """Convert input to appropriate format for spm""" if opt == "in_files": if isinstance(val, list): + if '.nii.gz' in val[0]: + return scans_for_fnames(val, keep4d=True) return scans_for_fnames(val) else: return scans_for_fname(val) @@ -571,7 +574,8 @@ def _list_outputs(self): outputs = self._outputs().get() f = self.inputs.in_files[0] pth, base, ext = split_filename(f) - + if '.nii.gz' in f: + f = f[:-3] outputs["mri_images"] = [ str(mri) for mri in Path(pth).glob("mri/*") if mri.is_file() ]