Looks like we didn’t get all the messages across correctly yet…
Let’s see if this overview works better:
-
If you’d name the DC term of the SH representation anything along that line of terminology, it should probably be the voxel-based AFD: it represents the total AFD for each voxel. It is the only one that can be fully represented by a “classical” scalar image, where one voxel comes with a single intensity. As a small side note, if you want the “real” total AFD (i.e., the integral of the FOD), you should divide the DC term by about 0.282… Of course, this won’t change the contrast of the image (since it’s a constant factor for the entire image). So to obtain it in a single scalar map, you could use the following string of MRtrix commands (where
fod.mif
is your FOD image, as output bydwi2fod
: <br><br>mrconvert fod.mif - -coord 3 0 | mrcalc - 0.282 -divide afd.mif
<br><br> The units ofafd.mif
in this case could in principle be referred to as “times your single fibre response function (integral)”. Formulating things this way, makes clear the FOD from ©SD techniques expresses/models/… your data in terms of a certain response function. Does this make sense? -
A dixel is a “direction in a voxel”. It’s a concept that was initially introduced to extend the 3D spatial domain with 2 extra angular dimensions (e.g., angles theta and phi that parametrise the angular domain). Just as voxels provide a discrete (gridded) sampling of the spatial domain, something that discretises the angular domain is needed for this purpose. A (very) dense grid of orientations was typically used (e.g., a set of 1000 or more directions). The AFD value per dixel in this case would be the FOD amplitude in a given voxel, along a given direction (multiplied by the angular “area” for the dixel). Obviously, this would be a very large file (basically 1000+ times the size of any of your regular (voxel-wise) scalar maps. Also, to compare AFD for corresponding dixels, the registration would need to be super accurate in the angular domain. Even the smallest deviations could cause huge discrepancies in values, since a single FOD lobe is super sparse in the angular domain. So we don’t really use dixels any more in practice. You can still do track-mapping (TDI) to dixel-space though; but I can’t see much practical use for that any more as well…
-
A fixel is a “fibre population (with an orientation) in a voxel”. It’s a concept introduced to overcome the problems with dixels mentioned before, and AFD per fixel makes more sense from an anatomical point of view. A fixel is still something that lives in the angular domain for a given voxel, but the catch is that the fixel “domain” directly relates to the anatomy at hand: rather than having, e.g., 1000+ predefined dixels per voxel, you’ll just have a fixel for each fibre population per voxel. So for instance, in a voxel somewhere in the middle of the corpus callosum, each voxel should have a single fixel, whose orientation is aligned with the local fibre bundle passing through the voxel. The “total AFD” for that fixel in this specific case will/should be the same as the total AFD for the corresponding voxel; since there is only a single fixel in said voxel. So the real angular domain of the fixel is not limited to a single discrete orientation (that orientation could also be seen as the average orientation for the fixel if you will), but rather extends to the angular area/domain that the fibre occupies. In case the bundle bends a bit, or has some dispersion (but could still be seen as a single population), the angular distribution is represented in the FOD. The AFD for the fixel is the integral of the associated FOD lobe. In case of a crossing of fibre populations in a voxel, you will have an equal amount of fixels in the associated voxel. In principle, their combined total AFDs (FOD lobe integrals) should sum to the total AFD of the voxel (full FOD integral). The command
fod2fixel
will try to segment your FODs for each voxel in “lobes” (this is a tricky and surprisingly ambiguous task, mind you), and store the average orientation for each lobe as a fixel. Via the-afd
option offod2fixel
, it will also store the associated FOD lobe integral (“total AFD”) for each fixel. Doing statistical analysis on fixel images requires a dedicated framework. We happen to have (the only) one of those lying around, after years and years of @Dave’s hard yakka. The public release of this gem (diamond) is soon upon us!
As to your error at hand: that one’s probably caused by you suggesting the wrong extension for the fixel file. We should fix this, since we’ve had heaps of users already running into this… but what you should do is the following:
fod2fixel fod.mif -afd my_fixel_image.msf
…it’s all about that .msf extension. That’s the (clearly still quite obscure) extension we use for our sparse image types; of which a fixel image is one. A redesign of how (sparse) fixels are represented in such a file is still due, so beware this might still change at some point.
I hope all of the above makes some (more) sense now…
(we’re having a nice 33° day out here; I’m trying to enjoy it in smileys)