The results I am getting seem to be far better than what I had using 20.2.6, so I’d like to start updating my fmriprep + tedana pipeline.
Now my questions:
Regarding the new distortion correction; I was not able to understand what exactly is happening from the methods boilerplate in the html output.
Is there a reason why fmriprep is processing sub-p2452_dir-PA_run-2_epi.nii.gz? (because it does). Is the -t parameter being ignored? Or is it trying to get a better B0 distortion estimation by combining info from multiple scans? And if the latter, how?
In addition, how exactly is distortion correction applied to the echo’s? In the resulting output files and html, I see that fieldmaps are separately generated per echo. Does that mean that different corrections are applied to different echo’s? iirc, @handwerkerd recommended to me to not do that.
Before I start updating my implementation of collect_fmriprep.py,
a) which partly preprocessed files are best to start off with?
b) should I apply SDC from echo 1 manually to 2 and 3, before running the files through tedana? (related to question 2). Or would it be better to apply echo 1 SDC on the result from tedana?
I’m not sure why that would happen. I assume that there are preprocessed distortion maps in the output directory? Are the task-rest2 fMRI files also outputted? If not, then I’m guessing that -t is not being ignored, but perhaps all field maps are preprocessed automatically, regardless of which fMRI runs they’re intended for.
One distortion correction (and STC/motion correction) should be applied to all echoes equally. Could you share a tree of the output directory like you did for your BIDS dataset?
I would recommend using the --me-output-echos parameter, which will output the partially preprocessed echoes for you to use with tedana (or whatever tool you prefer). You won’t need to use a collection script anymore.
The partially preprocessed echoes will be distortion-corrected, using the same distortion correction for all echoes. In the tedana docs, we recommend doing distortion correction after denoising, but in practice we found it simpler to just bundle STC, motion correction, and distortion correction together in the “partial preprocessing”, and we don’t expect the distortion correction (especially when applied equally across echoes) to have a major impact on the denoising results.
That’s odd… It seems like there should only be one, but I could be wrong. @effigies do you know why each of the echoes would have a different preprocessed field map file?
I’m sorry, I haven’t ever compared the output layouts. It should default to the new, more BIDS-compliant output layout, which should mean new files in {fmriprep_folder}, unless fMRIPrep crashed.
The log and scratch folder seem to indicate that the whole analysis finished correctly. There’s just no files in the linked output folder. I’ll try to find some time next week to dig into it a little more to figure out what’s happening there.
Very likely a bug. The many variations of PEpolar fieldmaps are a logistical pain, and I’m not sure if we tested on a multiecho reverse-PE EPI dataset. The bug will be here:
I suspect that if you just drop the echo-2 and echo-3 from your IntendedFor, you’ll get the right result, but I would check…
If you want your outputs in {fmriprep_folder}, you need to do the following:
When removing echo-2 and echo-3 from IntendedFor, two fieldmaps are now generated. One for task-hands2_echo-1, and one for task-rest2. So the -t hands2 parameter is still being ignored for fieldmaps.
Hi @jrdalenberg - I’m having the same issue.
I have four functional scans and corresponding dir-PA files. The fmaps are separately generating per echo. Did you manage to address this issue?