nipy / nipype

Workflows and interfaces for neuroimaging packages
https://nipype.readthedocs.org/en/latest/
Other
745 stars 529 forks source link

Change fsl.Split default out_base_name? #1467

Closed cni-md closed 6 years ago

cni-md commented 8 years ago

I am using workflows.dmri.fsl.artifacts all_fmb_pipeline for dti preprocessing. The output is vol0000_warp_maths_thresh_merged.nii.gz for all subjects. I prefer a more unique name for each subject and start digging.

The name vol0000 is introduced by several calls of fsl.split without defining the out_base_name. This might cause trouble whenever the input is not a single file, but a list of files. The output of the first split is overwritten by the next call.

For my "problem" I changed workflows/dmri/fsl/utils.py apply_all_corrections and add (inputnode, split, [(('in_dwi', get_basename), 'out_base_name')]), but all intermedate steps are still vulnerable.

I know that nipype mimic the original fslsplit behaviour but for me it's error prone, whenever out_base_name is not set to an unique prefix.

Should we keep fsl.Split as it is because it is the original behaviour (but never meant for multicore, multi subject pipelines) and change the workflows or should we change the default out_base_name of fsl.Split?

Joerg

djarecka commented 6 years ago

Have you tried to use substitution or regexp_substitutions to change the name of files for every subject? I believe it should help.

djarecka commented 6 years ago

@cni-md - please let me know if you still have this issue.

djarecka commented 6 years ago

I'll close it for now, but please feel free to reopen