3dQwarp -plusminus to correct EPI with inverted PE images

Dear experts,

I would like to correct susceptibility artifacts of the EPI sequence with an inverted phace enconding (PE) EPI sequence that was acquired using the same parameters than the EPI but with inverse phase-encoding directions (P-A and A-P respectively). In order to perform this correction, I want to use 3dQwarp with –plusminus flag and 3dNwarpApply but I have some doubts that I hope you can solve.

What inputs should I give to the 3dQwarp function and what flags should I specify? The EPIs must be aligned and registered to T1 in a previous step, right?
To apply the correction to the sequence with 3dNwarpApply and get the EPI images with corrected distortion, what flags should I use with this function to use the PLUS image/warp and the MINUS image/warp?

Thank you very much in advance!
Best wishes,

The EPI datasets are not required to be aligned to an anatomical dataset although alignment is usually carried out too in a typical processing pipeline. afni_proc…py has options for handling blip-up/down dataset by using -blip_forward_dset and -blip_reverse_dset. The -blip_forward_dset is optional. The initial part of the EPI time series will be used instead if the forward dataset is not supplied. Besides afni_proc.py, you can use just the unWarpEPI.py program for unwarping outside of our standard pipelines. It calls 3dQwarp and 3dNwarpApply appropriately.

Hi Daniel,

Thank you very much for you reply.
I tried to run the unWarpEPI.py function, but I saw that internally it uses 3dUnifize and I wanted to avoid using it. On the other hand, we do our preprocessing with AFNI in steps but without using the afni_proc.py function, so this would make it difficult to use the flags that this function has to make the correction with an inverted PE-EPI (-blip_forward_dset and -blip_reverse_dset).

Given this situation, do you think we could do the stepwise correction using 3dQwarp and 3dNwarpApply. If so, specifically how should we use these functions?

Thank you in advance.

The unifized version of the EPI is only used in the alignment not in the final result. You can repeat the similar steps yourself, but you have to be careful about the order of the matrices and the warps. With afni_proc.py, you get a script that you can use as an example with all the transformations in the necessary order. That includes not only the blip-up/down warps, but also an obliquity transformation, motion correction, alignment to an anatomical dataset and affine and nonlinear alignment to a template. The unWarpEPI.py script includes motion correction and the nonlinear warp to the mid-point between blip-up and down.

For the record, you could run the blip/volreg combined registration steps via afni_proc.py, if that is your preference. Consider:

afni_proc.py -blocks volreg               \
        -copy_anat anat+orig                \
        -dsets epi_r1+orig                    \
        -blip_reverse_dset epi_rev_enc+orig

It would also be okay to add other processing blocks, like tshift, align and/or tlrc.

  • rick