Understanding output of iFOD2 vs. SD_stream

Forgive a bit of “noob-ness” here. I’m trying to perform tractography on the inferior longitudinal fasciculus from manual ROIs in the temporal and occipital lobes. I think I have created FOD data correctly, and the SD_stream algorithm produces roughly what I’d expect, but the iFOD2 does not, and it could be that I just don’t understand what iFOD2 is supposed to produce. Both deterministic and probabilistic tensor tractography work well.

Could someone take a look and help me understand what I’m missing? The input data is the single subject from the Human Connectome project, using b=1000,2000 only.


# Generate the SD_Stream version
tckgen \
  -force \
  -number 3000 \
  -maxnum 1e7 \
  -algorithm SD_stream -stop \
  -include lobe.occipital.nii.gz \
  -include lobe.temporal.nii.gz \
  -seed_image lobe.occipital.nii.gz \
  -seed_image lobe.temporal.nii.gz \
  -mask T1w/Diffusion/nodif_brain_mask.nii.gz \
   fod_direct.mif inferior_longitudinal_fasciculus_sd.tck

# iFOD2 version
tckgen \
  -force \
  -number 3000 \
  -maxnum 1e7 \
  -algorithm iFOD2 -stop \
  -include lobe.occipital.nii.gz \
  -include lobe.temporal.nii.gz \
  -seed_image lobe.occipital.nii.gz \
  -seed_image lobe.temporal.nii.gz \
  -mask T1w/Diffusion/nodif_brain_mask.nii.gz \
   fod_direct.mif inferior_longitudinal_fasciculus_fod2.tck

# Visualize
mrview T1w/Diffusion/data.mif \
    -mode 3 -plane 0 \
    -imagevisible false \
    -overlay.load lobe.temporal.nii.gz \
    -overlay.load lobe.occipital.nii.gz \
    -tractography.load inferior_longitudinal_fasciculus_fod2.tck \
    -tractography.load inferior_longitudinal_fasciculus_sd.tck 

# Fiddle with clip planes, etc.

SD_stream output (about what I expected) w/ and wo/ROIs

iFOD2 output looks like a fuzz ball

Sorry about the delayed response - ISMRM is looming, too many things to do…

I think your results are in line with expectations. The sd_stream approach is deterministic, which always produces cleaner-looking results than probabilistic approaches. The results of probabilistic approaches are a little bit harder to visualise, since what matters is the density of the streamlines - this is what gives you a measure of confidence in the results. However, when you display a lot of these streamlines, a few messy streamlines can appear quite prominent, since they can obscure the bulk of the results and make things seem even messier than they really are. To get a decent feel for it, you need to use techniques like transparency. There is a rudimentary version of transparency in MRView, although it’s by no means perfect (proper transparency is incredibly difficult to achieve with data of this nature, see this discussion if you’re really interested). But this might give you a better feel for what the probabilistic iFOD2 algorithm is telling you.

Also, note that the tensor_prob approach only really models imaging noise (it uses the wild bootstrap approach), which leads to minimal dispersion in the streamlines when you have high quality data (very little noise). So this explains why the probabilistic tensor results also look clean. On the other hand, iFOD2 models uncertainty at the whole FOD level, reflecting primarily the fact that diffusion MRI doesn’t provide sufficiently high angular resolution to distinguish mild dispersion from no dispersion, etc. (the diffusion signal is inherently smooth, and hence band-limited in the angular domain), and also the now-established fact that fibre dispersion exists in the brain, we can’t simply assume that fibres are perfectly coherently oriented - assumptions that are inherent to the tensor tracking methods implemented in tensor_prob.

I could go into further details, but hopefully this will address most of your concerns…

1 Like

I think the key point is that although it looks like a “fuzz-ball”, there should in fact be coherent structure; it’s just that with direct track visualisation it can be hard to see.

One thing that you could try is generating a DEC TDI, then visualising using the volume render mode in mrview:

tckmap tracks.tck -dec -template brain.mif - | mrview - -mode 3
1 Like

@rsmith, tckmap was the ticket. Thanks for the help and the great overview of global tractography at ISMRM last week.