The problem is that
tckconvert does not write step size information into the tck header and thus SIFT2 is not able to process the data.
With up-to-date code,
tcksift2 should be able to handle track files where the step size is undefined (I made some changes in this context not long ago). If this is not the case, quoting the specific error message would be helpful. The issue with processing tractograms in this way is that streamline lengths within each voxel traversed will reflect chordal length rather than arc length - which isn’t the end of the world really, hence why I’ve downgraded it from an error.
Is there an elegant way to hack the step size information into the tck header?
No, only the hex editing you’ve described. This is easier with image data, where you can convert to a
.dat pair and then edit header entries using a text editor; track files however don’t have an analogue of this.
If I got it correctly, SIFT2 generates an artificial FOD image from the weighted input fibers to explain the given FOD image in the best possible way.
Kind of. Fundamentally it operates on fixels; the synthetic FOD outputs are really only for visualisation purposes. Nowadays these aren’t even generated, unless you uncomment this line.
Is it possible to output the “unexplained” parts of the FOD image?
Most likely using the
-output_debug option will get you what you’re looking for. Technically there’s actually a few different ways that you could get to this result, but not all of the tools are in the public domain yet.