Hello,
I just finished reading over the fmriprep pre-print and had two questions regarding how co-registration is performed when specifying different flag options. I’m currently incorporating the FreeSurfer workflow, since the paper suggests that bbregister
performs the best during co-registration.
1). If --force-bbr
is specified, does that overwrite bbregister
and use boundary-based registration instead?
2). If I don’t use --force-bbr
but specify --fs-no-reconall
, does that mean that co-registration is performed using FSL’s flirt
?
Thank you for the clarification.
Dan
Hi Dan,
bbregister
is a boundary-based registration tool. BBR is a two-step process:
- fast, rigid registration
- boundary-based refinement
Both of these steps are implemented whether FreeSurfer is used or not. If FreeSurfer is used, then the steps use (1) mri_coreg
(FreeSurfer’s reimplementation of SPM’s coregistration) and (2) bbregister
(this is what bbregister
actually does with default options, but we split it out for reasons described below). If not, then both steps are done with FSL’s flirt
, with the second one using the BBR cost function.
We add in an extra step at the end, and look at the normalized difference between the affine transformations produced by these registrations. If that difference is too high, we conclude that the BBR step hit a pathological case, which most often happens in images with low tissue contrast.
What --force-bbr
and --force-no-bbr
do is tell fMRIPrep not to compare the registration affines, and either to use the two-step BBR process or to only perform the rigid registration. The main reason we did this is that we aren’t supremely confident in our heuristic, and want to give users a way to test both registrations, rather than endlessly tweaking the heuristic. I’ve seen people use --force-bbr
when the initial registration was a worse than usual, so the actually good BBR refinement was deemed “too far” by the heuristic. The main reason to use --force-no-bbr
is that you know the BBR step is going to be bad and don’t want to waste the computation time.
Hope this helps.
Chris
4 Likes