I have a question regarding the tck2connectome command. I would like to build a n x p connectivity matrix where n is each seed voxel (in a seed mask) and p is each ROI used for tractography.
It seems that the default option is to have a node-node connectivity matrix (where half of the values would be repeated or it would be an upper triangular matrix).
Is there a way to create the matrix by generating a vector of streamlines for each seed voxel to the ROIs, and concatenating them?
Thanks so much!
There’s a couple of possibilities here, though not all are currently possible with what’s available in MRtrix3:
tck2connectome -vector option is indeed intended to be used for this sort of experiment. However it was really only put in place for my own nefarious purposes, and hasn’t been “matured” to the point of providing a robust experimental mechanism for software users.
All this option actually does is indicate to the command that only the endpoint (i.e. not the start point) of the streamline should be assigned to a parcel. As such, the result is a vector of connectivity, with one value per node, as opposed to a matrix of node-node connectivity.
This is almost what you’re looking for; the trouble is that you want the connectivity from each seed voxel to a set of nodes, rather than the connectivity from the whole seed mask to a set of nodes. This is where I think other softwares may provide a one-button solution, whereas MRtrix3 does not (yet). There’s a couple of different ways of doing this, but neither is yet provided as a “encapsulated” functionality:
Generate streamlines from the entire seed mask; for each seed voxel, select the streamlines for which the start point lies inside that voxel (using
tckedit -ends_only), and provide each of these in turn to
For each seed voxel, generate a fixed number of streamlines from that voxel, and then run
Note that in both of these cases, streamlines propagation in
tckgen should be unidirectional.
The second of these two approaches I have tried in a script of my own. Given there seems to have been a sudden surge in interest in such an approach, I may have to polish it up and upload it as a Gist. Alternatively, if you want to have a go yourself at writing a script to do it, I’d suggest looking closely at the
mredit commands .
I would however advise caution in the interpretation of such experiments; both from my own learnings, and from the abstract presented by Jon Clayden at this year’s ISMRM (session link) that neatly demonstrates the potential for over-interpretation.