I have successfully run fMRIPrep pipeline on my language task-based fMRI dataset and i am trying to run afni_proc.py on my output results to do some regression and clustering analysis and find the activated regions during my tasks. My goal is compare those clusters with my current processing pipeline which uses only afni_proc.py to do time-shifting, alignment, volume registration, blurring (4 mm), masking , scaling and regression analysis. In an effort to see if ICA-AROMA cleaned dataset would give us a comparable or even better clusters, i have taken *space-MNI152NLin6Asym_desc-smoothAROMAnonaggr_bold.nii.gz & *desc-confounds_regressors.tsv files and regressed out the 6 motion parameters that was reported in my confound regressor.
However, I found out in AROMA process, first a spatial smoothing of size 6 mm is performed and then ICA-AROMA is applied. my current pipeline only does a 4 mm blur size, is there a way to change this default value to smaller size? more importantly is there a specific reason why blurring size of 6 mm was chosen? would it be possible to turn off this smoothing part before performing ICA-AROMA?
I believe that that smoothing kernel is the only one AROMA has been validated on, so it may be necessary. That said, since denoising only requires the mixing matrix and classifications (i.e., component time series and whether the component is accepted or rejected), the smoothing kernel doesn’t really matter at that stage.
You should be able to run the denoising after fMRIPrep using the preprocessed data and the AROMA mixing matrix. Per the fMRIPrep documentation:
Additionally, the MELODIC mix and noise component indices will be generated, so non-aggressive denoising can be manually performed in the T1w space with fsl_regfilt, e.g.:
fsl_regfilt -i sub-<subject_label>_task-<task_id>_space-T1w_desc-preproc_bold.nii.gz \
-f $(cat sub-<subject_label>_task-<task_id>_AROMAnoiseICs.csv) \
-d sub-<subject_label>_task-<task_id>_desc-MELODIC_mixing.tsv \
So you can just apply whatever smoothing kernel you want to the preprocessed data and then do the non-aggressive denoising on the newly smoothed data.
You could do that to the template-space output if you want template-space with the only difference being the smoothing kernel.
So lets say i take the fmriprep func output sub-<subject_label>_task-<task_id>_space-T1w_desc-preproc_bold.nii.gz and pass it through fsl_regfilt and the output i get from this function can become my input to afni_proc.py? then in afni_proc i can choose a different blur size for it? and do i have to regress (6) motion parameter from this denoised dataset?
However, if i choose to go with ICA-AROMA cleaned dataset in MNI-space (space-MNI152NLin6Asym_desc-smoothAROMAnonaggr_bold.nii.gz), this dataset has been smoothed by 6 mm in the process and i cant do anything about its size.
can i run your suggested fsl_regfilt on **sub-<subject_label>_task-<>task_id_space-MNI152NLin2009cAsym_desc-preproc_bold.nii.gz rather than T1w space?
I guess you could run
afni_proc.py on the data, but that seems like overkill. I’d just run a smoothing function directly, if that’s what you want done to the data. But yeah, you can just use whatever smoothing kernel you want.
I’ll paraphrase @rastko here (from ICA AROMA agg vs non-agg) and say that it may be a good idea to include other nuisance regressors (e.g., WM and CSF), but since correlation with motion parameters is a criterion for AROMA classification, it probably won’t help to include the motion parameters in your denoising step. Essentially, the motion parameters are almost certainly highly correlated with the “bad” components as classified by AROMA.
So as i am reading more neurostar posts about this ICA-AROMA dataset, there is this concern that regressing out nuisance regressor that were calculated before AROMA denosing the dataset could introduce a structured noise to the residual noise series.
my end goal is to get the activation map for my language tasks, if performing afni_proc.py is an overkill on the data, Isnt it better to just take ICA-AROMA denoised dataset and perform clustering on it?
Hi @tsalo, sorry for bother you again, but i am still trying to find out the best approach for my fmri analysis. based on what i am reading, i have narrowed them to 3 approaches:
- taking non-AROMA dataset (_desc-preproc_bold.nii) and regressing out 6-motion parameters and motion outlier through afni_proc.py
- taking the non-aggressivly denoised AROMA dataset (smoothAROMAnonaggr_bold.nii.gz ) and regressing out the mean signal from WM and CSF?
- taking the non-AROMA dataset (_desc-preproc_bold.nii) and performing aggressive denoising using AROMA noise component (motion_AROMA#) + mean WM, CSF, global time series as well as discrete cosine frequencies. I am not sure, if i have understood this method right?
In your experience, which route has been the most successful?
I’m not an expert on AROMA, but I think that number 3 best matches up with your original goal (i.e., use AROMA denoising on data with a different smoothing kernel). Based on Best practices for AROMA and fmriprep, it seems like a completely reasonable approach.
Thank you @tsalo for your recommendation. i will try it out on my dataset and compare the results.