Using fieldmaps for unwarping


I’m writing to ask if there is a way beyond “–prefer-dedicated-fmaps” and “–prefer_dedicated_fmaps” to require QSIprep’s topup to use the fieldmap files instead of the first DWI scan volumes? I have tried implementing these flags, but the output report for unwarping still says that one of the distortion groups is represented by a volume from the DTI scan instead of the relevant fieldmap. Thanks so much for any insight!

Here is the command I am currently running:
singularity run --nv -B ${subjdir},${outdir} qsiprep-0.14.3.sif ${subjdir} ${outdir} participant --prefer-dedicated-fmaps --output_resolution=1 --fs-license-file='license.txt' --work-dir=${workdir} --unringing-method='mrdegibbs' --eddy-config=${scripts}/eddy_params_lms.json --impute-slice-threshold=3 --write-graph --b0-to-t1w-transform='Affine' --nthreads 8

This is a bug :(. Could you please open an issue on the repository?

Although, why specifically do you want to exclude b=0 images from the dwi files? QSIPrep uses the “best b=0” strategy from the developmental HCP pipeline where it looks at all the b=0 images from each distortion group and chooses those that correlate the highest with all the rest of the images in that same group. It could be that your participant moved during their dedicated fmap scan and the image was noisier than a b=0 in your dwi series. Is there something special about your dedicated fieldmaps that you’d prefer to use them even if they’re noisier than b=0 images from the dwi series?

Yes, absolutely!

I initially wanted to try this option as after visually inspecting subjects it seemed that TOPUP wasn’t working as expected. However, after doing more review, I realized that TOPUP was run for some subjects and not other (the subject-level QA reports show susceptibility correction as TOPUP for some subj and not others). However, no errors/crashes were reported in the file. Would you have any insight as to why this might have occurred? I’m rerunning now in case it was a fluke. Thank you so much again!

Hi, I just wanted to follow up on this as some subjects still seem to be getting processed without TOPUP, although the program recognizes the presence of the fieldmaps during BIDS validation. Do you have any suggestions on how to amend this? The alternate workflow these subjects seem to be getting processed with is as follows:

"Any images with a b-value less than 100 s/mm^2 were treated as a b=0 image. MP-PCA denoising as implemented in MRtrix3’s dwidenoise[@dwidenoise1] was applied with a 5-voxel window. After MP-PCA, Gibbs unringing was performed using MRtrix3’s mrdegibbs [@mrdegibbs]. Following unringing, B1 field inhomogeneity was corrected using dwibiascorrect from MRtrix3 with the N4 algorithm [@n4]. After B1 bias correction, the mean intensity of the DWI series was adjusted so all the mean intensity of the b=0 images matched across eachseparate DWI scanning sequence.

FSL (version 6.0.3:b862cdd5)'s eddy was used for head motion correction and Eddy current correction [@anderssoneddy]. Eddy was configured with a q-space smoothing factor of 10, a total of 5 iterations, and 1000 voxels used to estimate hyperparameters. A linear first level model and a linear second level model were used to characterize Eddy current-related spatial distortion. q-space coordinates were forcefully assigned to shells. Field offset was attempted to be separated from subject movement. Shells were aligned post-eddy. Eddy’s outlier replacement was run [@eddyrepol]. Data were grouped by slice, only including values from slices determined to contain at least 250 intracerebral voxels. Groups deviating by more than 4 standard deviations from the prediction had their data replaced with imputed values. Final interpolation was performed using the jac method.

Several confounding time-series were calculated based on the
preprocessed DWI: framewise displacement (FD) using the
implementation in Nipype [following the definitions by @power_fd_dvars].
The head-motion estimates calculated in the correction step were also
placed within the corresponding confounds file. Slicewise cross correlation
was also calculated.
The DWI time-series were resampled to ACPC,
generating a preprocessed DWI run in ACPC space with 1mm isotropic voxels."

Thank you so much for your help!

Circling back to note that this issue (TOPUP not being performed for certain subjects) was caused by .json files for the fieldmaps missing the ‘IntendedFor’ field. Adding this field in (linking the fieldmap to the subject) fixed the issue and TOPUP was performed as expected. Hope this helps anyone encountering a similar problem!

1 Like