Normalization of connectomes

Dear Mrtrix team,

I am reaching out to you with a question regarding the normalization of DWI-based connectomes. My pipeline was the following: group-based response function, ACT with 20M streamlines, dynamic seeding with cropping at the border and SIFT2 correction to generate my connectomes. I would now like to compare the connectomes between diagnostic groups to detect which connections in the brain are significantly different and also do some graph theory analyses.
I have been contemplating as to whether a normalization of each subject’s connectome to its max amount of streamlines (for example with bct.normalize) per subject is necessary/recommended. My diagnostic group involves a neurodegenerative disease and therefore has generally a lower amount of streamlines. As such, when I normalize every subject’s connectome by its max amount of streamlines, my group differences in connectivity and graph theory metrics disappear. I was wondering if it would be accepted to not normalize by the max amount of streamlines, since I also used a group-based response function (i.e., the same response function for all my subjects irrespective of their diagnostic group). I assume this is also a normalization in a certain way? Second, I also wanted to ask if you would recommend scaling the connectomes by inverse ROI volume, as this may take care of atrophy or individual differences in ROI volumes.

Thank you so much for your help!

1 Like

Welcome Julie!

If you want the values stored within a structural connectome to be directly comparable across subjects, and to exhibit the attributes that one would naturally expect when quantifying and comparing the “total amount of connectivity” per bundle as is were, then the appropriate technique for inter-subject connection density normalisation of this measure (which I’m now referring to as “Fibre Bundle Capacity (FBC)”), is explained and justified in this preprint.

Second, I also wanted to ask if you would recommend scaling the connectomes by inverse ROI volume, as this may take care of atrophy or individual differences in ROI volumes.

Personally I’m not a fan of this. In retrospect perhaps I should have said something about this in the manuscript linked above, But the argument I make there regarding intracranial volume I would extend to region volumes as well. If may well be the case that both the structural connectivity of a particular pathway involving a GM region is reduced and the volume of that region is reduced; but note how my phrasing very deliberately avoids implying causality in either direction. But I don’t think that your a priori hypothesis would be that “the connection-strength-divided-by-region-volume is different”. A more likely a priori hypothesis would be that “the connection strength is different, over and above that explained by differences in region volume”: that’s a nuisance regressor problem.

Cheers
Rob

2 Likes

Hi Robert,

Thank you so much for your help. I have read the paper that you are referring to. First of all, congrats with this great work!

I have some follow-up questions. In the paper, it is described that, in order to calculate the FBC that can be compared between subjects, we should multiple the sum of weights as defined by SIFT2 with the proportionality coefficient (mu). I was wondering if this multiplying with mu requires a specific flag? I did see -term_mu flag with SIFT, though I am only using the SIFT2 with tcksift2 command followed by tck2connectome. My resulting connectome values are not within the 0,1 range but mostly above 1000.

Regarding my second question on the scaling by inverse regional volume: in the paper discussion section, you discuss that the FBC intrinsically handles the confound of various whole brain sizes. I am handling a neurodegenerative cohort that, depending on the disease stage of the subject, may lose brain volume in specific regions (i.e. volume loss starts in certain regions and then progresses to the rest of the brain). I was wondering if the FBC would handle this, as there still could be a certain level of causality between ‘loss of connectivity’ and ‘loss of volume’. You would recommend to add regional volume as a covariate in my analyses?

Thank you!
best regards
Julie

In the paper, it is described that, in order to calculate the FBC that can be compared between subjects, we should multiple the sum of weights as defined by SIFT2 with the proportionality coefficient (mu). I was wondering if this multiplying with mu requires a specific flag? I did see -term_mu flag with SIFT, though I am only using the SIFT2 with tcksift2 command followed by tck2connectome.

No, this has been something for which I’ve constantly doubted myself about the interface. In my own work, I use the -out_mu option, which simply writes the value of mu to a text file, which I then load and apply afterwards, particularly because I apply multiple such scaling factors at once. I decided against having tcksift2 always scale the SIFT2 weights by mu, partly because in the instance linked above it makes more sense to apply all relevant scaling factors at once, partly because even if this normalisation procedure is recommended it’s not a unique solution. The -term_mu option in tcksift was indeed implemented in the knowledge that having an equivalent value of such across participants would be one way of pragmatically achieving this normalisation, though I’m not sure it’s something I’d advocate nowadays. I would at least like to write the value of mu to the header comments of the weights file, rather than having to write it to its own text file as I do currently. Perhaps there could be a command-line option that would tell tcksift2 that you want the mu scaling to be included in the weights that are written to file? I’m curious to know if any users have any particular opinions here.

in the paper discussion section, you discuss that the FBC intrinsically handles the confound of various whole brain sizes. I am handling a neurodegenerative cohort that, depending on the disease stage of the subject, may lose brain volume in specific regions (i.e. volume loss starts in certain regions and then progresses to the rest of the brain). I was wondering if the FBC would handle this, as there still could be a certain level of causality between ‘loss of connectivity’ and ‘loss of volume’.

Well, the word “handle(s)” is carrying a lot of weight here. If it is simultaneously true both that a particular GM region has shrunk in volume, and that the total WM connectivity that region is involved in has decreased, then statistically testing FBC in isolation will tell you that the total WM connectivity of that region has decreased. This statement, in isolation, is factually true. If however what you are interested in is whether or not the total WM connectivity to that region is decreased over and above that which can be explained by the reduction in the volume of that region, then this necessitates the use of regional volume as a covariate, combined with an appropriate null distribution generation scheme (e.g. Freedman-Lane). But it’s important to recognise this as fundamentally changing the hypothesis being tested, rather than just “should I add a covariate or not”.

Cheers
Rob

Thank a lot, Rob!
In your python script, you are referring to 4 post-processing scaling factors, which includes (besides the mu) also: 1) (mean median b=0) / (subject median b=0), 2) Multiply by (subject RF size) / (mean RF size [needs to account for multi-shell data], and 3) Multiply by voxel volume. How important is it to scale your individual connectomes by these metrics in order to be able to do between-subjects comparisons of connectivity? (all my data was acquired on the same scanner and has same voxel size.) I might be mistaken, but I didn’t find these different scaling factors explained in your paper. Just wondering where I could find the explanations :slight_smile:
Also, I am interested to perform between-group comparisons of the graph theory metrics. After connectome generation and mu multiplication, the values of my connectomes are between 0 and ± 10. However, lots of the graph theory scripts (e.g. from BCT toolbox) require values between [0,1], for example to calculate global efficiency per subject based on its weighted diffusion connectome. Would it make sense to normalize the connectome by the max amount of streamlines per subject, so I get values [0,1]?

Best wishes,
julie

How important is it to scale your individual connectomes by these metrics in order to be able to do between-subjects comparisons of connectivity?

Well, it’s difficult to know exactly how consequential the inclusion or exclusion of specific inter-subject scaling factors may or may not be; at this point in time I’ve simply tried to account for known factors that could lead to erroneous conclusions if there were to be substantial variation between participants but no correction were applied.

  • The mu scaling is most important if you either have the prospect of a different number of streamlines generated per subject, or if the streamline length distribution changes considerably across subjects (e.g. different size / shape of WM).

  • The median WM b=0 scaling is essentially equivalent to how global intensity normalisation was done in AFD analysis, and so the 2012 AFD paper is probably the best reference. But this should not be as consequential as of version 0.5.0 of that tool: the global DWI intensity scaling should be mitigated during the pre-processing stage using the results of mtnormalise, and is based on the CSF rather than WM signal (indeed in retrospect it may be preferable to omit that scaling factor during group-level analysis since the CSF is a better reference…).

  • Similarly the compensating for differences in RF size is comparable to the use of a common response function, which is again justified in the 2012 AFD paper.

  • The voxel size scaling is only important if you either have different acquisitions with different voxel sizes, or want to place a more “absolute” rather than “relative” interpretation to estimated connection densities.

After connectome generation and mu multiplication, the values of my connectomes are between 0 and ± 10. However, lots of the graph theory scripts (e.g. from BCT toolbox) require values between [0,1], for example to calculate global efficiency per subject based on its weighted diffusion connectome. Would it make sense to normalize the connectome by the max amount of streamlines per subject, so I get values [0,1]?

We spoke a little about this issue in this thread.

It’s worth recognising that if you were to do this on a per-subject basis, i.e. find the most dense edge in each subject and rescale all values so that that edge has a value of 1.0 and all others are within the [0.0,1.0] range, this would override all of the inter-subject normalisation steps described above. You would also need to consider that if the value in that particular edge that happens to be the maximum is somehow elevated or decreased by some noise process, then this normalisation step will modulate the entire connectome for that subject based on that one noisy estimate, with concomitant effects on any graph theory metrics.

Personally, on a more philosophical level, I am sceptical that any downstream calculation that necessitates that the data be bound within such an interval is even reasonably applicable to structural connectome data. The fact that such a fundamental assumption upon the native distribution of the incoming data is broken makes me doubt whether or not applying such an analysis makes sense, even if it is possible to employ a strategy to manipulate the the data to conform. But that’s just me. Hopefully I can find a way to express these things in part 2 of that manuscript…

Cheers
Rob

Dear Rob,

I see from your preprint your do not recommend normalising to number of streamlines in the connectome, as this can remove the effect of interest if doing a clinical study.

Can I check what you would recommend in the context of deriving global and local graph theory metrics from connectomes, where one is not looking at a specific tract of interest.

Generally I have not used any normalisation step, but I’d be very keen on your views on this regarding the best approach, and also if your aware of any literature on the topic

Thanks

Peter