Fod2metric

Hi MRTrixler,

is fod2metric still working correctly in MRTRix3? Ive read the man of fod2metric. Its still there but I couldnt start it?
How would be a example command?

“fod2metric fod.mif”

OffTopic: Can we watch some oral presentations about MRTrix 3 at the ISMRM? :slight_smile:

Thanks,

Ralf

Hi Ralf,

fod2metric was deprecated in favour of splitting the operation over multiple commands:

fod2fixel FOD.mif fixel.msf [options]
fixel2metric fixel.msf [options]

If you didn’t perform a ./build clean before updating MRtrix3, then there’s a good chance that the compiled binary will still be on your system; but it won’t run because the MRtrix3 shared library file has been modified by the updated build. Best to delete it to save yourself the confusion down the track.

Rob

Thanks for the fast answer…
But it doesnt work or I have understanding problem:

fod2fixel SH.mif fixel.msf
fod2fixel: [ERROR] expected exactly 1 arguments (2 supplied)

thx

Hi Ralf,
You need to specify the fixel output using the -afd, -peak or -disp option(s).
Cheers,
Dave

Thanks for the help,

some dll s were missing too, so I reinstalled. Maybe because of the syntax branch.
After the installation it worked.
But there is no fixel2metric command…it seems.

Hi @Ralf,

Yes, I think @rsmith made a slight typo there. The command he was probably referring to is called fixel2voxel : i.e. it computes voxel-wise metrics from a fixel image. You can always try to start typing fixel, and then hit tab (a couple of times) so you get suggestions as to commands starting with the word fixel. Those will generally be all the commands that take a fixel image as their main input.

Another command that starts from FODs is fod2dec, which implements both abstracts I presented at last year’s ISMRM. It generates FOD-based DEC maps, including options for panchromatic sharpening using a T1 image. More information on those 2 methods: FOD-based DEC maps and panchromatic sharpening

Cheers,
Thijs

PS, on your off-topic question: if you’re looking for something to do/see/discuss at ISMRM: always welcome at my e-poster about this abstract . It sits in this e-poster session on Monday at 16:30, at computer #5. Expect an implementation in MRtrix somewhere in a time frame of months… but you’ll then be able to get multi-tissue results (and the much improved tractography and TDI maps to go with it) from any simple single-shell HARDI dataset.

Ralf, since you asked, I might as well plug my ISMRM talk too! It uses fixel-based analysis to investigate white matter fibre density and morphology in Frontal Lobe Epilepsy.

All software and documentation to perform fixel-based analysis will be available in MRtrix immediately after ISMRM.

Note that this includes the introduction of MRtrix’ first ever fully fledged internal registration framework. Mark my words: these are exciting times :exclamation:

2 lines and I got them both wrong. We’ve been through a couple of iterations of renaming commands and my brain’s stuck back in 0.3.10 land somewhere… :-/

fod2fixel FOD.mif -afd fixel.msf
fixel2voxel fixel.msf [options]

Thanks for all your help.
I will visit each of you at the ISMRM…

And…I look forward to test the registration with our “beautifull” inhomogen, distorted data 7T :wink: ! No, I am really happy that MRTrix getting such tools.

Hi there,

following this conversation, I would like to have a whole brain AFD map very similar to an FA map. If I understood well, I can go for fod2fixel and then fixed2voxel, but which would be the best operation to represent the total FOD in my final scalar map (mean?sum?)?

Thanks

Chiara

Hi Chiara,

Assuming you have performed intensity normalisation on your data (which sounds like you have based on your previous post). Then you can just take the first spherical harmonic coefficient of the FOD (sometimes called the DC term) as the ‘total AFD’ measure. This describes the ‘size’ of the FOD at each voxel. You can compute this with mrconvert fod.mif -coord 3 0 dc.mif. The FOD dc term contrast is also the same as the average DW image. Also note the interpretation of this mean DWI (or FOD DC term) as a measure related to density is really only appropriate at high b-values (>3000) with clinical scanners. Not saying you can’t use lower b-values, but then the interpretation is not as clear cut and may be confounded by diffusivity in the extra-axonal space.

If the FOD is DC term is linearly related to the mean DW signal, you might be asking why bother computing FODs then? Aside from the fact that you can compute fixel-specific AFD, you can also ‘modulate’ the FODs to preserve the AFD across the width of a fibre bundle when transforming data into template space. This can be done with the -modulation option in mrtransform. Note this is different from VBM where you modulate the ‘density’ (tissue segmentations) with the Jacobian determinant, since modulation takes into account the orientation of the fibres. So if you really wanted to perform voxel, and not fixel-based analysis, then you could do this on the DC term of the modulated FODs in template space.

We will hopefully have a paper out soon that explains this more clearly in the context of fixel-based analysis.

Dave

Hi Dave,

thank you for your reply.
Following previous post How to compute AFD? I also computed mrconvert fod.mif -coord 3 0 - | mrcalc 0.282 -divide afd.mif.
I thought the two steps fod2fixel+fixel2voxel would have helped constraining the fod-related information. But you are probably suggesting the first one is a better way to go.
I performed dwibiascorrection and global normalisation, however I haven’t built the FOD template. I thought I could still compare afd across subjects. Is this correct?

Cheers

Chiara

Yes, if you only want to compute voxel-wise AFD then I’d recommend mrconvert fod.mif -coord 3 0 - | mrcalc 0.282 -divide afd.mif. You would get a similar result from fod2fixel and fixel2voxel, with some discrepancies due to small peaks being rejected as genuine fixels in the FOD segmentation, and small numerical integration errors when estimating fixel AFD from each FOD ‘lobe’.

How do you plan to compare AFD across groups? A whole-brain analysis in template space, or subject space within tracts-of-interest?

Hi Dave,

Thank you for your reply,
My plan would be subject space tract-of-interest

Hi Chiara,
To investigate a specific tract using AFD, in theory the best approach would be to perform whole-brain tractography with ACT and SIFT (which then either removes or weights (SIFT2) streamlines so that their density matches the underlying AFD per fixel). You could then select out your tract-of-interest using include/exclude regions using tckedit and compare the number of streamlines.

However, if you don’t have a robust way to correct for susceptibility distortions (e.g. with reverse phase encoded b=0 and FSL topup), which is needed for ACT, then you could try the afdconnectivity command. This is also fixel-based, so no need to compute the AFD per voxel.
Cheers,
Dave

1 Like

Hi Dave,
I have multishell data with corrected susceptibility distortions (with reverse phase encoded b=0 and FSL topup), I have previously processed data (from July 2016, with an updated version of mrTrix3) with the ACT pipeline (I generated the 5tt with freesurfer). I obtained several tracts and they worked fine.

But, at the time I wasn’t aware and I didn’t follow the ‘Global intensity normalisation across subjects’ and ‘Computing a group average response function’ steps in “DWI Pre-processing for Quantitative Analysis”.

Today I tested both SIFT and SIFT2, and ‘it worked’. I can see how the tracts are ‘cleaned’ from some fibers. My questions are:

  1. With the data described above, can I use SIFT?
  2. I don’t want to compare between groups, I have 97 young healthy adults. With the data I already have, is it possible to obtain a per tract AFD to be used in a regression analysis (for example, predicting behaviour with the functional activation in two ROIs and the AFD in the tract-of-interest between them).
    3.- If not, could I use the afdconnectivity option?

Thank you very much in advance,
Gari

1 Like

Hi @Gari,

Although you can apply SIFT / SIFT2 with such data, these will only compensate for biases in intra-subject connection densities of different pathways. For valid comparison of these parameters between subjects (whether for group comparison or regression), those steps you mentioned are required. Although it’s technically possible in the case of tract density quantification to perform these corrections post hoc, it’s not something I want to be trying to walk you through; it’d be much safer to re-process your data with these steps included.

Using the afdconnectivity command won’t bypass the issue; it’s an alternative algorithm for estimating a parameter that’s proportional to tract density, but the issue of making those parameters comparable across subjects remains.

Cheers
Rob

Thanks @rsmith!
I read that the script to normalize was having problems with >30 subjects and that you were going to update it. Is it safe now to use it then?

I have an additional question. I have 66 unique subjects, but for 31 out of 66, I have a repeated acquisition: so 97 in total. Should the average be applied to the whole 97 subject set?

Thank you very much for your answers,
Gari

I read that the script to normalize was having problems with >30 subjects and that you were going to update it. Is it safe now to use it then?

The recommended process for inter-subject intensity normalisation is going to change; I don’t recall the issue with > 30 subjects that you are referring to, but certainly the new approach should not have any issues.

I have an additional question. I have 66 unique subjects, but for 31 out of 66, I have a repeated acquisition: so 97 in total. Should the average be applied to the whole 97 subject set?

That’s more of a subjective experimental design question. You could either use one response function from each subject, perhaps randomising whether you use the first or second scan for repeated subjects; or you could duplicate response functions for the 35 subjects not scanned twice, and use 132 response functions. I’m not sure if I would just use all 97 scans equally, since that would bias the average response function toward repeat-scan subjects. Though realistically it’s unlikely to make much of a difference / introduce much of a bias, whichever you choose.

Cheers
Rob