Multiple b-values in dwi2fod

Hello everybody. Thanks for this great program! I have DWI Data with two b-values, b=800 and b=1200 s/mm2. How does the program dealing with this issue of multiple b-values. Is it using the larger value or both?

My bvals file looks like this:

0 0 800 800 800 800 800 800 800 800 800 800 0 800 800 800 800 800 800 800 800 800 800 0 800 800 800 800 800 800 800 800 800 800 0 800 800 800 800 800 800 800 800 800 800 0 800 800 800 800 800 800 800 800 800 800 0 800 800 800 800 800 800 800 800 800 800 0 0 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 0 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 0 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 0 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 0 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 0 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 0

Thank you for your support!

Greetings Marc

Sorry. I just saw the “-shell” option in dwi2fod. So it only uses one b-value.

Hi @Marc,

With those data, you can actually give MSMT-CSD a shot, for potentially improved results. This method will use all your shells, and tries to benefit of them by separating contributions to the signal from different tissue types (typically WM, GM and CSF). Give this example a shot (adjust for your own input scenario at the mrconvert stage, if needed):

mrconvert your_dwi_dataset.nii dwi.mif -fslgrad bvecs bvals

dwi2response dhollander dwi.mif wm.txt gm.txt csf.txt

dwi2mask dwi.mif mask.mif

dwi2fod msmt_csd dwi.mif wm.txt fod_wm.mif gm.txt gm.mif csf.txt csf.mif -mask mask.mif

…that is, if your data is/are (a) mature human subject(s).

The FODs that you will want to proceed with, will be stored in fod_wm.mif at the end of this example.

Cheers,
Thijs

Thanks for your fast answer!

The dwi2response dhollander script interrupts when it makes the WM response function from WM using tournier algorithm. The dwi2response tournier script is working with the same dwi.mif file.

dwi2response: Command: ‘mrstats refined_wm.mif -output count -mask refined_wm.mif’ (piping data to local storage)
dwi2response: Result: 146125
dwi2response: Running ‘tournier’ algorithm to select 731 single-fibre WM voxels.
Command: dwi2response tournier dwi.mif _respsfwmss.txt -sf_voxels 731 -iter_voxels 7310 -mask refined_wm.mif -voxels voxels_sfwm.mif -quiet -tempdir /tmp/dwi2response-tmp-JNA4LI/
Traceback (most recent call last):
File “./dwi2response”, line 120, in
algorithm.execute()
File “/usr/local/mrtrix3/scripts/src/dwi2response/dhollander.py”, line 146, in execute
runCommand('dwi2response tournier dwi.mif _respsfwmss.txt -sf_voxels ’ + str(voxsfwmcount) + ’ -iter_voxels ’ + str(voxsfwmcount * 10) + ’ -mask refined_wm.mif -voxels voxels_sfwm.mif -quiet -tempdir ’ + lib.app.tempDir + cleanopt)
File “/usr/local/mrtrix3/scripts/lib/runCommand.py”, line 103, in runCommand
process = subprocess.Popen(cmdstack[0], stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File “/usr/lib64/python2.7/subprocess.py”, line 711, in init
errread, errwrite)
File “/usr/lib64/python2.7/subprocess.py”, line 1343, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

Do you have any idea?
Greetings Marc

Found the Problem! The scripts folder was not in the bashrc! Now it works! Thank you!

1 Like

Sorry. I just saw the “-shell” option in dwi2fod. So it only uses one b-value.

You raise a good point @Marc : Given the addition of multi-tissue CSD, and the functionality of things like dwiextract, this option should probably be renamed to -shells rather than -shell