Skip to content

Remove ICA-AROMA #2936

@effigies

Description

@effigies

What would you like to see added in fMRIPrep?

ICA-AROMA is unmaintained, and appears to be incompatible with the version of MELODIC released in FSL 6.0.6.2.

Cmdline:
	ICA_AROMA.py -tr 2.000 -np -den nonaggr -i /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/smooth/vol0000_xform-00000_clipped_merged_smooth.nii.gz -m /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/bold_std_trans_wf/_std_target_MNI152NLin6Asym.res2/mask_std_tfm/vol0000_unwarped_merged_valid_average_corrected_brain_mask_maths_trans.nii.gz -meldir /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/melodic -mc /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/bold_hmc_wf/normalize_motion/motion_params.txt -o /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/ica_aroma/out
Stdout:

	------------------------------- RUNNING ICA-AROMA ------------------------------- 
	--------------- 'ICA-based Automatic Removal Of Motion Artifacts' --------------- 

	Step 1) MELODIC
	  - The existing/specified MELODIC directory will be used.
	Step 2) Automatic classification of the components
	  - registering the spatial maps to MNI
Stderr:
	Image Exception : #21 :: Invalid ROI dimensions
	Invalid ROI dimensions
	Image Exception : #21 :: Invalid ROI dimensions
	Invalid ROI dimensions
	Image Exception : #63 :: No image files match: /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/ica_aroma/out/thr_zstat????
	terminate called after throwing an instance of 'std::runtime_error'
	  what():  No image files match: /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/ica_aroma/out/thr_zstat????
	Aborted (core dumped)
	rm: cannot remove '/scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/ica_aroma/out/thr_zstat????.nii.gz': No such file or directory
	Image Exception : #63 :: No image files match: /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/ica_aroma/out/melodic_IC_thr
	terminate called after throwing an instance of 'std::runtime_error'
	  what():  No image files match: /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/ica_aroma/out/melodic_IC_thr
	Aborted (core dumped)
	Traceback (most recent call last):
	  File "/opt/ICA-AROMA/ICA_AROMA.py", line 210, in <module>
	    aromafunc.register2MNI(fslDir, melIC, melIC_MNI, affmat, warp)
	  File "/opt/ICA-AROMA/ICA_AROMA_functions.py", line 161, in register2MNI
	    pixdim1 = float(subprocess.getoutput('%sfslinfo %s | grep pixdim1 | awk \'{print $2}\'' % (fslDir, inFile)))
	ValueError: could not convert string to float: 'Image Exception : #63 :: No image files match: /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/ica_aroma/out/melodic_IC_thr\nNo image files match: /scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/ica_aroma/out/melodic_IC_thr'
Traceback:
	Traceback (most recent call last):
	  File "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/base/core.py", line 454, in aggregate_outputs
	    setattr(outputs, key, val)
	  File "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/base/traits_extension.py", line 330, in validate
	    value = super(File, self).validate(objekt, name, value, return_pathlike=True)
	  File "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/base/traits_extension.py", line 135, in validate
	    self.error(objekt, name, str(value))
	  File "/opt/conda/lib/python3.9/site-packages/traits/base_trait_handler.py", line 74, in error
	    raise TraitError(
	traits.trait_errors.TraitError: The 'nonaggr_denoised_file' trait of a _ICA_AROMAOutputSpecRPT instance must be a pathlike object or string representing an existing file, but a value of '/scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/ica_aroma/out/denoised_func_data_nonaggr.nii.gz' <class 'str'> was specified.

	During handling of the above exception, another exception occurred:

	Traceback (most recent call last):
	  File "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/base/core.py", line 399, in run
	    runtime = self._post_run_hook(runtime)
	  File "/opt/conda/lib/python3.9/site-packages/niworkflows/interfaces/reportlets/segmentation.py", line 231, in _post_run_hook
	    outputs = self.aggregate_outputs(runtime=runtime)
	  File "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/base/core.py", line 461, in aggregate_outputs
	    raise FileNotFoundError(msg)
	FileNotFoundError: No such file or directory '/scratch/fmriprep_23_0_wf/single_subject_01_wf/func_preproc_task_mixedgamblestask_run_02_wf/ica_aroma_wf/ica_aroma/out/denoised_func_data_nonaggr.nii.gz' for output 'nonaggr_denoised_file' of a ICA_AROMARPT interface

Given that people can request outputs in MNI152NLin6Asym space, it should be possible to run the necessary steps post-preprocessing, and then we will not have our hands tied by unmaintained dependencies.

cc @jdkent

Do you have any interest in helping implement the feature?

Yes

Additional information / screenshots

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done (To be released)

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions