Connectomestats to compare groups

Hello everyone,

I am starting my analysis with connectomestats and I would like to compare connectomes from the same subjects at two time points, and also compare these with controls, separately. I suppose I need to perform a paired t-test for the first case, and an unpaired t-test for the second one. Can someone guide me through the best way to do this with connectomestats? Thank you in advance!

Hi Diana,

My name is Stephan and I am also interested in using connectomestats to analyze my data. I was wondering if you ended up learning how to use the code. I’m also looking for some guidance on how to analyze my data using this tool.

Hi both,

Construction of a paired t-test is the same for connectomestats as for other GLM statistical inference commands. Sorry I’ve not found the time to write a comprehensive GLM documentation page, it’s not a small exercise. The principle behind a paired t-test is explained in the Winkler 2014 GLM article. The different mechanisms of data shuffling for null distribution generation as shown in that article are controlled in MRtrix using the -errors option, with ise corresponding to Independent and Symmetric Errors suitable for sign-flipping, which is applicable to pre-computed longitudinal differences which are expected to be symmetric about zero under the null hypothesis.

A more ambiguous question is what to do about the data distribution. Some measures of structural connectivity are highly non-normal, and so their difference will be highly non-normal also. Collaborators have had some success with log-transformation of FBC, and in a longitudinal context this would correspond to quantifying the effect size within the linear model intrinsically as a fractional change, & testing the hypothesis of that ratio being non-unity. But you then have to deal with the potential presence of zeroes.

Rob

Hi Rob,

Thank you so much for your response.

I didn’t realize you had replied until today when I logged into the community. In the meantime, I worked on it on my own and was able to complete the test. However, I wanted to verify my code and ask if you would recommend using a different method to analyze my connectome matrix, mean FA, and mean MD data.

Currently, I am using connectomestats to run an independent t-test with Family-Wise Error (FWE) correction. To complete this task, I used the following commands:

Code

connectomestats connectomes_mean_FA.txt nbs design.txt contrast.txt results_FA_group_diff -strong -nshuffles 5000 -threshold 3.1

connectomestats connectomes_mean_ST.txt nbs design.txt contrast.txt results_ST_group_diff -strong -nshuffles 5000 -threshold 3.1

connectomestats connectomes_mean_MD.txt nbs design.txt contrast.txt results_MD_group_diff -strong -nshuffles 5000 -threshold 3.1

Thank you in advance!

Hi Stephan,

it’s unclear from your response to the original question whether you are also seeking to evaluate longitudinal differences in connectomes, as opposed to simply using the connectomestats command. So I can’t comment on the suitability of your command invocations without knowing the nature of your experimental design and hypotheses.

For connectomes encoding mean FA / mean MD, most likely you would want to just provide those data to the GLM as-is. In reality they are not precisely normally distributed, but given the limitations of the GLM you would need to pre-whiten those data, and I don’t think there’s a strong enough precedent in doing so to consider it compulsory. Assuming “ST” == streamline count, there is the issue of being highly non-normal, but as previously, neither the research community nor myself personally have landed on a data preconditioning step with the requisite confidence to openly advocate for its use.

Regards
Rob

Hi Rob,

Thank you so much for your response. I apologise for the confusion.

To clarify, I am not examining longitudinal differences within the same group. Instead, I am evaluating differences between two independent groups. I expect one group to show lower streamline counts in the ROIs identified using PET imaging data. If I want to conduct this type of research, do you think this command is correct?

connectomestats connectomes_mean_ST.txt tfnbs design.txt contrast.txt results_ST_group_diff -nshuffles 15000

Ever since the last post, I have changed my code from nbs to tfnbs and nshuffles 5000 to 15000 (I have 22 participants, 11 in each group).

In addition, regarding the second paragraph, the mean FA and mean MD values in my data are not global measures. Instead, they represent the mean FA and mean MD for each atlas-defined brain region. Would you recommend using a GLM with FWE correction to identify which regions differ between groups in FA or MD?

Thank you for your time and assistance.

Best regards,

Stephan

Hi Stephan

I can’t advise with any greater precision than the fact that connectomestats is the appropriate command to be using for performing statistical inference on connectome data. The only information you have provided over and above that is an echo of the interface of that command. It’s possible that your GLM configuration could be entirely erroneous, but I couldn’t possibly diagnose such based merely on file names. Therefore I’m not willing to state “yes your usage of this command is correct” because I don’t have all of the information necessary to establish such.

For mean FA / mean MD, I really struggle to justify using a connectome-based approach within the limitations of currently available technology. The “native manifold” of each of those metrics is the 3D voxel grid. By sampling and aggregating those measures across connectome edges, you are essentially “smudging” any differences in those measures across all edges that traverse the voxels where the difference manifests. The values stored within the connectome edges are therefore very much not independent observations. There is therefore considerable risk of false positives and over-interpretation of there being an effect in a connectome edge when in fact it merely shares voxels with some other bundle where the effect is truly present. Simply performing VBA, or perhaps CFE projecting voxel-wise values to fixels, to me involves a smaller degree of “distortion” between the data from its native derived form and what statistical inference is performed with. Obviously if you want to do anything more clever in terms of combining “primary” tractography-based quantities (eg. streamline count, FBC) with “secondary” quantities (eg. mean FA / MD along trajectories) and need them to be defined using the same metric space, then that’s something to take on willingly, but if your goal is simply “do a group comparison of FA / MD”, then I struggle to justify jamming tractography in as a middle man.

Cheers
Rob