ICA-AROMA & fmriprep using child template

Hi Experts,

I have run fmriprep using a pediatric template and I would like to denoise the data using ICA-AROMA. When I ran fmriprep 1.4.1rc4 it produced ICA-AROMA denoised data in pediatric template space. However, I don’t think this is valid (https://github.com/templateflow/templateflow/issues/9) and I can’t get fmriprep1.5.0 to run with --use-aroma (https://github.com/poldracklab/fmriprep/issues/1798) to see if this output is still produced.

So my alternative is to use the nipype version of ICA-AROMA, but I am not sure how to do this using fmriprepped data. Ideally, I would like to maintain the 1st pass registration to child MNI space so could I use the data in this space as inputs for ICA-AROMA or should I be using data in native space? Then, in order to satisfy the other inputs could I just run a 2nd pass registration to adult MNI space using FSL FLIRT and FNIRT?

Many thanks,
Joff

Some related threads:


This is not possible. ICA-AROMA only works in the MNI152NLin6Asym (aka FSL’s MNI152 template) and denoised timeseries are only generated in that space.

Following up there, but please note that the errors you are experiencing are unrelated to ICA-AROMA.

That’s actually exactly the same as letting fMRIPrep do the job. Unless you modify the code base of AROMA (https://github.com/maartenmennes/ICA-AROMA) to run on a new template, you are better off using the default fMRIPrep implementation.

In your case, maybe a more elaborate denoising strategy similar to ICA-AROMA but customized to your pediatric cohort (i.e. the pediatric template) would be better. You can implement such a strategy with FSL FIX, for instance.

Thanks again @oesteban for your technical support and suggestions.

Not sure why the error occured, but I have now run 3 subjects with ICA-AROMA with no errors, and subject 004 ran fine without AROMA - I will test them again with the --use-aroma flag.

One thing that persists, is the output of denoised timeseries in all templates:
sub-001_task-rest_space-MNIPediatricAsym_desc-smoothAROMAnonaggr_bold.nii.gz
sub-001_task-rest_space-MNI152NLin2009cAsym_desc-smoothAROMAnonaggr_bold.nii.gz
sub-001_task-rest_space-MNI152NLin6Asym_desc-smoothAROMAnonaggr_bold.nii.gz

Are these all actually now in MNI152NLin6Asym space?

Best wishes,
Joff

Thanks for reporting this.

Since the desc-smoothAROMAnoaggr is originally calculated in MNI152NLin6Asym space, that one should be fine for sure.

Then, about the other two, I can’t recall on top of my head whether the transform from MNI152NLin6Asym to them is being applied. It seems quite unlikely because to do so we would need to concatenate transforms back to T1w space and then forward to each of these template spaces. If we are not doing that, then these extra spaces should not be used and I’ll take care of fixing that. I’ll double check and get back to you.

1 Like

Just wondering if this ever got worked out? I’d be keen on using these outputs too if they’re valid :slight_smile:

Similarly, I use the following command:

singularity run --cleanenv \
	-B ${bids_dir}:${bids_dir} \
	-B ${TEMP_WORK}/work:${TEMP_WORK}/work \
	-B ${CONTAINER_HOME}:${CONTAINER_HOME} \
	${CONTAINER_HOME}/fmriprep-1.5.0.simg \
	$bids_dir $target_dir \
	participant \
	--participant-label ${participant_label} \
	--task-id rest \
	--nthreads 8 \
	--mem-mb 16380 \
	-w ${TEMP_WORK}/work \
	--use-aroma \
	--error-on-aroma-warnings \
	--use-syn-sdc \
	--output-spaces MNI152NLin6Asym:res-2 MNI152NLin2009cAsym fsaverage:den-10k \
	--fs-license-file ${CONTAINER_HOME}/license.txt \
	--skip_bids_validation

And get the following outputs:

sub-0001_task-rest_run-01_AROMAnoiseICs.csv
sub-0001_task-rest_run-01_desc-confounds_regressors.json
sub-0001_task-rest_run-01_desc-confounds_regressors.tsv
sub-0001_task-rest_run-01_desc-MELODIC_mixing.tsv
sub-0001_task-rest_run-01_space-fsaverage_hemi-L.func.gii
sub-0001_task-rest_run-01_space-fsaverage_hemi-R.func.gii
sub-0001_task-rest_run-01_space-MNI152NLin2009cAsym_boldref.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin2009cAsym_desc-aparcaseg_dseg.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin2009cAsym_desc-aseg_dseg.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin2009cAsym_desc-brain_mask.json
sub-0001_task-rest_run-01_space-MNI152NLin2009cAsym_desc-brain_mask.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin2009cAsym_desc-preproc_bold.json
sub-0001_task-rest_run-01_space-MNI152NLin2009cAsym_desc-preproc_bold.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin2009cAsym_desc-smoothAROMAnonaggr_bold.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin6Asym_boldref.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin6Asym_desc-aparcaseg_dseg.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin6Asym_desc-aseg_dseg.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin6Asym_desc-brain_mask.json
sub-0001_task-rest_run-01_space-MNI152NLin6Asym_desc-brain_mask.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin6Asym_desc-preproc_bold.json
sub-0001_task-rest_run-01_space-MNI152NLin6Asym_desc-preproc_bold.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin6Asym_desc-smoothAROMAnonaggr_bold.nii.gz

So is the 2009c AROMA output invalid? and more importantly for my usage, since syn-sdc is computed in the 2009c space, is the NLin6 space invalid???

Correct, please see https://github.com/poldracklab/fmriprep/issues/1816 to follow up.

Nope, you are safe. The fact that syn-sdc brings prior information from the 2009c space doesn’t mean that correction happens in that space. It indeed happens in the original native space of your bold run.

So to confirm, if my goal is to use the NLin6:res-2 standard-preproc and AROMA files, with syn-sdc applied to both, I am fine using:

sub-0001_task-rest_run-01_space-MNI152NLin6Asym_desc-preproc_bold.nii.gz
sub-0001_task-rest_run-01_space-MNI152NLin6Asym_desc-smoothAROMAnonaggr_bold.nii.gz

both of of which have have the syn-sdc applied, and the AROMA file has been warped over from 2009c space, and can now delete the 2009c output files to save space?..

Yes, correct.

However, before you do that, I’d really think about whether you want to use the smoothAROMAnonaggr output or alternatively the preproc one and use the AROMA timeseries to regress out noise. If you did that, you are probably better off using the 2009c MNI.

EDIT: Please delete the sub-0001_task-rest_run-01_space-MNI152NLin2009cAsym_desc-smoothAROMAnonaggr_bold.nii.gz in any of the cases.

right, we mostly just use the standard preproc file, but have been wanting to eventually compare the AROMA outputs (aggr or non-aggr) to our typically post-fmriprep regression.

what did you mean in your EDIT, and per issue 1816, so is the 2009c-nonaggr file invalid? oh, you were saying “Correct it IS invalid”.

Sorry that was unclear: files with name space-<any space other than MNI152NLin6Asym>_desc-smoothAROMAnonaggr should not exist.

In other words, only sub-0001_task-rest_run-01_space-MNI152NLin6Asym_desc-smoothAROMAnonaggr_bold.nii.gz is valid and thus, any other space for desc-smoothAROMAnonaggr is invalid.

Perfect. Thank you, that makes more sense now.

For progress on this issue, please follow up here: https://github.com/poldracklab/fmriprep/issues/1816

For the record, the spaces issue has been fixed - will be available as of 1.5.1rc2.

BTW, the various space-<id> it generated were just aliases of the space-MNI152NLin6Asym one.

1 Like