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.

Thank you very much, this clarifies the situation!