Smoothing images by Susan after fMRIprep

Hi, everyone.

I preprocessed my fMRI data with fMRIprep without ICA-AROMA. To do the further analysis, I want to smooth the image with 4mm FWHM. How should I do?

In FSL, smoothing is processed by susan command. I read through the manul of susan in fsl wiki, however, it is still hard for me to know how to define the bright threshold. any suggestions will be greatly appreciated.

Thanks.

I’m not very familiar with SUSAN, but fMRIPrep does run SUSAN when ICA-AROMA is enabled. The smoothed data aren’t retained or anything, but the settings used in that step are probably pretty good. Here is the relevant section of code:

Hi @tsalo, thanks for your kind reply.

I try to understand the code chunk, and checked the manual of SUSAN in Nipype, though I am not very familiar to Python… I am a Bash and R user, so it is not so easy for me to use Nipype.

From another post Fmriprep: resampling of denoised BOLDs & SUSAN smoothing options, I knew fMRIprep use a threshold of 75% as the bright threshold of Susan. I wonder how to do the same with FSL?

Thanks in advance.

Hi, everyone. After a hard effort of searching and asking, I think I have a cue about solving this problem now.

Through an answer in FSL-mail-list, the bright threshold is set by 0.75 multiply the contrast between median brain intensity and backgroud. Then, referencing the log report of FSL Feat, the Susan smoothing could be proceeded as follows:

  1. Calculating the “robust intensity” by fslstats. In my data, the result is 501.66.

fslstats <func_img> -p 2 -p 98

  1. Creating a pre-thresholding mask by fslmath, using 10% multiply result in step 1 as the threshod. In my data, it is 50.166.

fslmaths <func_img> -thr 50.166 -Tmin -bin <pre_thr_mask> -odt char

  1. Calculating the median brain intensity by fslstats. In my data, the result is 326.02.

fslstats <func_img> -k <pre_thr_mask> -p 50

  1. Wrapping the func_img with pre_thr_mask and Creating a Tmean func_img by averaging the time series.

fslmaths <func_img> -mas <pre_thr_mask> <pre_thr_func_img>

fslmaths <pre_thr_func_img> -Tmean <mean_func>

  1. The result in step 3 multiply 0.75 is the bright threshold that we are after (326.02 * 0.75 = 244.51). The FWHM I used is 4 mm, given that the voxel of my data is 2.4 mm^3.

susan <pre_thr_func_img> 244.51 1.698 3 1 1 <mean_func> 326.02 <pre_thr_func_img_smooth>

That’s it! We could get the image with 4mm-FWHM smoothing, and the iamge seems OK by visual inspection. I am not so prefessional to FSL, so I don’t know if it is a proper way to use susan. Please let me konw if this pipeline has any mistakes.

Thanks in advance.

2 Likes

Thank you QunjunLIANG for sharing this. I’ve been trying to replicate/understand steps in the Feat pre-processing pipeline and this resolves the origin of some magic numbers that popped up in their log files.

You are welcome :slight_smile: I’m pleased that the thread helps.

For anyone ending up here (like I did). There is also a nipype workflow for susan smoothing here:

nipype1-workflows/package/niflow/nipype1/workflows/fmri/fsl/preprocess.py at master · niflows/nipype1-workflows (github.com)