Hello, I am wondering if mrtrix saves sh coefficients for each specific fixel in fixel2sh / how I would be able to acquire specific sh coefficients for each fixel in a voxel. Let me know, thanks!!

Hank Golding

Short answer: no. The only direction information that is stored for each fixel is an explicit direction. The SH representation is suitable for a continuous function on the sphere – i.e. the fODF – regardless of how many fibre directions (fixels) may be present. There’s no one-to-one mapping between fixels and SH, though you can approximate a set of fixels as a single SH series, in much the same way as @fionaEyoung has been doing in that GitHub thread she links to above. That thread is probably the best info you’re going to get on the subject, I reckon…

Cheers,

Donald

Thank you! that makes sense. I read through the hyperlinked thread from fionaEyoung. I do have one more question. Is there in the pipeline saved the response ODF (not the response function). Thank you!

Thanks again!

Hank

I have a feeling there may be a slight misunderstanding here, so I’ll try to clarify. Apologies if I’m telling you what you already know…

The response function(s) represent the diffusion MRI signal expected for its corresponding ‘tissue type’, and is stored for each shell (per row in the response file) using only the *m*=0 terms since the response is assumed to be axially symmetric (all *m*≠0 coefficients correspond to non-axially symmetric terms). If the dMRI signal is anisotropic for that ‘tissue type’ (e.g. for WM), then it is assumed to correspond to coherently oriented tissue (no crossing fibres or excessive dispersion in the orientation), and that its principal orientation is aligned with the *z*-axis.

What that last sentence says is equivalent to saying that the ODF for that response / tissue type is *always* assumed to be a perfect delta function aligned with the *z*-axis. Hence, there would be no point in saving it anywhere.

If however, by ‘ODF’ you mean dMRI signal ODF, then that is what the response function *already* represents – with the additional caveat that in this case you get a signal ODF *per shell*. You can display them using the `shview`

command directly (use the left/right arrow keys to cycle between shells). Alternatively, you can expand each row of the response function to a full-blown SH series by creating a vector of zero of the appropriate size for the corresponding *l*_{max} value (*l*_{max}=10 by default, implying *N* = ½(*l*_{max}+1)(*l*_{max}+2) = 66 coefficients), and inserting the matching coefficients for each harmonic band (at indices ½*l*(*l*+1) = 0, 3, 10, 21, 36, 55, …, indexed from zero).

Hope this helps,

Donald.

Hello Donald,

Thank you for the response! Yes I understand that the response odf for the response/tissue type would be a perfect delta function. I also understand that it is composed only of m=0 terms. My question is, how would the delta function be represented in an SH manner? (I want the two oblong oval shapes radiating about the origin and not the disk with the concave portion in the center). Would this be done by doing what you suggested there at the bottom / would that produce the same function for each voxel or would it change voxel to voxel?

Thanks again!

Hank Golding