Tutorial 25: Difference

Authors: Francois Tadel, Elizabeth Bock, Dimitrios Pantazis, Richard Leahy, Sylvain Baillet

In this auditory oddball experiment, we would like to explore what are the significant differences between the brain response to the deviant or standard beeps, time sample by time sample. To do this we will be essentially contrasting the values we obtained for both conditions, and testing if the results are significantly different from zero.

This tutorial focuses only on the first part of this problem: the contrast. Computing a difference between two condition A and B sounds trivial, but it requires some reflection when it comes to interpreting the sign of the subtraction of two signals oscillating around zero. Several options are available, we will try to explain to which application cases they correspond. The statistical significance will be discussed in the next tutorial.

Sign of the signals

First we need to define on which signals we want to compute the difference: sensor recordings, constrained sources (one signal per grid point) or unconstrained sources (three signals per grid point). For the first two we can compare the signals oscillating around zero or their absolute value, for unconstrained sources we have the additional option to use the norm of the three orientations.

Using the rectified signals (absolute value) gives us an idea of the amount of activity in one particular brain region, but alters the frequency information and therefore cannot be used for time-frequency or connectivity analysis. Additionally, the rectified signals are not always appropriate to detect effects between different experimental conditions, as illustrated in the next section.

In general, you should not apply an absolute value (or a norm) explicitly to your data. The only application cases for rectified signals are the display of the cortical maps, the comparison of magnitudes between conditions and the group analysis, and in all three cases the absolute value can be applied on the fly.


Now let's consider the two conditions for each available option. The examples below show the difference (deviant-standard) for one signal only, corresponding to the auditory cortex. The operator |x| represents the absolute value of x (i.e. the magnitude of x).

MEG/EEG sensor

We always observe important differences between (A-B) and (|A|-|B|). In the absolute case the amplitude of the difference is not representative of the distance between the green curve (deviant) and the red curve (standard). In general, the sign of the signal recorded by any MEG or EEG sensor is meaningful and we need to keep it in the analysis to account for the differences between conditions.
Never use an absolute value on sensor data.


Constrained sources

We also observe important differences between (A-B) and (|A|-|B|). At 175ms, we reach the highest distance between the red and green curves, but it corresponds to a zero in the rectified difference.


(A-B): Correct amplitude, ambiguous sign.

|A|-|B|: Ambiguous amplitude, meaningful sign.

Conclusion: Which one should you use?

Unconstrained sources

The exact same observations apply to the unconstrained sources, using the norm of the three orientations instead of the absolute values. X and Y represent the source vectors with three components each (x,y,z) for conditions A and B.

Norm(X-Y): This measure will detect vector differences between the two signals which can occur if the magnitude and/or orientation changes. It differs from (Norm(X)-Norm(Y)) in being sensitive to changes in apparent source orientation, but cannot differentiate increases from decreases in amplitude.

Norm(X)-Norm(Y): This is the unconstrained equivalent to |A|-|B|, i.e. it will produce a signed value that reflects increases or decreases in magnitude from A to B and should be interpreted similarly. Unlike Norm(X-Y) it is not sensitive to rotation of the source from A to B unless there is an accompanying amplitude change. But on the other hand, because the value is signed, we can differentiate between increases and decreases in amplitude.


Source normalization

The examples above only show minimum norm current density maps that haven't been normalized. The same logic applies to normalized source values, as long as you do not rectify the signals during the computation of the normalization.

As a reminder, you should normalize the source maps if you are intending to compare different subjects, it will help bringing them to the same range of values. The list below shows the valid operations for the Z-score normalization, but the same is applicable for dSPM, sLORETA and MNp.

Constrained sources:

Unconstrained sources:

Always avoid using the following measures:

Difference deviant-standard

Before running complicated statistical tests that will take hours of computation, you can start by checking what the difference of the average responses looks like. If in this difference you cannot observe the effects you are expecting, it's not worth moving forward with finer analysis: the recordings are not clean enough, you don't have enough data or your initial hypothesis is wrong.

Absolute difference: |A|-|B|

We are going to use the Process2 tab, at the bottom of the Brainstorm figure. It works exactly like the Process1 tab but with two lists of input files, referred to as FilesA (left) and FilesB (right).


Relative difference: (A-B)

Difference of means

Another process can compute the average and the difference at the same time. We are going to compute the difference of all the trials from both runs at the sensor level. This is usually not recommended because the subject might have moved between the runs. Averaging the recordings across runs is not accurate but can give a good first approximation, in order to make sure we are on the right tracks.


In the case of time-frequency maps there is no sign ambiguity of the values, so computing a difference is slightly simpler. There are two possible cases: difference between power maps or between normalized maps (eg. ERS/ERD).

Original time-frequency maps

Normalized time-frequency maps

Feedback: Comments, bug reports, suggestions, questions
Email address (if you expect an answer):

Tutorials/Difference (last edited 2016-05-05 21:01:59 by FrancoisTadel)