Scaling in AFNI proc for the .errts resting-state output


I have a question regarding scaling in the preprocessing using AFNI proc.
When preprocessing a run with a resting-state script using the following blocks

-blocks despike tshift blur mask scale regress \

the .errts output file does not have a mean of 100 and it lacks the range from 0 to 200 (as the “scale” preprocessing block).
It seems that the .errts mean is 0, but how is the range defined?

Is the .errts still compareable across subjects, or do I have to again scale the preprocessed .errts output via 3dTnorm? I assume that running 3dTnorm on the errts is not advised, but I wanted to be 100% certain about this.


Hi, Philipp-

The errts file is a residual from regression modeling. It should have mean zero. During regression, the baseline is modeled, and the baseline typically includes the mean value of the data.

When using the ‘scale’ block, the data prior to the regress block are scaled to have mean=100 and a (generously) capped range of [0,200]. This scaling is done on per voxel basis (as opposed to something like grand mean scaling, which is volume-wide), and so it creates a dataset that has the interpretation of “local BOLD % change” at each time series; the residuals have these units. This seems like a quantity with meaningful units that is as comparable as possible from resting state FMRI data.


Hi Paul,

to clarify

does this mean that a value of for example + 0.34 (in the preprocessed .errts file) is a 0.34 % increase in BOLD signal compared to the baseline of 0?

I wouldn’t use the term “baseline” when discussing the mean value of the errts time series.

The linear regression step of a time series basically asserts that a time series can be written as the sum of 1 or more provided components, each with a to-be-estimated coefficient (or beta weight); finding those coefficients is the point of the regression step. The sum of each component times its coefficient is the estimator for the original time series, and the difference between the original time series and its estimator is the residuals. Thus, the residuals are the leftover stuff when all the components have been fit for.

Among the common components explicitly included in a model is typically a constant time series, whose coefficient is the mean value of the time series. That (or that plus other low frequency/polynomial terms) is generally referred to as the baseline. Other components in FMRI often include motion regressors and perhaps censoring components. In resting state FMRI, you provide a list of regressors that are essentially all regressors of no interest—things that might be important to account for in the measured signal but which are not directly related to neuronal firing—and then one analyses what is left after those are regressed out as (hopefully) containing mostly neuronal signal of interest. Spoiler alert: there is surely more than just neuronal signal in the residuals; but that is the best estimate for it, so that gets analyzed.

The values in the errts do reflect BOLD % signal change. I might just state it as “BOLD % signal change.” I guess you could state it as “0.34% BOLD signal change from estimated baseline”, but I would not state “0.34% BOLD signal change from errts baseline of 0”. Maybe that is splitting hairs, but the latter seems different.


Hi Paul,

thanks for the elaborated explanation.

I totally get your point. It makes sense and I also agree with you. The “baseline” in the errts is an estimation and nothing ultra precise, so we have to formulate it more carefully so to speak.