AFD in the human connectome dataset?

Hi developers,

Thank you providing these tools and your support.

I am running a project on a single white matter tract, and I am using the HCP dataset. I followed the tutorial and used 5tt FOD estimation from the 900 subjects of the HCP dataset. That worked well and I could run tractography for a single subject with manual ROIs (so, no SIFT involved). I am now ready to run tractography on all subjects, but I realize my processing pipeline might be sub-optimal. The project involves measuring the connectivity strength of the tract in question, and correlate it with other behavioral/funcitonal measures. It looks like AFD is the measure that I will need (FA is too outdated, right?). However, to run quantitative analyses on AFD, looks like the same response function must be applied to all subjects, right?

If that is the case, shall I just use average_response to average the 5tt responses (GM.txt, CSF.txt, WM.txt) from all subjects?

The quantitative analysis tutorial suggests using dwidenoise, dwibiascorrect, and dwiintensitynorm. Do you still advise to run these steps on the HCP data (I am using the preprocessed data, exactly as pointed out in the tutorial) ?

Finally, I am a bit confused what should I use to extract AFD: afdconnectivity or fod2fixel?

Any help is highly appreciated.
Dorian

An update:

I have checked the the HCP pipeline, and it performs these steps:

2. ‘TOPUP’ algorithm for EPI distortion correction.
3. ‘EDDY’ algorithm for eddy current and motion correction.
4. Gradient nonlinearity correction, calculation of gradient bvalue/bvector deviation.```

The strange thing is that when I check the average B0 from a bunch of subjects, they all seem to have very similar CSF values, in the range of 10,000-12,000. The question therefore becomes:

**1. Could these data be already on a similar scale, such that no intensity normalization is needed.**
**2. Can I apply intensity normalization as an additional step on their preprocessed data (i.e., a 5th step).**

One last question that I couldn't find the answer:
**Is the ratio between number of seeded streamlines and number of selected streamlines indicative of the connectivity of the tract? I.e., if the left hemisphere tract selects 300 tracts out of 478,000 and the right hemisphere tracts selects 170 out of 1 million, is this indicative that the left tract is more robust, or strong, or prominent?**

Thanks for reading or replying to this.

Hi Dorian,

Yes, for performing analysis of connectivity using streamlines we would recommend using AFD to perform SIFT on your tractogram.

Yes, however you may need to update since average_response can only recently average over multiple b-values.

You can skip step 2 (dwipreproc), if you are using the pre-processed HCP data. Strictly speaking you should perform dwidenoise (step 1) before any other pre-processing as effects such as interpolation will change the properties of the noise. HCP data is good enough to skip this step anyway.

If you are performing analysis of streamlines, then tcksift will automatically estimate the AFD per fixel from the input FOD image. @rsmith, feel free to chime in here about the stopping criteria.

No, it’s unlikely that these will already be intensity normalised. Since most DWI models perform a voxel-wise normalisation by dividing the DW signal by the b=0 within each voxel. [quote=“DorianP, post:2, topic:607”]

  1. Can I apply intensity normalization as an additional step on their preprocessed data (i.e., a 5th step).
    [/quote]
    Yes

The short answer is no. It should have nothing to do with seeded/selected. The number of steamlines in the tract after tracking are what you want to compare. However, this is only if you have performed SIFT, in addition to appropriate pre-processing. @rsmith, feel free to elaborate. Or link to any previous useful discussions on this.

The project involves measuring the connectivity strength of the tract in question …

Finally, I am a bit confused what should I use to extract AFD: afdconnectivity or fod2fixel?

I think the fundamentals of this question need to be clarified in order to properly communicate the answer.

‘AFD’ is a fixel-based measure, that (within limitations) represents a volume of fibres within a voxel. But what you’re looking for is a measure of ‘connectivity strength’. We suggest that this is best quantified as a cross-sectional area of fibres: two pathways with equal cross-sectional area but different lengths have equal ‘connectivity strength’. So the parameter you’re trying to ‘extract’ (AFD), and the property you’re trying to quantify (‘connectivity strength’), have fundamentally different units.

What both afdconnectivity and tcksift do (through different mechanisms) is essentially project the quantitative AFD values from the image domain into a streamlines reconstruction. The fundamental underlying model is that each streamline represents a cross-sectional area of fibres; the product of this cross-sectional area with a length (e.g. the length of a streamline within a voxel) gives the fibre volume contributed by that streamline. The final quantification of ‘connectivity strength’ of a particular pathway is then calculated as either:

  • For afdconnectivity, calculating the total AFD (volume) of the pathway, then dividing by an estimate of the pathway length (e.g. mean streamline length).

  • For tcksift, you simply need to count the number of streamlines belonging to the pathway (since this is just a sum of cross-sectional areas). tcksift2 is similar, but each streamline may have a different cross-sectional area, and therefore these need to be summed rather than just taking a count.

I have a draft technical note on precisely this topic, since it’s something that a lot of people want to do but it hasn’t been concisely described anywhere in the literature. I’ll try to push it out… In addition, if your reading has focused on AFD but less so on tractography, I would point you towards the SIFT paper.

Is the ratio between number of seeded streamlines and number of selected streamlines indicative of the connectivity of the tract?

Most definitely not. Derek Jones’ article “Challenges and limitations of quantifying brain connectivity in vivo with diffusion MRI” covers the issue fairly well, as I’m sure others do as well. But hopefully the SIFT paper will convince you that that’s the quantity you’re actually looking for.

@rsmith and @Dave thank you for your patience.

It seems that what I need is AFD, but perhaps I should have explained better my plan of work. I am trying to measure an inter-hemispheric commissure, whose streamlines start within one hemisphere and cross to the other hemisphere somewhere in the midline. I am interested only at the commissure itself, i.e., the midline portion of these streamlines. Outside of the commissure, the diffusion measures are probably contaminated with other white matter tracts that I am not interested in. So, my intent is to measure the strength of the commissure only.

Looks like I need to extract AFD, but I am planning to crop the streamlines to retain only the commissure part. Therefore, the length of the original streamlines will be lost. Do I still need afdconnectivity in this scenario or is something else more appropriate (don’t know, fod2fixel for example)?

The reason I avoided tcksift is that the examples I see in MRtrix decumentation are with millions of streamlines from whole brain analyses. I am working on a small number of streamlines from manual ROIs. I aim at getting 300 streamlines with maxnum = 1M, which already takes hours. Removing streamlines with SIFT will bring the number down to 30-50, which I don’t know if is a good number to get AFD from.

Thank you.

I am trying to measure an inter-hemispheric commissure, whose streamlines start within one hemisphere and cross to the other hemisphere somewhere in the midline. I am interested only at the commissure itself, i.e., the midline portion of these streamlines. Outside of the commissure, the diffusion measures are probably contaminated with other white matter tracts that I am not interested in. So, my intent is to measure the strength of the commissure only.

I suspect that SIFT is still what you’re looking for (though I appreciate that processing can pose an issue; see below). I do however want to address the ‘contamination’ comment though.

For something like FA, absolutely the ‘quantitative’ value along the length of the streamlines would be affected by the properties of other pathways that occupy some of the same voxels but don’t traverse the entire pathway of interest. For AFD and SIFT though, this is dealt with intrinsically in the model. This is because AFD is additive: the fixel-wise value of AFD can be divided between pathways based on their relative volume fractions within the fixel:

  • Within the commissure, only those streamlines belonging to your pathway of interest are assigned to those fixels; therefore all of the AFD in each fixel is contributed from your pathway of interest.

  • Within the deep WM of each hemisphere, the fixels traversed by those streamlines may be traversed by many other streamlines that don’t go on to cross the commissure. Within the SIFT model, only a fraction of the AFD in each of those fixels is contributed from your pathway of interest; the rest comes from those other unrelated streamlines.

So it’s not a contamination in the way that this term is usually used in the context of diffusion measures (where ‘corruption’ would maybe be a better term); it’s purely a partial volume issue in the fixel domain. But the SIFT model deals with this, within the limitations of the tractogram it is fed.

Looks like I need to extract AFD, but I am planning to crop the streamlines to retain only the commissure part. Therefore, the length of the original streamlines will be lost. Do I still need afdconnectivity in this scenario or is something else more appropriate (don’t know, fod2fixel for example)?

You could use afdconnectivity for something like this. You would use tckedit to crop the streamlines, then afdconnectivity to extract the connectivity value of interest: This command internally runs the same FOD segmentation algorithm provided by fod2fixel, and would then internally divide by the mean (cropped) streamline length: Even in the cropped pathway scenario, it’s still necessary to convert AFD (which is a volume measure) into a measure of cross-sectional area in order to be interpretable as something related to ‘connectivity strength’.

The reason I avoided tcksift is that the examples I see in MRtrix decumentation are with millions of streamlines from whole brain analyses. I am working on a small number of streamlines from manual ROIs. I aim at getting 300 streamlines with maxnum = 1M, which already takes hours. Removing streamlines with SIFT will bring the number down to 30-50, which I don’t know if is a good number to get AFD from.

Particularly in situations where streamline count is an issue, tcksift2 is worth having a look into. Some extra details on usage here. I would also suggest having a close look at Figure 10 in the SIFT2 paper and thinking about how it might be applicable in your use case :wink:

Rob

Thanks a lot for the detailed response @rsmith.

One (I hope) last question. Can I use streamlines created from a FOD map not corrected for intensity, to estimate AFD using a FOD map corrected for intensity? The reason why I am asking is time. I have already run tractogragraphy on a number of subjects, and it would be simpler to use the existing streamlines and just recompute FOD images for AFD purposes.

Dorian

Can I use streamlines created from a FOD map not corrected for intensity, to estimate AFD using a FOD map corrected for intensity?

Within certain limitations, yes. Depends entirely on whether or not the absence of such corrections influences the results of streamlines tractography. E.g.:

  • If correcting for global intensity normalisation, this may affect the ‘effective’ FOD amplitude threshold during tracking, and hence influence how much streamlines disperse & how far they project.

  • If correcting a B1 bias field, this can have a similar effect to that above, but with the effective FOD amplitude threshold varying spatially. If you had used SIFT / SIFT2 before correcting for a bias field I would suggest re-running that step, but I don’t think that applies here.