How do statistics on fibre orientations measured with different acquisition schemes

Dear all,

I’m wondering which statistical approach I can use for comparing the the main directions per voxel (peaks) calculated from two different acquisitions schemes?
So in my work I do following measurements:

b-value | # gradient directions
1: 500 | 30, 20, 15, 10
2: 1000 | 60, 30, 20, 15
3: 1500 | 60, 20, 15
4: 2500 | 60, 40, 30, 20

Each measurement I want to repeat 5 times to get some statistic. So for example: 5x b_0=500 with 30 gradient directions, 5x b_0=500 with 20 gradient directions, 5x b_0=500 with 15 gradient directions and 5x b_0 =500 with 10 gradient directions. The same with every b-value and their gradient directions.

Out of these schemes I want to build me different shells (single and multi shells). For example: b_0=500 with 20 gradient directions and b_0=2500 with 40 gradient directions. So in the end I use always 60 gradient directions in total. To these schemes I want to do CSD and compare the estimated directions. So for that I need a value or something else, so that I can compare at least something. I am not really into statistics so thank you for any kind of help
Here are my questions:

  1. Which output I have to take from the CSD approach to compare and analyse the main directions? (I read that the peaks per voxel function is a bit doing this? I guess for that I have to calculate the main peaks?)

  2. How can I calculate a statistical value like the mean or variance out of each 5 measurements?
    Can I just calculate a mean vector and covariancematrices for each voxel and compare the different amount of their matrices traces?

  3. How can I compare the estimated directions per voxel measured by two different schemes?
    I do have some ideas: maybe calculate the angle differences or compare via calculating a distance metric? I guess I need always a reference direction(measurement) what could that be?.

Thank you!!


Bear in mind you should keep the total number of measurements the same for a fair comparison, since this will really influence the amount of signal available for the fit. You’d need an approach like this Jones paper to do this right. Unless you’re looking to factor out that effect elsewhere in some other way…?

Also, I’m guessing you don’t want to write b_0, just b, e.g. 5×_b_=500, etc.

CSD is inherently single-shell, so I don’t see how this would work. Unless you’re thinking of using multi-tissue CSD?

In previous papers (2004, 2007, 2008), I used the peak directions, as given by sh2peaks in the current code - it’s simple and intuitive. More recently, we’ve been using the mean direction of the segmented fODF lobe in applications like dwi2response. If you run the dwi2response tournier approach, you’ll see the commands involved in that (fod2fixel followed by fixel2voxel). I’m not sure which is best in this particular application, but the latter would be expected to be more robust in the presence of dispersion and other deviations from the ideal case.

Yes, that’s commonly done, as far as I can tell. But operating on vectors is a little bit more complicated since they’re not scalar quantities, it’s not that trivial to take their mean. For one, you have to take account of the fact that the direction might be reversed, whilst still being strictly equivalent. I’ve seen things like forming the dyadic tensor and averaging that to get a measure of ‘concentration’. Other option is Derek Jones’ cone of uncertainty. I’m sure there’s other valid ways of doing this.

That’s a difficult question, without some form of ‘gold standard’. I guess if you acquire a very complete dataset as a superset of everything else, and compare to that, that would be OK…? But generally, I’d expect the spread in the orientations (i.e. the concentration or cone of uncertainty) to be a more informative and reliable point of comparison.