3dDeconvolve/3dREMLfit - censoring options & Zscoring the GLM matrix

Hello everyone:

I’m looking for help/input for ways to handle GLM design matrix regarding zscore and censor operations.
In the way our team understands, we see in it that AFNI applies the censoring to the fMRI data after subtracting the mean from baseline columns which are our 6 motion parameters. In this case, we don’t have our columns centered around zero. We compared with data from computing zscore on our baseline parameters beforehand and it seems 3Ddeconvolve handles the matrix differently giving a non-zero centered matrix.

Any insight on how AFNI orders these operations using 3dREMLfit /3dDeconvolve would be appreciated.
Also, is this something where we can use any existing option to apply censor operation before/after the matrix adjustment?


I tend to think there is no perfect solution that meets all criteria. For example, censoring may cause trouble for trial-level modeling. I suspect that different orders would have little impact most of the time. You may try various orders and see if they make big differences in the end at the population level.

Thank you for your reply. We agree that the order of operation between censoring and de-meaning of the baseline columns of the design matrix may have little impact on the population data.

For us to properly evaluate this order of operations, we have a few remaining questions:

  1. Is there a built in option in 3Ddeconvolve or another suggested operation to perform the censoring before de-meaning of the baseline columns?
    What’s your advice on using 1dtool.py to apply the censoring before creating the design matrix xmat file using 3Ddeconvolve?
  2. Is there a reason that 3Ddeconvolvelocks in the order of operation to de-mean then censor that we should consider before switching the order?

Thanks again.


Removal on the mean of the motion parameters will have no effect on any beta of interest, as it will only affect the polort 0 betas (and stats), which almost no one ever looks at. Is that what you are concerned about?

Adding a constant term to any regressor, even per run, will have no effect any beta but the polort 0 ones. Well, more accurately, it would have no theoretical effect, though one might see tiny computational truncation differences.

  • rick