The output of tck2connectome


Not to open the new topic.

Nothing wrong with opening new topics; if anything it’s preferable :+1: You can always provide a link to another topic if you think it might be relevant.

Is it possible for the tck2connectome output to be in form of this

Not directly. It could however be achieved with some fairly minimal scripting involving the connectome LUT and matrix data.

Mind you, the connectomes extracted from tck2connectome are asymmetric - meaning you may need to symmetrize them for their use in neuromarvl.

Neurotic clarification; tck2connectome by default produces symmetric matrices, but stored in upper triangular format. “Asymmetric” generally refers to when the reflected values are not identical but also not simply zero-filled; i.e. the connectivity from A to B is not identical to the connectivity from B to A.

You can also output symmetric matrices from tck2connectome using the -symmetric option.



Hi Alistair,

thank you for providing this good online package, but I was wondering how could I get the node attributes, such as strength, cluster, betweenness and the like. Do you get these attributes from matrix or other tool-package?

Thank you,
Ziqian Wang


Hi @1111 (Ziqian),

No problem at all.

This is a bit of a complex and open-ended question, as you will need some some form of experience with graph-theory metrics and analysis. A good start will be the brain connectivity toolbox in Matlab and it’s seminal technical paper.

For the spatial representation of the node coordinates (and inter-node connections), you will need to extract each parcels centre of gravity (or rather their centre of mass). Bear in mind that the parcellation file used in connectome construction with tck2connectome is more than likely in individual subject-space, and will not align with the standard meshes used in the visualisation packages. You will need to extract the coordinates from the parcellation file in standard space (i.e. MNI).

Another consideration is the resultant connectome matrices are unthresholded causing the interpretation of connectomes difficult and perhaps computationally expensive.

p.s. @rsmith, @jdtournier - perhaps we should add a wiki page for network vis options?




Hi @Alistair_Perry,
thank you for your useful reply. I’ll try brain connectivity toolbox first.
And about the coordinates. Indeed,tck2connectome is in individual subject-space. So I extract the coordinates of node in individual space by the command:
for i in {1…84}; do mrcalcnodes.mif $i -eq - -quiet | mrcentre - scanner; done
Do you mean I normalize it first and then extract the coordinates or just use the default coordinates in the file?

Ziqian Wang


Hi Ziqian,

Two options:

  1. Yes, use the default coordinates.

  2. Normalize the individual (an exemplar) parcellation by registration into standard space, then run the above command.

Also try BrainNet Viewer in matlab for another network visualisation option.




Hi there,

I’m new at mrtrix and that’s really helpful. Thank you.
I was wondering if this interpretation is still valid under sift2. I mean that would the interpretation when weighting the streamlines by the output of tcksift2?
Thank you.



From the topic of “Dense connectomes from CSD-ACT-SIFT”: “For the second algorithm, just about any trajectory through the white matter is possible. So at some point after an adequate number of streamlines have been generated, there will be at least one streamline connecting every single possible pair of nodes, and the network density will be 100%.”

Dear MRtrix team,
I want to calculate the shortest path length between one given pair of nodes. Before doing this, I thought I had to threshold the matrix (connectomes.csv) from CSD-ACT-SIFT(10M) and tck2connectome without -scale_* options to assign each value of the elements less than proposed threshold to 0 and to leave each value of the elements not less than proposed threshold intact; that is to say, when the number of streamlines (NOS) connecting one given pair of nodes reached how much, there would be a structural connection between them.

Could you help me figure out how to choose the threshold value or why I thought it wrong? Thanks very much!

All the best,
Hui Zhang


Hi @hassna,

It’s not clear exactly to which detail your question is directed; but in general, the interpretation of connection density under the SIFT model is consistent with modulating streamline contributions by the weights calculated by SIFT2. Indeed the original SIFT algorithm can be thought of as a special case of the SIFT2 concept, where the majority of streamlines are given a weight of 0 and those retained streamlines are given some fixed weight >> 1.0.



Hi Hui,

I want to calculate the shortest path length between one given pair of nodes.

I am assuming here that you are talking about the graph theory definition of “shortest path length”, as opposed to the shortest streamline length connecting two regions.

Before doing this, I thought I had to threshold the matrix …

If you have to threshold a streamlines-based connectivity matrix, be very sceptical about the analysis you’re doing. The connection densities in such matrices vary by many orders of magnitude. This also happens to be the range of densities observed in quantitative tracer studies; not that the latter is evidence of the accuracy of the former, but it certainly brings to question any process that is based around such a distribution being erroneous. If you have some edges with weight 1 and some with weight 100,000, and your analysis result changes depending on whether or not you threshold the edge with weight 1 to weight 0, your problem is your analysis method, not your data / threshold.

Over and above that, any graph theory analysis that depends on a quantification of “length” is difficult in the context of weighted connectomes. In a binary connectome, it’s easy: Count the links. For weighted connectomes, you need to define some transformation from “strength” to “length”. Most commonly it is simply the reciprocal that is taken; but this is not a unique answer, and the transformation chosen will very much influence the raw results and the higher-order empirical behaviour of the quantification. So I would advise thinking more carefully about exactly what you’re trying to quantify / achieve rather than focusing on what threshold to use.



Rob, I have known that and need to rethink my way. Thank you so much!