fMRIprep poor functional anatomical registration

Hi all,

I am trying to preprocess the openly available Balloon Analog Risk-Tasking Task dataset available from OpenNeuro.

I have found that for a few subjects/runs (sub-01 run-01, sub-07 run-01, sub-08 all runs), registration of the functional data to the anatomical has been quite poor. For all of these subjects, registration is carried out with FLIRT and (unlike the other subjects in the dataset) BBR refinement gets rejected. I have tried using the --force-bbr option in my scripts to amend this, but I found this made the registrations worse.

We have preprocessed this data before in FSL (where registration is also carried out with FLIRT), and there we obtained good registrations for these subjects and runs. For comparison, I have compiled together the fMRIprep anat-func registration report figures and the corresponding FSL report figures at this link. As the fMRIprep figures are animated, to see them properly you need to download them and open in a browser.

We are running fMRIprep v1.5.1 through singularity, and here is an example of the subject-level script for sub-01:

singularity run --cleanenv -B /well/win/software/packages,/well/nichols/users/bas627/BIDS_Data/RESULTS/SC2/data/raw/ds001_R2.0.4/../../.. /well/nichols/users/bas627/fmriprep/fmriprep-1.5.1.simg \
    /well/nichols/users/bas627/BIDS_Data/RESULTS/SC2/data/raw/ds001_R2.0.4 /well/nichols/users/bas627/BIDS_Data/RESULTS/SC2/data/processed/ds001 \
    participant \
    --participant-label 01 \
    --ignore slicetiming \
    --fs-license-file /well/nichols/users/bas627/BIDS_Data/RESULTS/SC2/license.txt \
    --fs-no-reconall \
    -w /well/nichols/users/bas627/BIDS_Data/RESULTS/SC2/data/processed/ds001/ds001_sub-01_work \
    --mem-mb 13000 \
    --low-mem \
    --resource-monitor \
    --nthreads 4 \

Any help on this one would be much appreciated, thanks very much!


We generally advise against using the --fs-no-recon-all whenever possible because in our experience bbregister from FreeSurfer is very robust.

That said, if you can’t use FreeSurfer (for whatever reason), we might have introduced a problem on the handling of headers for the FSL workflow path. We are currently looking into this and will report back as soon as possible.

Okay, thanks Oscar. I’ve removed --fs-no-recon-all from my scripts and am trying again, will let you know how we get on!


@oesteban It seems like we are experiencing a very similar issue to what Alex describes here with the version 20.0.7. Did you end up finding a bug in the headers or do you think this is an FSL BBR related problem?

@AlexBowring, Did using bbregister with --fs-no-recon-all worked for your dataset?