-
Notifications
You must be signed in to change notification settings - Fork 299
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Failed registrations between BOLD and T1w #2591
Comments
But, you should be able to share the visual report, right? :D If not, the first thing I'm going to try to look up is whether FSL FLIRT+BBR was used or there's a reason the BBR registration was rejected. That should be stated on the caption above the reportlet showing T1w-BOLD registration. |
Thank you for walking me through this!
|
I investigated the issue some more, and it appears to be specific to datasets where the T1w image has a very high resolution (at least one voxel dimension smaller than 0.75 mm). In this case, FLIRT will scale all input images by one over the minimum voxel dimension via the I think there may be some issue with how this scaling is applied when calculating the starting value for registration. I have sent my report to the FSL developers here https://www.jiscmail.ac.uk/cgi-bin/wa-jisc.exe?A2=FSL;78d20013.2110. It will be interesting to get their expert opinion on this issue. In general, I think this scaling may be important for animal/rodent data, but should be safe to disable for human images. This can be easily accomplished with the command line argument |
- Users are experiencing a significant number of failed registrations between BOLD and T1w for multiple datasets. - The issue appears to be specific to datasets where the T1w image has a very high resolution (at least one voxel dimension smaller than 0.75 mm). - In this case, `flirt` will scale all input images by one over the minimum voxel dimension via the basescale parameter. - Inspecting the `flirt` source code and careful debugging suggest that there may be some issue with how this scaling is applied when calculating the starting value for registration when the option `-usesqform` is also specified. - This problem was originally thought to be specific to fMRIPrep, so it was reported at nipreps/fmriprep#2591 - Also resolves #232
@HippocampusGirl Thanks for digging into this. I agree that it doesn't make sense to adjust the affine matrix with an automatic scaling factor. Weird that this is completely undocumented AFAICT. I wonder if the better option is to drop FLIRT and switch to |
IMHO this would be not just an easy workaround the problem, it's actually going to make both pathways (w/wo surfaces) more similar to one another. The wonderful investigation of @HippocampusGirl is very much appreciated (pinging @eilidhmacnicol - more ammo for her arguments), and has made me think of two derived lines of this:
Thanks Lea, this issue is a large contribution in itself an in so many ways :) |
Thanks for the ping @oesteban and thanks @HippocampusGirl for digging into the code on this! This is really interesting; I imagine it's the underlying reason why |
Using a different tool like Would such a change be made only in 21.x and later, or would you also consider incorporating it into the LTS? |
As this doesn't change the I/O interface of fMRIPrep, and honestly, the number of users that are setting the If you want to start taking a stab at it, I'd say you should branch out of BTW, I don't think this would require any new code, just rewiring the registration workflow, so that the |
If we're going to modify in 20.2.x, I would say just directly swapping FLIRT for mri_coreg with no graph restructuring at all is the safest way forward. We'll also need to make sure we update the reporting. I would suggest that we do this limited fix in 20.2.x and 21.0. Future versions can do some cleaning up where we can restructure the graph to share an initial registration step. |
- Avoid the issues with high-resolution anatomical data explained in nipreps#2591 - Improve consistency between running with `--fs-no-reconall` and without
- Disables `flirt` scaling of input transformation matrices, which may lead to issues with high-resolution T1w data (see nipreps#2591)
- Avoid the issues with high-resolution anatomical data explained in nipreps#2591 - Improve consistency between running with `--fs-no-reconall` and without
- Disables `flirt` scaling of input transformation matrices, which may lead to issues with high-resolution T1w data (see nipreps#2591)
- Disables `flirt` scaling of input transformation matrices, which may lead to issues with high-resolution T1w data (see nipreps#2591)
Will be fixed in 20.2.7. Is fixed in 21.0.0. |
I am experiencing a significant number of failed registrations between BOLD and T1w for multiple datasets. We noticed that the images appear to be rotated basically in the wrong direction after registration.
We also re-ran some of the registrations with FSL BBR and ANTs, which worked without any problem.
Sadly we are not able to share any of the underlying data, but I am happy to help diagnose the issue.
What version of fMRIPrep are you using?
20.2.3
What kind of installation are you using? Containers (Singularity, Docker), or "bare-metal"?
Singularity, via HALFpipe
What is the exact command-line you used?
singularity run --containall --bind /:/ext halfpipe-halfpipe-1.2.0.sif
Are you reusing previously computed results (e.g., FreeSurfer, Anatomical derivatives, work directory of previous run)?
No, we were running from scratch
Have you checked that your inputs are BIDS valid?
They seem to be missing some metadata, but are valid.
Do you know if this used to work in the past?
We were also having these issues with version 20.2.1, but were hoping that #2307 would fix it.
Are you running it with the --fs-no-reconall flag?
Yes
And are you running with susceptibility distortion correction?
No
Did fMRIPrep generate the visual report for this particular subject? If yes, could you share it?
See screenshot above. I was asked not to share the full image, please let me know if the provided information is sufficient for diagnosing the issue.
Can you find some traces of the error reported in the visual report (at the bottom) or in crashfiles?
There are no crashfiles.
fMRIPrep log
If you have access to the output logged by fMRIPrep, please make sure to attach it as a text file to this issue.
The log file is quite large for the entire dataset. I will re-run a single subject to generate a smaller one and post that.
The text was updated successfully, but these errors were encountered: