I have a multi-shell data with 11 volumes (b=0 s/mm²), 8 volumes (b=300 s/mm²), 32 volumes (b=700 s/mm²), and 64 volumes (b=2500 s/mm²). I trying to subsample my data into smaller sets to evaluate the minimum number of samples I need to have a reasonable tractography for some bundles. I am using this web tool http://www.emmanuelcaruyer.com/q-space-sampling.php proposed by Emmanuel Caruyer at al. “Design of multishell sampling schemes with uniform coverage in diffusion MRI”, Magnetic Resonance in Medicine (2013) for multi-shell protocol directions design. I keep the 11 volumes (b=0 s/mm²) and subsamples the 3 other shells based on the closest directions per shell that are close to the generated ones.
My goal is to subsample the total number of volumes from shells b=300,700, and 2500 s/mm² to a total of 7, 15, 28, 46 which are the minimum number of volumes based on the lmax order https://mrtrix.readthedocs.io/en/3.0_rc2/constrained_spherical_deconvolution/lmax.html (7 and 46 are the closest ones allowed from the web tool to 6 and 45). However, I’ve got two problems on these analyses.
First, for a total of 18 volumes (11 for b=0 s/mm², 3 for b=300 s/mm², 2 for 700 s/mm², and 2 b= 2500 s/mm²), when I ran the command “dwi2response dhollander dwi.mif wm.txt gm.txt csf.txt -lmax ‘0,2,2,2’”, I got the following error:
[WARNING] The following image volumes were not successfully assigned to a b-value shell: [WARNING] 3 (700.00411186999997), 4 (699.99773942000002), 5 (2500.0148205), 6 (2499.9798067500001)
the code crashes afterward and no response is output. The same warning is found every time that I had only 2 volumes in a shell, the code crashed on the same error (I tried different order for lmax too). Also, it seems that the minimum number of volumes per shell is 3. For a total of 21 volumes (11 for b=0 s/mm², 3 for b=300 s/mm², 3 for 700 s/mm², and 3 b= 2500 s/mm²), the code does not show that error, however, it outputs the following one:
dwi2response: dwi2response: [ERROR] Command failed: dwi2response tournier dwi.mif _respsfwmss.txt -sf_voxels 559 -iter_voxels 5590 -mask refined_wm.mif -voxels voxels_sfwm.mif -tempdir /home/ol18/Datasets/Subjects/all_subjects/heam/subsample_ms1_15/dwi2response-tmp-TW4UOP/ (dhollander.py:138) dwi2response: Output of failed command: dwi2response: dwi2response: Note that this script makes use of commands / algorithms that have relevant articles for citation. Please consult the help page (-help option) for more information. dwi2response: dwi2response: Generated temporary directory: /home/ol18/Datasets/Subjects/all_subjects/heam/subsample_ms1_15/dwi2response-tmp-TW4UOP/dwi2response-tmp-KDPBEL/ Command: mrconvert /home/ol18/Datasets/Subjects/all_subjects/heam/subsample_ms1_15/dwi2response-tmp-TW4UOP/dwi.mif - -strides 0,0,0,1 | dwiextract - /home/ol18/Datasets/Subjects/all_subjects/heam/subsample_ms1_15/dwi2response-tmp-TW4UOP/dwi2response-tmp-KDPBEL/dwi.mif -singleshell -no_bzero Command: mrconvert /home/ol18/Datasets/Subjects/all_subjects/heam/subsample_ms1_15/dwi2response-tmp-TW4UOP/refined_wm.mif /home/ol18/Datasets/Subjects/all_subjects/heam/subsample_ms1_15/dwi2response-tmp-TW4UOP/dwi2response-tmp-KDPBEL/mask.mif -datatype bit dwi2response: Changing to temporary directory (/home/ol18/Datasets/Subjects/all_subjects/heam/subsample_ms1_15/dwi2response-tmp-TW4UOP/dwi2response-tmp-KDPBEL/) Command: dwi2fod csd dwi.mif init_RF.txt iter0_FOD.mif -mask mask.mif -lmax 4 dwi2response: dwi2response: [ERROR] Command failed: dwi2fod csd dwi.mif init_RF.txt iter0_FOD.mif -mask mask.mif -lmax 4 (tournier.py:57) dwi2response: Output of failed command: dwi2fod: [ERROR] data contain too few directions even for lmax = 2
I thought I met the minimum requirements by using 18 or 21 volumes in total for a multi-shell data. Nonetheless, it seems that the optimization is done per shell and it is confusing me a bit. Can anyone help me out on this?