And yes, in my view I did perform unidirectional tracking, if this conforms to the use of the following call:
No, that’s bi-directional. Only way for tracking to be unidirectional is if you explicitly specify -seed_unidirectional
, or use -seed_gmwmi
and only ever seed from cortical and not sub-cortical GM. So if you run tckresample -endpoints
, in most cases the vertices corresponding to the seed locations will no longer be present in the data, and it is not appropriate to refer to one streamline termination as the “start” and the other as the “end”.
My aim is to find the streamlines seeded in the left subthalamic nucleus (in this case) that reach the cortex. Do you think then this approach is appropriate?
Well you’re guaranteed that all of the streamlines will have been seeded in that structure based on the fact that you’ve only provided a single seed image corresponding to that structure. However it won’t be guaranteed that one of the two streamline endpoints will lie within that image, since tracking in both directions bidirectionally may have exited that image. It is at least guaranteed that it won’t be the case that both of those opposing projections from the seed point will exit the sub-cortical GM and enter the white matter, as per ACT prior #6 (the implementation is a little weirder given that the seed point is within sub-cortical GM, and therefore one of the projections has to be permitted to enter the WM, just not both). But following termination of the streamline having tracked, how far tracking is permitted to go in the opposite direction is dictated by the 5TT image, not the seed image.
More likely I suspect that for your experiment you want to be engaging unidirectional tracking.
The tractography call is then repeated 3 other times, using as seed-image each of the exclusion masks listed in the above command (not sure if this is the most time efficient way of proceeding tho?).
While you can provide multiple seed images in a single tckgen
call, your current usage guarantees that every streamline intersects exactly one of these four regions, which would not be possible to guarantee if using a single tckgen
call. So assuming that requirement is deliberate, no there isn’t a faster way to do it.
I now understand the meaning of the reference image for tckconvert
. Does the same apply to tckmap -template
? Or what should the template be in this case?
The command-line options are named identically, but their operations are just as different as are the operations of these two commands. What the template image in the latter case “should” be depends on what you intend to do with those data. In any circumstance in which you want to perform a voxel-wise operation between two images, those images need to be defined on the same voxel grid; so if there is such an operation intended for the output of tckmap
, that’s the voxel grid you should be using as the template.
I do have DWI and T1 images co-registered, but not resampled. Does this mean that, if I eventually want to have the max_endpoint_density_voxel.mif
in the original T1 space, I have to apply a diff2struct transform?
Firstly, if you take a mask image containing one solitary voxel, and not only apply an affine transformation but also resample that data onto a different voxel grid, you no longer have an image that contains a solitary voxel. Depending on the interpolation method and the relative resolutions, you could have zero voxels, you could have more than one voxel, and you could have floating-point values rather than a binary mask.
Secondly, if the DWI and T1 images are coregistered but not resampled, then as long as you are using MRtrix3 tools, no, you don’t want to be applying any transformation. Such a transformation implies that you are taking information from one spatial location and moving it to a different spatial location; if the anatomical content of your two images already overlap (irrespective of the voxel grids on which they are defined), then shifting that image content in space would break that colocalisation. This is a consequence of MRtrix3 treating everything in “real” / “scanner” space; other softwares may have different demands around such things.
I thought a bit more about this and, because I am essentially identifying endpoints of streamlines based on their density, it seemed more appropriate to employ a method that would give me a reliable indication of this. Hence the decision to use SIFT2.
This is kind of like a switch from “most probable” trajectories based on probabilistic streamlines, to “most dense”, a distinction that often gets overlooked. The latter can be advantageous, but can also be unreliable when dealing with very small nuclei.
Is it always advisable to dilate your subcortical (and cortical ?) masks of 2 voxels to make sure streamlines are selected with tckedit
?
It’s cortical masks that are a problem here rather than subcortical. But yes, until one of the better solutions to the problem of streamlines terminating at the GM-WM interface but ROIs being defined within GM voxels gets integrated, something like this is required. The alternative is to generate a parcellation image containing nodes corresponding to your nuclei of interest, one giant node corresponding to the cortex, and potentially another node containing other GM regions not of interest, and use tck2connectome
followed by connectome2tck
to extract streamlines corresponding to the connections of interest; this will utilise the radial search assignment mechanism that is the current default in tck2connectome
, which is essentially akin to dilating ROIs but a fraction more accurate.
Being interested in connections between yes, a small nucleus, but to the whole cortex, I decided not to combine whole-brain to targeted tractography before running SIFT2. However, wanting to extract connections from 4 nuclei, do you think it is a sensible choice? Would you then boost the whole-brain tractography to more than 10 million streamlines if I am just extracting the paths from that?
I don’t think the distinction between 1 nuclei of interest vs. 4 is the deciding factor here. it’s moreso about the size of the smallest nuclei of interest. If a nuclei is so small and your streamline count so small that only a few streamlines intersect it, then no amount of SIFT2-ing will give you a reasonable estimation of the distribution of connectivity to the cortex.
Now thinking back about your answer, I realise that I am not 100% sure I understand what you mean with unidirectional tracking, and how it would be implemented practically speaking in the command. Could you maybe specify this a bit more? Is there a specific option to pass to the tckedit
command to do this? Do you generally want to do this?
See tckgen
’s -seed_unidirectional
option. In your original experimental description, its use would be advocated; but if you are instead performing whole-brain tractography, then you don’t want to use it.
Cheers
Rob