Including motion covariates in individual subject GLM analysis

 

  1. Overview of the problem

  2. Using motion covariates in AFNI

1. Overview of the problem

 

[for a thorough discussion of this technique, see [Johnstone et al., [2000]].

 

Because current approaches to motion correction are imperfect, it cannot be assumed that all motion has been removed by application of current motion-correction algorithms. Uncorrected motion will tend to cause signal changes in the time series of particular voxels (most commonly those close to tissue boundaries) that depending on the relative timing of motion and the experimental paradigm might lead to artifactual activations. Residual image motion will also have an impact on the sensitivity of analysis to detect true activations by adding to the unmodeled error variance.

 

The extent to which motion produces artifactual activations and decreases statistical sensitivity in regions of true activation depends on the experimental design and the nature of the experimental task. For interactive tasks (e.g., those requiring a button press response), it is common that some head motion will correlate with the presentation of task stimuli. Even in passive tasks, subjects have a greater tendency to move their head when viewing stimuli, as opposed to rest or intertrial periods. For block designs, sustained periods of head displacement may correspond highly with expected sustained hemodynamic responses during stimulus blocks. It is this correlation between head displacement and the experimental task that can lead to artifactual activations, particularly in areas of the brain with spatially heterogeneous signal intensity (e.g., tissue boundaries). In this case, it may be difficult to detect if activations are true or artifactual [Field et al.,[2000]].

 

Event-related experimental designs can aid in reducing the problem of motion artifacts [Birn et al.,[1999]; Josephs et al.,[1997]; Zarahn et al.,[1997]]. If the task is a brief response to a randomly spaced stimulus as opposed to a prolonged block of stimuli, motion induced by responding to the task will have a different temporal shape than the lagged, smooth hemodynamic response of the blood oxygenation level-dependent (BOLD) signal. Signal change due to motion therefore will not be as highly correlated with the general linear model (GLM) regressors used to model task-related signal changes, reducing the risk of false activations due to motion. Even when motion is uncorrelated with the predicted hemodynamic response, however, the problem remains that residual motion-induced fluctuations in the magnetic resonance (MR) signal will decrease the reliability of the GLM parameter estimates and therefore decrease statistical sensitivity.

 

One solution to this is to include vectors of motion estimates as nuisance variables (covariates of no interest) in the single-subject single-run GLM to account for the variance due to motion. In simple terms, the GLM for analysis of a single subject's data can be specified for each voxel as:

 

y = X + M +

 

where y is the vector of measured signal samples, X is the design matrix, which incorporates the time series representing each modeled experimental effect, M is a matrix incorporating one or more time series of estimated motions,  is a residual, or unexplained signal vector, and  and are the parameter vectors to be estimated. The matrix M could either incorporate multiple estimates of motion (e.g., three translations and/or three rotations), or might more simply consist of a single global estimate of absolute estimated motion (e.g., the root mean square value of separate motion estimates).

 

Using this general technique, Friston et al. [[1996]] found that if activations are detected before correcting for movement then they are likely to be real (assuming that they are orthogonal to movement effects). For these types of activations, including motion parameters as covariates of no interest should increase the statistical sensitivity; however, the assumption that motion is orthogonal to a task does not always hold.

 

When estimated motion is correlated with the task design, inclusion of motion estimates as covariates of no interest can reduce the significance of real clusters of activation, because the motion estimator can steal variance from the regressor(s) modeling the real hemodynamic response. It is unclear what the magnitude of correlation between motion and task design must be for this to have a noticeable impact on statistical significance, but for a discussion of this question, see [Johnstone et al., [2006]]

 

<back to menu>

 

2. Using motion covariates in AFNI

 

Before you read this section, you should be familiar with setting up an individual subject GLM as described here.

 

Let’s take the example we previously used, in which we are modeling responses to positive and negative images in two scan runs. The 3dDeconvolve command is as follows:

 

3dDeconvolve –input run_1_mc+orig run_2_mc+orig -nfirst 0 –polort 2 \

-num_stimts 2 –basis_normall 1 \

-stim_times 1 pos_onsets ‘GAM’ \

-stim_label 1 positive \

-stim_times 2 neg_onsets ‘GAM’ \

-stim_label 2 negative \

-num_glt 2 \
-glt_label 1 neg_pos_diff \
-gltsym 'SYM: +negative -positive'
-glt_label 2 neg_pos_ave \
-gltsym 'SYM: +0.5*negative +0.5*positive' \

-fitts fit_ts –errts error_ts \

-xjpeg glm_matrix.jpg –tout –fout -bucket glm_out

 

In order to add motion covariates we first need to get the motion estimates into the correct format. If you performed motion correction as described here, you should have a text file for each subject and each run, which we will assume are named run_1_motion.txt and run_2_motion.txt respectively. What we need to do first is concatenate the two motion estimate files, which we can easily do in Linux:

 

cat run_1_motion.txt run_2_motion.txt > run_all_motion.txt

 

We now simply add the following lines to the 3dDeconvolve command fr each motion parameter we want to include:

 

-stim_file 3 run_all_motion.txt[1] \

-stim_label 3 roll \

-stim_base 3 \

-stim_maxlag 3 1 \

 

The first line specifies that the first motion estimate is found in column # 1 (the second column) of file run_all_motion.txt. The second line gives this motion estimate a label, the third line specifies that this estimate should be included as part of the baseline specification (i.e. not be taken as an effect of interest). The last line specifies that we want to model not only the instantaneous effects of motion, but also their effects delayed by 1 TR (often the effects of motion on the fMRI signal will lag the actual motion).

 

We now do the same for the other motion estimates:

 

-stim_file 4 run_all_motion.txt[2] \

-stim_label 4 pitch \

-stim_base 4 \

-stim_maxlag 4 1 \

-stim_file 5 run_all_motion.txt[3] \

-stim_label 5 yaw \

-stim_base 5 \

-stim_maxlag 5 1 \

-stim_file 6 run_all_motion.txt[4] \

-stim_label 6 I_S \

-stim_base 6 \

-stim_maxlag 6 1 \

-stim_file 7 run_all_motion.txt[5] \

-stim_label 7 R_L \

-stim_base 7 \

-stim_maxlag 7 1 \

-stim_file 8 run_all_motion.txt[6] \

-stim_label 8 A_P \

-stim_base 8 \

-stim_maxlag 8 1 \

 

And that’s pretty much it, except that we need to adjust the –numts option to reflect the extra number of regressors (i.e. 8). So we now have the finished command:

 

3dDeconvolve –input run_1_mc+orig run_2_mc+orig -nfirst 0 –polort 2 \

-num_stimts 8 –basis_normall 1 \

-stim_times 1 pos_onsets ‘GAM’ \

-stim_label 1 positive \

-stim_times 2 neg_onsets ‘GAM’ \

-stim_label 2 negative \

-stim_file 3 run_all_motion.txt[1] \

-stim_label 3 roll \

-stim_base 3 \

-stim_maxlag 3 1 \

-stim_file 4 run_all_motion.txt[2] \

-stim_label 4 pitch \

-stim_base 4 \

-stim_maxlag 4 1 \

-stim_file 5 run_all_motion.txt[3] \

-stim_label 5 yaw \

-stim_base 5 \

-stim_maxlag 5 1 \

-stim_file 6 run_all_motion.txt[4] \

-stim_label 6 I_S \

-stim_base 6 \

-stim_maxlag 6 1 \

-stim_file 7 run_all_motion.txt[5] \

-stim_label 7 R_L \

-stim_base 7 \

-stim_maxlag 7 1 \

-stim_file 8 run_all_motion.txt[6] \

-stim_label 8 A_P \

-stim_base 8 \

-stim_maxlag 8 1 \

-num_glt 2 \
-glt_label 1 neg_pos_diff \
-gltsym 'SYM: +negative -positive'
-glt_label 2 neg_pos_ave \
-gltsym 'SYM: +0.5*negative +0.5*positive' \

-fitts fit_ts –errts error_ts \

-xjpeg glm_matrix.jpg –tout –fout -bucket glm_out

 

And that’s it.

 

<back to menu>