Psychophysiological Interactions (PPI)¶
Theoretical background¶
Psychophysiological interactions (PPI) and the related technique of physiophysiological interactions \((\Phi\)PI) are based on extensions to statistical models of factorial designs. Table 1 illustrates a classic \(2 \times 2\) factorial design.
& & |
2 x 2 factorial design in Table format
The equation for factorial design is given by [eq:ppi1].
Notice that this equation includes both of the main effects terms \((A_{2}-A_{1})\beta_{1}\) for factor A, and \((B_{2}-B_{1})\beta_{2}\) for factor B, as well as the interaction term \((A_{2}-A_{1})(B_{2}-B_{1})\beta_{3}\). It also contains a term for the confounds \(G\beta_{4}\) such as movement parameters, session effects, etc. The inclusion of main effects when estimating interactions is very important, and their inclusion in the design cannot be stressed enough. If the main effects are not included, then we cannot be sure that estimates of the interaction term are not confounded by main effects.
To extend the concept of factorial designs to PPI’s the basic idea is to substitute (neural) activity from one cerebral region for one of the factors. Equation [eq:ppi2] illustrates this concept after substituting activity in area V1 for factor A.
Similarly, for psychophysiological interactions activity from 2 cerebral regions (V1 and posterior parietal (PP)) are used as the main effects, as shown in equation [eq:ppi3]
Again, notice that all 3 equations [eq:ppi1], [eq:ppi2] and [eq:ppi3] have 3 terms (aside from confounds and error) – the two main effects and the interaction. Therefore, the design matrix must include at least 3 columns, one for each main effect and one for the interaction. A basic design matrix for PPI’s is shown in Figure 1.1.

Both PPIs and \(\Phi\)PIs can be conceived of as models of “contribution”. PPIs occupy middle-ground between between models of functional vs. effective connectivity (Friston et al. 1997). Functional connectivity (FC) is defined as the temporal correlation between spatially separated neurophysiological events (Friston et al. 1997). FC analyses are typically model-free and do not specify a direction of influence, i.e., the influence of A on B is indistinguishable from the influence of B on A. In contrast, PPI’s are based on regression models, and therefore a direction of influence is chosen based on the model. Effective connectivity (EC) is defined as the influence one neural system has on another (Friston 1995). PPIs are closely related to EC models, but because PPIs are generally very simple (i.e., 1 source region and 1 experimental factor, or 2 source regions in the case of \(\Phi\)PIs) they are very limited models of EC.
The interaction between the source region and experimental context (or two source regions) can be interpreted in 2 different ways: 1) as demonstrating how the contribution of one region to another is altered by the experimental context or task, or 2) as an example of how an area’s response to an experimental context is modulated by input from another region, Figure 1.2.

Psycho-Physiologic Interaction Analysis: Summary of Steps¶
Mechanistically, a PPI analysis involves the following steps.
-
Performing a standard GLM analysis.
-
Extracting BOLD signal from a source region identified in the GLM analysis.
-
Forming the interaction term (source signal x experimental treatment)
-
Performing a second GLM analysis that includes the interaction term, the source region’s extracted signal and the experimental vector in the design. The inclusion of the source region’s signal and the experimental vector is analogous to including the main effects in an ANOVA in order to make an inference on the interaction.
Forming the proper interaction term turns out to be a challenge because
of the unique characteristics of fMRI (BOLD) data in which the
underlying neural signal is convolved with a hemodynamic response
function. However, interactions in the brain take place at the neural
and not the hemodynamic level. Therefore, appropriate models of the
interactions require the neural signal, which is not measured directly,
but instead must be derived by deconvolving the HRF. The PPI software
(spm_peb_ppi.m
) was developed in order to provide robust deconvolution
of the HRF and the proper derivation of the interaction term (Gitelman
et al. 2003).
Practical example¶
The dataset in this exercise is from one subject who was studied in the (Buchel et al. 1998) report and refers to the “attention to motion” dataset available from the SPM website1. It has already been described in the previous chapter for DCM.
The goal is to use PPI to examine the change in effective connectivity between V2 and V5 while the subject observes visual motion (radially moving dots) under the experimental treatments of attending vs. not attending to the speed of the dots. The psychophysiologic interaction can be conceived of as looking for a significant difference in the regression slopes of V1 vs. V5 activity under the influence of the different attentional states (Friston et al. 1997).
GLM analysis - Design setup and estimation¶
This dataset has already been preprocessed (coregistered, normalised and smoothed) using an earlier version of SPM.
-
The analysis directory should include
-
A directory named
functional
, which includes the preprocessed fMRI volumes. -
A directory named
structural
, which includes a T1 structural volume -
Files:
factors.mat
,block_regressors.mat
,multi_condition.mat
andmulti_block_regressors.mat
. -
You will also need to make 2 empty directories called
GLM
andPPI
for performing the analyses.
-
-
In MATLAB type
>> cd GLM >> spm fmri
-
Start the Batch system by clicking the Batch button.
-
From the SPM menu in the Batch window, click Stats and then select the modules fMRI Model Specification, Model Estimation and Contrast Manager, Figure 1.3.
Batch Editor showing the fMRI Model Specification, Model Estimation and Contrast Manager modules. Fill in the fMRI Model Specification
-
Click Directory and choose the
GLM
directory that you made above. -
Units for design [scans]
-
Interscan interval [3.22]
-
Click Data & Design. Then in the Current Item box click New: Subject/Session, Figure 1.4.
Fill in the Data & Design -
Click Scans and choose all the functional scans
snffM00587_00xx.img
. There should be 360*.img
files. -
The experimental conditions can be defined either individually or using a multiple condition
mat
-file. This exercise shows both methods for educational purposes. When doing an actual analysis you can just follow one of the two approaches below.Define conditions individually
-
Load the mat file containing the individual conditions:
>> load factors.mat
You can look at the loaded variables by typing the variable names. (
stat
= stationary,natt
= no attention,att
= attention)>> stat >> natt >> att
-
Click Conditions then in the Current Item box click New: Condition 3 times, Figure 1.5.
Current Module section of the Batch Editor showing 3 Conditions to be filled in. -
Condition 1: Name =
Stationary
, Onsets =stat
, Durations = 10. -
Condition 2: Name =
No-attention
, Onsets =natt
, Durations = 10. -
Condition 3: Name =
Attention
, Onsets =att
, Durations = 10. -
Next you will enter 3 regressors to model block effects. This will account for the fact that the experiment took place over 4 runs that have been concatenated into a single session to make the PPI analysis easier. Note: Only 3 of the 4 sessions need to be modeled by block regressors because the fourth one is modeled by the mean column of the design matrix.
First load the regressors:
>> load block_regressor.mat
-
Click Regressors then click New: Regressor 3 times in the Current Item box, Figure 1.6.
Current Module section of the Batch Editor showing 3 Regressors to be filled in. -
Regressor 1: Name =
Block 1
, Value =block1
-
Regressor 2: Name =
Block 2
, Value =block2
-
Regressor 3: Name =
Block 3
, Value =block3
Define conditions using multiple condition and multiple regressor files
-
If you would like to look at the organization of the variables in the multiple condition file, first load it.
>> load multi_condition.mat >> names >> onsets >> durations
The variables in a multiple condition file must always be named: ‘names’, ‘onsets’, and ‘durations’. Notice that these three variables are cell arrays. (Note: You only need to do this step if you want to look at the organization of the variables. In contrast to defining conditions individually, as shown above, when using a multiple condition file you do not have to load the file in order to enter it into the design.)
-
To use the multiple conditions file in the design, click Multiple Conditions, then Specify Files in the Options box and choose the
multi_condition.mat
file. -
Next you will enter the 3 regressors to model block effects by using a multiple regressor file. To look at the organization of the multiple regressor variable, first load it. (Again you do not have to load the multiple regressor file in order to use it. This step is just to allow you to examine the file and the variables it contains.)
>> load multi_block_regressor.mat >> R
Notice that this file contains a single variable,
R
, which is a 360 x 3 matrix. The number of rows is equal to the number of scans, and each regressor is in a separate column. -
To use the multiple regressor file, click Multiple Regressors then select the
multi_block_regressor.mat
file.Complete the design setup
-
High-pass filter [192] (Note: most designs will use a high-pass filter value of 128. However, this dataset requires a longer high-pass filter in order not to lose the low frequency components of the design.)
-
Factorial design is not used
-
The Basis function is the canonical HRF as shown and Model derivatives [No derivatives]
-
Model Interactions (Volterra): [Do not model interactions]
-
Global normalisation [None]
-
Explicit mask [None]
-
Serial correlations [AR(1)]
Model Estimation
-
Under Model estimation click Select
SPM.mat
then click the Dependency button and choose fMRI model specification: SPM.mat File. The Method should be left as Classical.Contrast Manager
-
Under Contrast Manager click Select
SPM.mat
then click the Dependency button and choose Model estimation: SPM.mat File -
Click Contrast Sessions then click New: F-contrast once, and New: T-contrast twice from the Current Item box.
-
Select Weights matrix underneath F-contrast.
-
The F weights matrix (named “effects of interest”) can be entered as [eye(3), zeros(3,4)], which will produce:
1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0
-
For the first T-contrast, Name is
Attention
, and the T weights vector is0 -1 1 0 0 0 0
(Note the order of the conditions in the design matrix is: Stationary, NoAttMot and AttMot). -
For the second T-contrast Name is
Motion
, and the T weights vector is:-2 1 1 0 0 0 0
. -
Click the Save icon on the toolbar and save the batch file.
Design estimation -
If everything has been entered correctly the Run button should now be green. Click Run to estimate the design.
-
The design matrix should look as shown in Figure 1.7, below.
Design matrix
GLM analysis - Results¶
-
Click Results and select the
SPM.mat
file. -
Choose the
Attention
contrast -
Apply masking [None]
-
p value adjustment to control [None]
-
threshold T or p value [0.0001]
-
& extent threshold voxels [10]
-
You should see an SPM that looks like the one shown below, Figure 1.8. Note the Superior Parietal and Dorso-Lateral Prefrontal activations, among others. By selecting overlays \(\rightarrow\) sections, and selecting the normalised structural image, you should be able to identify the anatomy more accurately.
Statistical parametric map for the Attention
contrast -
To look at the
Motion
contrast whereAttention
is greater thanNo Attention
, click Results, choose theSPM.mat
file and choose theMotion
contrast. -
apply masking [Contrast]
-
Select contrast for masking: Choose the
Attention
contrast -
Uncorrected mask p-value [0.01]
-
Nature of Mask: [inclusive]
-
p value adjustment to control [FWE]
-
threshold T or p value [0.05]
-
& extent threshold voxels [3]
-
The masked
motion
contrast on the glass brain is shown below in Figure 1.9.Statistical parametric map for the Motion
contrast inclusively masked by the Attention contrast
GLM analysis - Extracting VOIs¶
-
First select the
Motion
contrast, but do not include masking. Use a p-value adjustment of FWE with height threshold of 0.05 and a cluster threshold of 3. -
Go to point [15 -78 -9]
-
Press
eigenvariate
-
Name of region [V2]
-
Adjust data for [effects of interest]
-
VOI definition [sphere]
-
VOI radius(mm) [6]
This saves the extracted VOI data in the file VOI_V2_1.mat
in the
working directory, and displays
Figure 1.10, below. The left side shows the
location on a standard brain. The right side shows the first
eigenvariate of the extracted BOLD signal.

PPI analysis - Create PPI variable¶
-
PPIs can be calculated either by pressing the PPIs button in the SPM Menu window, or by selecting the Physio/Psycho-Physiologic menu item from the SPM \(\rightarrow\) Stats menu of the Batch Editor. This example uses the Batch Editor, Figure 1.11.
Physio/Psycho-Physiologic module in the Batch Editor -
Choose the SPM.mat file in the
GLM
directory. -
Type of analysis: Choose Psycho-Physiologic interaction, Figure 1.12.
Specifying a Psycho-Physiologic interaction. -
Select VOI: Choose
VOI_V2_1.mat
-
Input variables and contrast weights: Must be specified as an n x 3 matrix, where n is the number of conditions included in the PPI. The first column of the matrix indexes
SPM.Sess.U(i)
. The second column indexesSPM.Sess.U(i).name{ii}
. It will generally be a 1 unless there are parametric effects. The third column is the contrast weight. In order to include Attention - No-attention in the PPI, recall that the conditions were entered as: Stationary, No-attention, Attention, therefore the matrix should be.[2 1 -1; 3 1 1]
-
Name of PPI [ V2x(Att-NoAtt) ]
-
Display results: Yes
After a few seconds the PPI will be calculated and a graphical window will appear, Figure 1.13. In the upper left, the details of the PPI setup calculation are given including the name of the PPI, the chosen VOI file, and the included conditions and their contrast weights. The main central graph shows the original BOLD signal (actually the eigenvariate) in blue and the neuronal or deconvolved signal in green. These will look quite similar for block design data. The graph in the lower left shows the task condition plot, dotted green line, and the convolved task conditions (psych variable). In the lower right the PPI interaction term is plotted.

The PPI calculation will create a file PPI_V2x(Att-NoAtt).mat
in the
current working directory. It contains the variable PPI.ppi
(the
interaction term), PPI.Y
(the original VOI eigenvariate) and PPI.P
(the Attention - No Attention
task vector). You will use these vectors
in setting up your psychophysiologic interaction GLM analysis. See
spm_peb_ppi
for a full description of the PPI
data structure.
PPI GLM analysis - Design setup and estimation¶
-
Copy the file
PPI_V2x(Att-NoAtt)
Mat-file to thePPI
directory that you created at the start of this exercise. -
Change directory to the new one, i.e.
cd PPI
-
At the MATLAB prompt type
>> load PPI_V2x(Att-NoAtt)
-
In the Batch Editor setup another GLM analysis by choosing the modules fMRI Model Specification, Model Estimation and Contrast Manager as you did above, and fill it in as follows.
-
Directory: Choose the
PPI
directory -
Units for design [scans]
-
Interscan interval [3.22]
-
Add a New: Subject/Session under Data & Design
-
Click Scans and choose all the functional scans
snffM00587_00xx.img
. There should be 360*.img
files. -
Click New: Regressor and add 6 regressors.
-
Regressor 1: Name =
PPI-interaction
, Value =PPI.ppi
-
Regressor 2: Name =
V2-BOLD
, Value =PPI.Y
-
Regressor 3: Name =
Psych_Att-NoAtt
, Value =PPI.P
-
Regressor 4: Name =
Block 1
, Value =block1
-
Regressor 5: Name =
Block 2
, Value =block2
-
Regressor 6: Name =
Block 3
, Value =block3
-
High Pass Filter [192]
Model Estimation
-
Under Model estimation click Select
SPM.mat
then click the Dependency button and choose fMRI model specification: SPM.mat File. The Method should be left as Classical.Contrast Manager
-
Under Contrast Manager click Select
SPM.mat
then click the Dependency button and choose Model estimation: SPM.mat File -
Click Contrast Sessions then click New: T-contrast
-
T-contrast, Name:
PPI-Interaction
, vector:1 0 0 0 0 0 0
-
Save the batch file.
-
Run
The design matrix is shown below, Figure 1.14.

PPI analysis - Results¶
-
Press the Results button and select the
SPM.mat
file in the PPI directory. -
Choose the
PPI-Interaction
contrast -
apply masking [No]
-
p value adjustment to control [None]
-
threshold T or p value [0.01]
-
& extent threshold voxels [10]
-
You should see an SPM that looks the same as the one shown below in the top part of Figure 1.15. The resulting SPM shows areas showing differential connectivity to V2 due to the effect of attention vs. no attention conditions. The effect in this subject is weak.

PPI analysis - Plotting¶
-
One region showing the psychophysiologic interaction is the V5region, which is located at [39 -72 0] in this subject. Move the cursor to this point to view the area of activation, as shown below, in the bottom half of Figure 1.15.
-
In order to plot the PPI graph showing the effect of attention, you need to extract a VOI from the V5 region. To do this, you will return to the original GLM analysis.
-
Click Results, then select the GLM analysis
SPM.mat
file and theMotion
contrast. -
apply masking [No]
-
p value adjustment to control [None]
-
threshold T or p value [0.001]
-
& extent threshold voxels [3]
-
Go to point [39 -72 0]
-
Press eigenvariate
-
Name of region [V5]
-
Adjust data for [effects of interest]
-
VOI definition [sphere]
-
VOI radius(mm) [6]
-
Now you will create 4 PPIs (Follow the steps under section [create_ppi], Create PPI Variable, above). By using the PPI software machinery to create the interaction vectors, rather than just multiplying the extracted V2 and V5 eigenvariates by the behavioral vectors, the PPI vectors will be formed properly.
-
V2xNoAttention
(Use the V2 VOI and includeNo-Attention
with a contrast weight of 1, do not includeStationary
,Attention
) -
V2xAttention
(Use the V2 VOI and includeAttention
with a contrast weight of 1, do not includeStationary
,No-Attention
) -
V5xNoAttention
(Use the V5 VOI and includeNo-Attention
with a contrast weight of 1, do not includeStationary
,Attention
) -
V5xAttention
(Use the V5 VOI and includeAttention
with a contrast weight of 1, do not includeStationary
,No-Attention
) -
Load the PPIs you just created with the following commands at the MATLAB prompt:
>> v2noatt = load('PPI_V2xNoAttention'); >> v2att = load('PPI_V2xAttention.mat'); >> v5noatt = load('PPI_V5xNoAttention.mat'); >> v5att = load('PPI_V5xAttention.mat');
-
Plot the PPI datapoints with the following commands at the MATLAB prompt:
>> figure >> plot(v2noatt.PPI.ppi,v5noatt.PPI.ppi,'k.'); >> hold on >> plot(v2att.PPI.ppi,v5att.PPI.ppi,'r.');
-
To plot the best fit lines type the following first for
NoAttention
>> x = v2noatt.PPI.ppi(:); >> x = [x, ones(size(x))]; >> y = v5noatt.PPI.ppi(:); >> B = x\y; >> y1 = B(1)*x(:,1)+B(2); >> plot(x(:,1),y1,'k-');
-
Then for
Attention
>> x = v2att.PPI.ppi(:); >> x = [x, ones(size(x))]; >> y = v5att.PPI.ppi(:); >> B = x\y; >> y1 = B(1)*x(:,1)+B(2); >> plot(x(:,1),y1,'r-'); >> legend('No Attention','Attention') >> xlabel('V2 activity') >> ylabel('V5 response') >> title('Psychophysiologic Interaction')
