TDI from global tractography

Hi,

I have generated a global tractogram and was wanting to construct a TDI image from it. I get an error that it’s missing step size information. Is is possible to generate a TDI image from your global tracking output?

tckglobal …/DWI.mif …/RF_WM.txt -riso …/RF_CSF.txt -riso …/RF_GM.txt -mask …/…/Diffusion/nodif_brain_mask.nii.gz -niter 1e9 -fod global_fod.mif -fiso global_fiso.mif global_191437.tck
tckmap -template …/…/…/T1w/T1w_acpc_dc_restore_1.25.nii.gz -vox 1.25 global_191437.tck global_191437.nii.gz -datatype float32
tckmap: [ERROR] Cannot perform streamline mapping: no step size information in track file header

Hi Goku,

Yes, because global tractography does not operate on the basis of a step size, this information is not in the track file. There’s an easy workaround by resampling the tracks, for example:
tckresample -step_size 0.5 global_191437.tck global_191437_resampled.tck

However, as you seem to be restoring your TDI on the original image resolution, you can also extract it directly from the output FOD. Since global tractography matches the local track density to the apparent fibre density in the data, the isotropic average of the FOD is the TDI (up to a scaling factor), i.e.,
mrconvert -coord 3 0 global_fod.mif global_tdi.mif

Cheers,
Daan

Hi @Goku,

Over and above @dchristiaens’ suggestions, the reason tckmap is failing is because it wants to know the relative magnitude of the streamline step size vs. the voxel size, in order to upsample each streamline (increase the number of sample points along each streamline) before mapping. Without this step, it’s possible for a streamline to “pass through” a voxel but not contribute to that voxel in the TDI since there is no explicit streamline “point” in that voxel.

Explicitly providing the -upsample option to tckmap, rather than having it calculated automatically, would allow execution to continue. I’ll revise that error message to give the appropriate suggestions once I’m back from holidays.

Cheers
Rob

Thank you guys for the quick reply! I tried out a couple different of your suggested commands

@dchristiaens, using the FOD produced a clean result. I tried tck resample it gave me the error.
tckresample -step_size 0.5 global_191437.tck global_191437_resampled_0.5.tck
tckmap -template …/…/…/T1w/T1w_acpc_dc_restore_1.25.nii.gz -vox 1.25 global_191437_resampled_0.5.tck global_191437_resampled_0.5.nii.gz -datatype float32
tckmap: [ERROR] Cannot perform streamline mapping: no step size information in track file header

@dchristiaens, do you know if there’s a way to run tckglobal with an ROI/tckmap with an ROI?

@rsmith, the upsample command works but the output TDI looks really noisy compared to the averaging the FOD. Is that normal?

Hi @Goku,

If you’re after the total fibre density, especially at the original resolution, you’re better off performing MSMT-CSD directly using those responses, and getting the voxel wise apparent fibre density that is a better direct fit of the data (and more precise). This paper is particularly useful in this context to get the relevant insights: http://www.sciencedirect.com/science/article/pii/S1053811915004607 .

Cheers,
Thijs

@rsmith, the upsample command works but the output TDI looks really noisy compared to the averaging the FOD. Is that normal?

Absolutely. You’re going from a direct estimate of local fiber density that’s based on the DWI data in that voxel, to a measure that’s dependent on tractography (which is always noisy). Global tractography generally does not contain very many streamlines, and the streamline points are quite distant, so those will both contribute to the noisy appearance. Using a large value for the -upsample option (e.g. 20), as well as the -precise option, may slightly improve the appearance; but if there’s the option of avoiding the use of tractography altogether, that’s generally the better option.