FBA pipeline - quality check for several steps

Hi @abesik,

Apologies you have not yet received a response. I don’t interact with this forum often anymore, but have been encouraged to provide some input to your questions. Don’t hesitate to contact me directly if you need or want more hands-on help or QA’ing of your steps; I’m very happy to assist if you think it would help. In any case, here goes some input:

Preprocessing generally: looks all very good to me. The brain masks look excellent in the sense that they trace the shape of the outline very well, but they are otherwise slightly “generous”, reaching a bit beyond even the CSF surrounding the brain, as far as I can see in your screenshots. This is not a big issue, but I will refer to it below at one point. Apart from that point, it can actually be an asset when you get to the stage of computing the intersection mask in template space. So brief conclusion here: excellent preprocessing, and do keep those masks in general.

This is not always expected, and indeed the CSF voxels often at least partially come from the ventricles. But, to reassure you: of all 3 tissues, selecting the CSF voxels is probably the safest and most robust process of them all. Apart from some clean up and extra trickery in the algorithm at the start, eventually these CSF voxels mostly originate from the areas with the largest “signal decay metric (SDM)”, which you can think of as basically equivalent to the ADC for single-shell data. There is very little margin for outliers or other weirdness in this sense. That these voxels were selected down there in (genuine) CSF around the brainstem would indicate the ADC is (probably ever so very very slightly) higher there compared to the ventricles, so these voxels just happen to “win”. What could contribute to this happening is indeed the size of the ventricles: people often think of these as large gaps with CSF, but they’re actually often quite “thin” in 3D, relative to the voxel size, so partial voluming easily happens. There’s also other “stuff” in there that people often overlook, such as the choroid plexus, etc… Often people get CSF voxels also from other CSF spaces for this reason, and only few in the ventricles.

Additionally, and this is again not a problem, your “larger” masks actually come into play here: the dwi2response dhollander algorithm starts by default by eroding your brain mask a bit, so as to get rid of potentially weird voxels outside of the brain/CSF. This was once more important in an earlier version of the algorithm, for robustness, but the current version of the algorithm is most of the time perfectly robust even beyond the brain, as long as things don’t get too crazy. But so, in your case: since the mask is a bit larger, the erosion reaches a bit less deep, hence you’re still retaining some voxels around that brainstem that most other people would inherently not have retained. But again, this is not a problem: this is genuine CSF, and according to the algorithm it’s even a tiny bit better than that in the ventricles. Furthermore, looking at your actual 3-tissue maps after SS3T-CSD: the fit looks excellent, so nothing went wrong with these CSF responses on a drastic level or anything. If it was me, I would use them just the way they are. All good!

This does relate to the above indeed: since the CSF response function is now “a bit better” in the sense that it has slightly larger SDM (or ADC), it actually very “comfortably” helps the fit in the ventricles, i.e. the fit is not “cut off” or “capped” at the SDM/ADC of the CSF response. This leaves a tiny margin for something else to help the fit further, which would be the tiny bit of WM FOD you see there. But, I have to emphasise the “tiny” here: these tiny FODs are orders of magnitude smaller than the FODs in the actual WM. You got nothing to worry about here, as the FBA pipeline will easily deal with this when you apply thresholds in fod2fixel (both on template and subjects), and also in tckgen.

Other than that, on the side, I can see you overall SS3T-CSD fit is absolutely excellent, especially given b=1000 data. That GM is nicely filtered out. Your template (and subject-to-template registration) screenshot shows a very neat WM contrast, and you can tell how removal of GM signal has successfully supported your registration results.

This is then that one spot I referred to above. I reckon you’ll still be fine to be honest: I tested this myself when some upset arose over it in the past, but that upset was driven by masks that were several voxels wider than the subject brain. However, if you want to avoid any and all risks, it also won’t hurt to erode the masks (only for this step) by one or two passes. After all, your eventual intersection area, and even more so your fixel analysis mask, will be smaller than this regardless. So conclusion here: if you want to play it safe and remove any and all worry, just erode by one or two passes to generate a slightly smaller mask specifically for this step only.

0.13 sounds potentially to high to me. On the other hand, 0.06 is almost always too low. I think this has still not yet been updated in the online documentation? In any case, in the last several years, I have been involved with many FBA studies, and we have almost always increased this to e.g. 0.08. By the way, similar for the threshold in the earlier fod2fixel step. What this kind of dense streamline visualisation doesn’t reveal is where streamline bits will start to be removed e.g. in crossing areas, at such high thresholds. This could severely undermine your FBA’s potential to find (parts of) results. Based on what I can see in your screenshot, I would suggest going for 0.08 or 0.09, for both the fod2fixel and tckgen steps. Looking at the output of fod2fixel on the template with several thresholds is probably the best and most direct way of assessing this. This is a bit of an art though; it certainly helps to have seen it in more than one study.

No worries about my time, and I regret you couldn’t get an answer until now.

All the best,
Thijs (Friday, 20-May-22 10:13:36 UTC)