Number of b-values doesn't match

Hi all,

I’m currently working on a pipeline for a fixel-based analysis of human DWI data. I have calculated and averaged my response function, which contains 4 b-values. However, my data has 5 b-values, namely: 0, 0.1, 500, 1000 and 2000. I noticed that dwi2response does not take into account the 0.1 b-value, because when I manually enter the b-values 0,0.1,500,1000,2000, the algorithm tells me I entered a b-value twice.

This creates a problem when I try to calculate my dwi2fod, which detects the 5 b-values in my dwi data, but doesn’t see it in the response function. It gives this error:

number of rows in response function must match number of b-value shells

My response function:



Sorry, this one fell off the radar… This sounds similar to this recent post. Basically, MRtrix3 will assume b=0.1 is essentially equivalent to b=0, and treat it as such. What I’m not sure about is why this would create issues in dwi2fod though, unless you’re trying to force it to treat the b=0.1 shell as a distinct shell somehow. The exact same code is used to cluster b-values into shells in both cases…

If you run your dwi2fod call with the -debug option, you should see how the DW encoding information stored in the image header was clustered into shells, and that might give us a hint as to why that doesn’t match your response(s).

Also, it would be helpful if you could post the full command line and all its outputs in their entirety – the clues as to why things aren’t working are often in there somewhere, even if they don’t seem to relate to the issue directly.