Estimating response function by using dwi2response msmt_5tt from single shell data

Dear MRtrix experts,

Is it possible to estimate white matter response function by using "dwi2response msmt_5tt" script from single shell data?
Or does "dwi2response msmt_5tt" only support multi shell data?

I applied "dwi2response msmt_5tt" script to single shell data, however errors occured.

[WARNING] Less than three b-value shells; response functions will not be applicable in resolving three tissues using MSMT-CSD algorithm

I have a dataset of some subjects having a multi-shell acquisition (b=0, 1000, 2000; 32 diffusion directions each b).
Im trying to compare the connectome of global tractography from multi-shell data with those from single shell data using multi-shell multi-tissue CSD algorithm.


Hi Koji,

The msmt_5tt method estimates the average signal response in a WM-GM-CSF segmentation of a T1-weighted image. In and of itself, it will thus work in single-shell as well as multi-shell data. But as the warning highlights, the result (3 single-shell response functions) will not be very useful in resolving three tissues using MSMT-CSD, since it leaves you with an underdetermined problem: estimating 3 tissue volume fractions from only 2 b-values (b=0 and b=X).

Our implementation of Multi-Shell Multi-Tissue Global Tractography is not really designed for single-shell data. However, the question has come up a number of times and you can have a look at my earlier comments on the topic here. In summary, if you insist on working with single-shell (b=0 + b=X) data I recommend using a 2-tissue WM-CSF model within a white matter mask.

Hope this helps,


Dear Daan,

I really appreciate your kind response:)
I will proceed with my analysis according to your advice.
I’ll consult you again on this matter if there is any progress.

Many thanks,

Dear Daan,

Please let me ask a question about one more thing.

dwi2response msmt_5tt DWI.mif (only b2000) 5TT.mif RF_WM2000.txt RF_GM2000.txt RF_CSF2000.txt -voxels RF_voxels2000.mif ; dwi2fod msmt_csd DWI.mif RF_WM2000.txt WM_fod.nii -mask DWI.mif

When applying dwi2response msmt_5tt to single shell data as described above, the following message was found.

[WARNING] Less than three b-value shells; response functions will not be applicable in resolving three tissues using MSMT-CSD algorithm
Command: dwi2tensor dwi.mif - -mask mask.mif | tensor2metric - -fa fa.mif -vector vector.mif
Function: shutil.copy(vector.mif, dirs.mif)
Command: mrtransform 5tt.mif 5tt_regrid.mif -template fa.mif -interp linear
Command: mrconvert 5tt_regrid.mif - -coord 3 2 -axes 0,1,2 | mrcalc - 0.95 -gt mask.mif -mult wm_mask.mif
Command: mrconvert 5tt_regrid.mif - -coord 3 0 -axes 0,1,2 | mrcalc - 0.95 -gt fa.mif 0.2 -lt -mult mask.mif -mult gm_mask.mif
Command: mrconvert 5tt_regrid.mif - -coord 3 3 -axes 0,1,2 | mrcalc - 0.95 -gt fa.mif 0.2 -lt -mult mask.mif -mult csf_mask.mif
dwi2response: Calling dwi2response recursively to select WM single-fibre voxels using ‘tournier’ algorithm
Command: dwi2response tournier dwi.mif wm_ss_response.txt -mask wm_mask.mif -voxels wm_sf_mask.mif -tempdir

Does this mean that ‘tournier’ algorithm is applied to WM voxel (> 95% probability) created from segmentation of T1WI?

Also, when describing this analysis part in a method section, is the following description correct?

In single-shell CSD analysis, voxels were assigned to WM if the tissue segment WM volume fraction was >0.95% and the fractional anisotropy (FA) was >0.7. Subsequently, and after reorienting the gradient tables in them so that the principal eigenvectors of the diffusion tensor aligned, the anisotropic response functions for WM were estimated from single shell data (b = 2000) by averaging the DW-MRI profiles over these voxels. Then, the WM fODF was obtained using the dwi2fod command with the msmt-csd option from WM response function. The maximal SH order lmax = 6 for WM was used.

I appreciate your cooperation. Looking forward to your reply.


As said in an earlier response, their is no need to rerun the response estimation for single shell if you already have it for a multi-shell superset. Just use the script that I provided to extract the white matter response for the outer shell. None of the multi-shell approaches will work on single shell data.

Dear Dr. jeurissen,

Thank you for your comment.
I understand. I will use the script that you provided.

Many thanks!