Fsl dual_regression




I am trying to transform 8-beckmann-ica probability maps onto my individual subjects. FSL dual_regression seems already what I need to run:


I tried this command on 3 subjects’ preprocessed and atlas projected resting-state data:

$ dual_regression rsn8.nii.gz 1 -1 10 my_output_directory sd02_d00_functional0.nii.gz sd02_d01_functional1.nii.gz sd02_d05_functional2.nii.gz

But, the output z-maps seem super strange: Areas outside of brain have values, which should not be the case.

Is there any idea for what might have gone wrong here?


Interesting… My best guess is that the reference spatial networks maps were thresholded and due to an interpolation step (maybe trilenear?) signal was blurred outside of the head. The DL input data was not skullstripped and the regression method picked up on the signals outside of the head. Just a theory though. I would look at the rsn8 file with increased brightness to see details outside of the head.

BTW which publication do “8-beckmann-ica probability maps” come from?


Your theory makes sense. Because, when I used the reference spatial networks as provided in this link ( “all 8 components” in MNI2mm):


then, the Z-maps were strange.

But, I re-sampled reference spatial networks to MNI3mm, then there was no blurred signal outside of head. With this re-sampled networks, DL produced reasonable Z-maps.

The question is now, how to get rid of blurred signal outside of head in reference spatial maps as originally lying in MNI2mm.



Small question, is there a typo in the code you posted or why are you passing a value of 10 to the number of permutations?

In any case, to get rid of signal outside the head you could mask your z-maps before running the dual_regression:

fslmaths "$INPUT" -mas "$MASK" "$OUTPUT" 

Alternatively, if you figure out what your problem is, and you believe it’s safe to ignore it, you can mask your results afterwards and ignore the outside voxels - given that dual_regression is massively univariate.


Hi dangom,

“Passing a value of 10 for the number of permutations”: I choose it since it was given as a default/example on nipype-fsl-dual regression. No big reason.

You are definitely right, one should get rid of signal outside of head…

Alternatively, I run an fcon script, which does the dual regression step by step. This worked perfectly fine. One of the first steps there was to do fsl_glm on the functional image (${postprocessing_mni_image}), given a single component map (dr_template.nii.gz) with the masking option (${mask}=MNI brain):

$ fsl_glm -i ${func_dir}/${postprocessing_mni_image} -d dr_template.nii.gz -o dr_tc.1D --demean -m ${mask}