3dWarp changes my fMRI data dimensions

Hello AFNI experts

I am doing a bit of pre-processing on functional fMRI images using Nipype-AFNI and I always get a warning saying " oblique dataset is … degrees away from the plumb, consider using 3DWarp", but when I do use the 3dWarp command on my functional scans, the dimensions of the resulting fMRI image is different from the original. For instance my original data has the dimensions - 646433150 but after 3dWarp I get 647356150. Is this normal? ( I am relatively new to the world of fMRI, please do feel free to correct me, if my basic concepts are wrong.)

Thank You.

That is expected and probably what you want, but you can override that behavior with the -gridset option.

I’ll add that obliqueness will probably be solved with an alignment to an anatomical dataset. So I’d say that before you 3dWarp all of your data, perhaps look at the rest of your pipeline and decide if something down the road is going to handle it.

Ah yes, that works. Thank you. But using gridset presents its own set of problems such as clipping off the posterior part of the brain (at least that’s the case for my dataset). Deoblique without gridset presents no “clipping” problems whatsoever but each subject has different dimensions after 3DWarp and for the task of prediction, the changing of dimensions wouldn’t bode well for me. So in the soup that I am in at the moment, I am better off co-registering my images like Peter suggested, right?

Unfortunately no other pre-processing step in my pipeline takes care of the error. I shall try out your suggestion of co-registering and aligning. Thank you for the suggestion.

It would be helpful if you told us how you are processing
the data. Is it with afni_proc.py, using the ‘align’ block
to align the EPI and anat? How about to standard space?

As both Daniel and Peter alluded to, this is probably not
something you need to fix (it is a warning, not an error).
But no one can say for sure without knowing what else is
being done.

What processing will be done with this data?

  • rick

I am actually using python’s Nipype which includes both FSL and AFNI functions, the pre-processing pipeline is:
motion correction using MCFLT-> Despiking → high-pass filtering → smoothing. And after the pre-processing I am generating the activation maps.

Aligning and co-registering of my functional images were not something that I intended to do, but if it’s a solution to the obliquity issue, then it’s something that i would incorporate in my processing pipeline.

While we’re on the subject of obliquity, is it absolutely necessary to deoblique my images? Would I be compromising my dataset by not deobliquing them? (I am working on building a classifier to differentiate between 2 classes of patients (resting-state) by using their activation maps)

(I apologise if my queries sound too trivial and thanks for your prompt reply)

For the given processing stream, there is no need to
de-oblique the data. You could just leave it as acquired.
To make those warnings go away, edit your .afnirc file
and set AFNI_NO_OBLIQUE_WARNING to YES.

However, you mention comparing groups of subjects.
How can that be done without aligning the data to a
template? And to get good alignment for each subject,
it would then also be important for their EPI data to be
well aligned with their anatomical.

It sounds like you want well registered data, not per
subject results in orig space.

  • rick

Ah yes, sorry I forgot to mention this, but I’ve been using FSL’s MELODIC ICA toolbox for pre-processing. So after despiking my images the toolbox does the following pre-processing steps for me:

brain extraction->spatial smoothing->high-pass filtering-> registration to the standard MNI 152 template

I am hoping that the registration step would be good enough for aligning my images with the standard template.

That suggests that FSL is leaving the tranformation
in the dataset header, rather than applying it to the
data. But AFNI will not apply those internally when
performing some group comparison, so maybe you will
indeed need to run 3dWarp -gridset.

When applying such a transformation, there is no need
to keep the original grid. afni_proc.py would use
isotropic voxels that are basically the minimum edge
size.

  • rick

Oh I see. But it so happens that when I do the deobliquing with the gridset option included, the posterior part of the brain gets clipped off in most of the patients (can’t figure out why though) and that’s something I can’t afford to have, when I am doing my group comparison.