-
Notifications
You must be signed in to change notification settings - Fork 299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Automatically use available fieldmaps if IntendedFor is missing #2312
Comments
The spec is not clear how fieldmaps should exactly be used for processing since there are many opinions what is the best way to do this. It's up to the software to decide what to do when IntendedFor field is missing. Having said that I agree with you that FMRIPREP should consider different default than skipping fieldmaps if IntendedFor is missing. The situation is tricky when the field is missing for some maps, but not others (or only some BOLD files are covered), but those cases are more likely issues with incomplete metadata. The scheme I described here: #774 (comment) might be best for FMRIPREP. |
Hi Craig, that would be the other facet of the discussion in #747. As Chis mentioned, we will soon rethink the treatment of fieldmaps in FMRIPREP. |
This could be done within this function: |
Maybe it would make sense to only automatically assign fieldmaps to images if the shim settings match? |
That's a good idea, but how would you check that from the BIDS input? |
Heudiconv/PyDicom both will write out a
In my experience, this gets configured at the scanner console. The shim settings used when acquiring the fieldmap are copied for the scans the fieldmap is intended to correct. I'm not sure if this is siemens specific, but it's been useful for sanity-checking the quality of distortion correction. Often the person scanning will forget to copy the shim settings from the fieldmap into their dwi or bold and the distortion correction is a bit off. The other problem is that |
Quick question about this thread, has there been any updates on this feature? I saw that it got moved to pipelines, but wanted to make sure there was something I wasn't missing since this thread was initiated 2 years ago I'm currently trying to apply gradient echo field maps (I have 1 phasediff image and 2 magnitude images) that I'm trying to apply fieldmap correction to several functional runs, without the "IntendedFor" argument in the .json files for the fieldmaps. I've been trying to follow along with the documentation in sdcflows (https://fmriprep.readthedocs.io/en/stable/sdc.html), and tried using the Below is a snippet of code I used to call fmriprep. Please let me know if I'm posting this in the wrong thread -- since it seems that SDC seemed to have migrated to a different workflow.
|
No, fMRIPrep does not use fieldmaps that don't use |
Yep, the problem is that the heuristics to assign fieldmaps and target data without the This will take a while to implement if ever done. I only can see a push in the context of diffusion MRI, where the BIDS specs fall short in some cases. And even there, the most straightforward path would be to extend the possible uses of |
After thinking this through, and having bids-standard/bids-specification#622 in the works, I think this issue can be moved back to fMRIPrep. |
my 1c: I would just say "explicit better than implicit" and thus do not bother about some automagic pickup of fieldmaps and just close this issue as |
Would something like
For completeness, here's heudiconv's intended-for docs |
At this point, I have no intention of implementing this kind of logic in fMRIPrep. If we want to add something along these lines, it should:
The approach that has felt cleanest to me is: But if someone puts together a spec document for Heudiconv's approach and implements it in PyBIDS, I'd be willing to add those calls to fMRIPrep. Apologies if the above comes off as grouchy. fMRIPrep development has slowed, and I think realistically this needs to live somewhere else in order to be maintainable. |
The BIDS spec lists that the IntendedFor field is optional:
"The IntendedFor field is optional and in case the fieldmaps do not correspond to any particular scans it does not have to be filled."
Whenever I don't include it in the fmap's .json files, I get "No fieldmaps found or they were ignored". It would seem as if any found fmap's should, by default, be applied to anything in the func folder. Or, am I misreading that in the spec?
Craig
The text was updated successfully, but these errors were encountered: