Analysis of Corticomuscular Coherence

11
 Analysis of corticomu scular coherenc e tutorial, coherence, meg, emg , plot , source, connectivity  Analysis of corticomuscular coherence Introduction In this tutorial we will analyze cortico-muscular coherence, which reflects functional connectivity between primary motor cortex and a contralateral effector muscle during isometric contraction. The dataset used in this example has been recorded in an experiment in which the subject had to lift her hand and exert a constant force against a lever. The force was monitored by strain gauges on the lever. The subject performed two blocks of 20 trials in which either the left or the right wrist was extended for about 10 seconds. A trial started as soon as the subject managed to get his force output within a specified range from 1 to 2 N. If the force was not kept constant during the course of a trial, the trial was terminated prematurely. The bipolar EMG signal was recorded from the right extensor carpi radialis longus muscle in the lower arm. MEG signals were recorded with a 151 sensor CTF Omega System (Port Coquitlam, Canada). In addition, the EOG was recorded to later discard trials contaminated by eye movements and blinks. The ongoing MEG and EOG signals were lowpass filtered at 300 Hz, digitized at 1200 Hz and stored for off-line analysis. To measure the head position with respect to the sensors, three coils were placed at anatomical landmarks of the head (nasion, left and right ear canal). While the subjects were seated under the MEG helmet, the positions of the coils were determined before and after the experiment by measuring the magnetic signals produced by currents passed through the coils. Magnetic resonance images (MRIs) were obtained from a 1.5 T Siemens system. During the MRI scan, ear molds containing small containers filled with vitamin E marked the same landmarks. This allows us, together with the anatomical landmarks, to align source estimates of the MEG with the MRI. Background To study the oscillatory synchrony between two signals, one can compute the coherence. This is computed in the frequency domain by normalizing the magnitude of the summed cross-spectral density between two signals by their respective power. For each frequency bin the coherence value is a number between 0 and 1. The coherence values reflect the consistency of the phase difference between the two signals at a given frequency. In this session we will explore the concept of coherence by investigating a dataset from an experiment in which the subject was required to maintain an isometric contraction of a forearm muscle. The coherence between the MEG signals and the acquired EMG will be estimated. First we will explore the coherence between the EMG signal and all MEG channels. Secondly, we will investigate how the coherence estimate is influenced by the number of trials, and by the degree of spectral smoothing using multitaper spectral analysis. Even though the example in this session covers cortico-muscular coherence, coherence between sensors can be calculated in exactly the same way. http://fieldtrip.fcdonders.nl/ Printed on 2013/01/27 21:09

Transcript of Analysis of Corticomuscular Coherence

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 1/11

 Analysis of corticomuscular coherence

tutorial, coherence, meg, emg, plot, source, connectivity

 Analysis of corticomuscular coherence

Introduction

In this tutorial we will analyze cortico-muscular coherence, which reflects functional connectivity

between primary motor cortex and a contralateral effector muscle during isometric contraction.

The dataset used in this example has been recorded in an experiment in which the subject had to lift

her hand and exert a constant force against a lever. The force was monitored by strain gauges on

the lever. The subject performed two blocks of 20 trials in which either the left or the right wrist was

extended for about 10 seconds. A trial started as soon as the subject managed to get his force output

within a specified range from 1 to 2 N. If the force was not kept constant during the course of a trial,

the trial was terminated prematurely.

The bipolar EMG signal was recorded from the right extensor carpi radialis longus muscle in the

lower arm. MEG signals were recorded with a 151 sensor CTF Omega System (Port Coquitlam,

Canada). In addition, the EOG was recorded to later discard trials contaminated by eye movements

and blinks. The ongoing MEG and EOG signals were lowpass filtered at 300 Hz, digitized at 1200 Hz

and stored for off-line analysis. To measure the head position with respect to the sensors, three coils

were placed at anatomical landmarks of the head (nasion, left and right ear canal). While the

subjects were seated under the MEG helmet, the positions of the coils were determined before and

after the experiment by measuring the magnetic signals produced by currents passed through the

coils. Magnetic resonance images (MRIs) were obtained from a 1.5 T Siemens system. During theMRI scan, ear molds containing small containers filled with vitamin E marked the same landmarks.

This allows us, together with the anatomical landmarks, to align source estimates of the MEG with

the MRI.

Background

To study the oscillatory synchrony between two signals, one can compute the coherence. This is

computed in the frequency domain by normalizing the magnitude of the summed cross-spectraldensity between two signals by their respective power. For each frequency bin the coherence value

is a number between 0 and 1. The coherence values reflect the consistency of the phase difference

between the two signals at a given frequency. In this session we will explore the concept of 

coherence by investigating a dataset from an experiment in which the subject was required to

maintain an isometric contraction of a forearm muscle. The coherence between the MEG signals and

the acquired EMG will be estimated. First we will explore the coherence between the EMG signal

and all MEG channels. Secondly, we will investigate how the coherence estimate is influenced by the

number of trials, and by the degree of spectral smoothing using multitaper spectral analysis. Even

though the example in this session covers cortico-muscular coherence, coherence between sensors

can be calculated in exactly the same way.

http://fieldtrip.fcdonders.nl/ Printed on 2013/01/27 21:09

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 2/11

 Analysis of corticomuscular coherence

Procedure

To compute the coherence between the MEG and EMG signals for the example dataset we will

perform the following steps:

Read the data into Matlab using ft_preprocessingq

Compute the power spectra and cross-spectral densities using the function ft_freqanalysis andq

subsequently compute the coherence using ft_connectivityanalysis

 Visualize the results using ft_singleplotER , ft_multiplotER , and ft_topoplotER q

Subsequently it is possible to localise the neuronal sources coherent with the EMG, usingq

ft_sourceanalysis

Preprocessing

We will calculate the coherence between the MEG and the EMG when the subject extended herLEFT wrist, while keeping the right forearm muscle relaxed. The first step is to read the data. In this

section we will apply automatic artifact rejection. Preprocessing requires the original MEG dataset,

which is available from ftp://ftp.fcdonders.nl/pub/fieldtrip/tutorial/SubjectCMC.zip.

The epochs of interest have to be defined according to a custom-written function called

trialfun_left.m. Note that this function is not part of the FieldTrip toolbox: see appendix 2, or

download it from ftp://ftp.fcdonders.nl/pub/fieldtrip/tutorial/coherence/trialfun_left.m. This function

uses the information provided by the triggers which were recorded simultaneously with the data. In

this experiment each trigger corresponds with the start or the end of a contraction. The epochs

which correspond to a contraction of the left forearm muscle are selected. Subsequently these10-second pieces are cut into ten 1-second epochs.

% find the interesting epochs of data

cfg = [];

cfg.trialfun = 'trialfun_left';

cfg.dataset = 'SubjectCMC.ds';

cfg = ft_definetrial(cfg);

% detect EOG artifacts in the MEG data

cfg.continuous = 'yes';

cfg.artfctdef.eog.padding = 0;

cfg.artfctdef.eog.bpfilter = 'no';

cfg.artfctdef.eog.detrend = 'yes';

cfg.artfctdef.eog.hilbert = 'no';

cfg.artfctdef.eog.rectify = 'yes';

cfg.artfctdef.eog.cutoff = 2.5;

cfg.artfctdef.eog.interactive = 'no';

cfg = ft_artifact_eog(cfg);

% detect jump artifacts in the MEG data

cfg.artfctdef.jump.interactive = 'no';cfg.padding = 5;

cfg = ft_artifact_jump(cfg);

Printed on 2013/01/27 21:09 http://fieldtrip.fcdonders.nl/

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 3/11

 Analysis of corticomuscular coherence

% detect muscle artifacts in the MEG data

cfg.artfctdef.muscle.cutoff = 8;

cfg.artfctdef.muscle.interactive = 'no';

cfg = ft_artifact_muscle(cfg);

% reject the epochs that contain artifacts

cfg.artfctdef.reject = 'complete';

cfg = ft_rejectartifact(cfg);

% preprocess the MEG data

cfg.demean = 'yes';

cfg.dftfilter = 'yes';

cfg.channel = {'MEG'};

cfg.continuous = 'yes';

meg = ft_preprocessing(cfg);

Next, read the left and right EMG data. Note that the settings are different for the EMG and MEG

data. Most importantly, the EMG data are highpass filtered and rectified. This is a standardprocedure when calculating cortico-muscle coherence.

cfg = [];

cfg.dataset = meg.cfg.dataset;

cfg.trl = meg.cfg.trl;

cfg.continuous = 'yes';

cfg.demean = 'yes';

cfg.dftfilter = 'yes';

cfg.channel = {'EMGlft' 'EMGrgt'};

cfg.hpfilter = 'yes';cfg.hpfreq = 10;

cfg.rectify = 'yes';

emg = ft_preprocessing(cfg);

Finally, combine the EMG and MEG trials to a common data structure:

data = ft_appenddata([], meg, emg);

Note, that due to the artifact rejection, this procedure is very slow and we typically would want to

perform this step only once. Therefore you can save the preprocessed data:

save data data

The preprocessed data is available as a mat-file from the FieldTrip ftp server (data.mat) and you can

skip the preprocessing above by loading the data like this

load data

To get a feel for the data, plot a trial from a sensor overlying the left motor-cortex (MRC21) and the

left and right EMG-signals, by selecting the first trial from the data:

figuresubplot(2,1,1);

plot(data.time{1},data.trial{1}(77,:));

http://fieldtrip.fcdonders.nl/ Printed on 2013/01/27 21:09

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 4/11

 Analysis of corticomuscular coherence

axis tight;

legend(data.label(77));

subplot(2,1,2);

plot(data.time{1},data.trial{1}(152:153,:));

axis tight;

legend(data.label(152:153));

 Figure 1; An example of the raw MEG data from sensor MLC21 (upper frame) and the EMG data

(lower frame). The signals are from the output of  ft_preprocessing and plotted using the matlab

plot function. Note that the signal strength of the left EMG is bigger than that of the right EMG.

Exercise 1

Explore the MEG and EMG in figure 1, e.g. by zooming in. How are the signals different from one

another?

Computing the coherence

Using ft_freqanalysis, the characteristics in the frequency domain will be computed. This step

requires the preprocessed MEG and EMG data (see above or download from

ftp://ftp.fcdonders.nl/pub/fieldtrip/tutorial/coherence/data.mat). Load the data with:

load data

 After the computation of the frequency domain representation ft_connectivityanalysis will be used

to compute the coherence. There are essentially two ways of achieving the same coherence, and

these will be explained below. The main difference is the way in which the frequency domain

representation is computed. More information about the different options can be found here

Method 1

In this 'method' we will use ft_freqanalysis for the computation of the fourier spectra, which is the

'bare' frequency domain representation of the signal, where both amplitude and phase information

of the oscillations are represented in a complex number for each frequency.

First, a configuration structure (cfg) must be defined. The FFT-algorithm will be used to compute the

fourier representation of each signal. To optimize the estimation, spectral smoothing using

‘multitapers’ will be applied. In this context, the degree of ‘smoothing’ (as defined in the parameter

cfg.tapsmofrq) is critical. We will return to this parameter later.

cfg = [];

cfg.output = 'fourier';

cfg.method = 'mtmfft';

cfg.foilim = [5 100];

Printed on 2013/01/27 21:09 http://fieldtrip.fcdonders.nl/

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 5/11

 Analysis of corticomuscular coherence

cfg.tapsmofrq = 5;

cfg.keeptrials = 'yes';

cfg.channel = {'MEG' 'EMGlft' 'EMGrgt'};

freqfourier = ft_freqanalysis(cfg, data);

Method 2

In this 'method' we will use ft_freqanalysis for the computation of the cross- and power spectra,

which are mathematically constructed from the multiplication of a complex-valued fourier spectrum

with the complex conjugate of another fourier spectrum. If the two fourier spectra are derived from

the same channel, the cross spectrum is called the auto spectrum, and this is exactly the same as the

power spectrum. Rather than in method 1 (see above), where the phase in the fourier spectra

represented the phase of the oscillation, the phase in the cross spectra represent the phase

difference between the oscillations of a specific channel pair. For this reason, we need to specify in

the cfg between which pairs we want to compute the cross spectra.

cfg = [];

cfg.output = 'powandcsd';

cfg.method = 'mtmfft';

cfg.foilim = [5 100];

cfg.tapsmofrq = 5;

cfg.keeptrials = 'yes';

cfg.channel = {'MEG' 'EMGlft' 'EMGrgt'};

cfg.channelcmb = {'MEG' 'EMGlft'; 'MEG' 'EMGrgt'};

freq = ft_freqanalysis(cfg, data);

To calculate the coherence between the EMG and the MEG signals from the fourier spectra, or fromthe power- and cross spectra use the following function. This function does not care whether the

input data contains fourier spectra, or power/cross spectra.

cfg = [];

cfg.method = 'coh';

cfg.channelcmb = {'MEG' 'EMG'};

fd = ft_connectivityanalysis(cfg, freq);

fdfourier = ft_connectivityanalysis(cfg, freqfourier);

The field fd.cohspctrm/fdfourier.cohspctrm now contains the coherence for all MEG sensors with

respect to the EMG signals.

Displaying the coherence

 Visualize the coherence between the EMG and all the MEG sensors:

cfg = [];

cfg.parameter = 'cohspctrm';

cfg.xlim = [5 80];cfg.refchannel = 'EMGlft';

cfg.layout = 'CTF151.lay';

cfg.showlabels = 'yes';

http://fieldtrip.fcdonders.nl/ Printed on 2013/01/27 21:09

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 6/11

 Analysis of corticomuscular coherence

figure; ft_multiplotER(cfg, fd)

 Figure 2; The coherence between the left EMG and all the MEG sensors calculated using

 ft_freqanalysis and  ft_connectivityanalysis. Plotting was done with  ft_multiplotER.

Plot the coherence for sensor MRC21 (using the same settings as in ft_multiplotER ):

cfg.channel = 'MRC21';

figure; ft_singleplotER(cfg, fd);

 Figure 3; The coherence spectrum between the EMG and sensor MRC21.

Exercise 2

a) What determines the frequency resolution of the spectrum, as displayed in figure 3? How can it be

increased or decreased? Answer the same question for smoothing.

b) Plot a topographical distribution of the coherence in the beta band. The variable cfg.xlim defines

the edges of the frequency band.

cfg = [];

cfg.parameter = 'cohspctrm';

cfg.xlim = [15 20];cfg.zlim = [0 0.1];

cfg.refchannel = 'EMGlft';

cfg.layout = 'CTF151.lay';

figure; ft_topoplotER(cfg, fd)

 Figure 4; A topographic representation of the coherence between the left EMG and the sensors. The

plot was created with  ft_topoplotER.

Exercise 3

a) Explain the pattern of activation in Figure 4.

b) Plot the topographic representation for other frequencies that might be of interest.

Exercise 4

Explore the consequence of changing the smoothing in the frequency domain. Do this by

recomputing the cortico-muscular coherence between the EMG signal and MEG sensor MRC21 for

Printed on 2013/01/27 21:09 http://fieldtrip.fcdonders.nl/

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 7/11

 Analysis of corticomuscular coherence

different degrees of smoothing. Compute the powerspectra and the cross-spectra, and the

corresponding coherence using different degrees of smoothing.

a) 2 Hz smoothing (cfg.tapsmofrq = 2 Hz)

cfg = [];

cfg.output = 'powandcsd';

cfg.method = 'mtmfft';cfg.foilim = [5 100];

cfg.tapsmofrq = 2;

cfg.keeptrials = 'yes';

cfg.channel = {'MEG' 'EMGlft'};

cfg.channelcmb = {'MEG' 'EMGlft'};

freq2 = ft_freqanalysis(cfg,data);

cfg = [];

cfg.method = 'coh';

cfg.channelcmb = {'MEG' 'EMG'};fd2 = ft_connectivityanalysis(cfg,freq2);

Plot the results of the 5 and 2Hz smoothing:

cfg = [];

cfg.parameter = 'cohspctrm';

cfg.refchannel = 'EMGlft';

cfg.xlim = [5 80];

cfg.channel = 'MRC21';

figure; ft_singleplotER(cfg, fd, fd2);

b) 10 Hz smoothing (e.g. cfg.tapsmofrq = 10 Hz)

cfg = [];

cfg.output = 'powandcsd';

cfg.method = 'mtmfft';

cfg.foilim = [5 100];

cfg.keeptrials = 'yes';

cfg.channel = {'MEG' 'EMGlft'};

cfg.channelcmb = {'MEG' 'EMGlft'};

cfg.tapsmofrq = 10;freq10 = ft_freqanalysis(cfg,data);

cfg = [];

cfg.method = 'coh';

cfg.channelcmb = {'MEG' 'EMG'};

fd10 = ft_connectivityanalysis(cfg,freq10);

Plot the results of the 5, 2, and 10 Hz smoothing:

cfg = [];

cfg.parameter = 'cohspctrm';

cfg.xlim = [5 80];

cfg.ylim = [0 0.2];

http://fieldtrip.fcdonders.nl/ Printed on 2013/01/27 21:09

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 8/11

 Analysis of corticomuscular coherence

cfg.refchannel = 'EMGlft';

cfg.channel = 'MRC21';

figure;ft_singleplotER(cfg, fd, fd2, fd10);

Which degree of smoothing do you consider optimal in the calculations above?

Exercise 5

 Another question pertains to how the estimate of coherence is affected by the number of trials. We

will compare the cortico-muscular coherence at two MEG sensors for different amount of data.

Create the following configuration, and compute the coherence.

cfg = [];

cfg.output = 'powandcsd';

cfg.method = 'mtmfft';cfg.foilim = [5 100];

cfg.tapsmofrq = 5;

cfg.keeptrials = 'yes';

cfg.channel = {'MEG' 'EMGlft'};

cfg.channelcmb = {'MEG' 'EMGlft'};

cfg.trials = 1:50;

freq50 = ft_freqanalysis(cfg,data);

cfg = [];

cfg.method = 'coh';cfg.channelcmb = {'MEG' 'EMG'};

fd50 = ft_connectivityanalysis(cfg,freq50);

Plot the results:

cfg = [];

cfg.parameter = 'cohspctrm';

cfg.xlim = [5 100];

cfg.ylim = [0 0.2];

cfg.refchannel = 'EMGlft';

cfg.channel = 'MRC21';

figure; ft_singleplotER(cfg, fd, fd50);

Compare the results with figure 3. Pay special attention to the noise bias.

 Appendix 1: Localisation of neuronal sources coherent with

the EMG using beamformers

In order to localise the neuronal sources which are coherent with the EMG, we can apply

beamformers to the data. For a more extensive background in beamforming, in particular

beamforming with frequency-domain data, please consult the beamformer tutorial. In this example,

Printed on 2013/01/27 21:09 http://fieldtrip.fcdonders.nl/

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 9/11

 Analysis of corticomuscular coherence

we are going to use an algorithm, known as DICS, to estimate the activity of the neuronal sources

and to subsequently estimate the coherence with the EMG. In order to achieve this, we first need an

estimate of the cross-spectral density between all MEG-channel combinations, and between the

MEG-channels and the EMG, at a frequency of interest. This requires the preprocessed data, see

above, or download from ftp://ftp.fcdonders.nl/pub/fieldtrip/tutorial/coherence/data.mat. Load with:

load data

Compute the cross-spectral density matrix for 18 Hz:

cfg = [];

cfg.method = 'mtmfft';

cfg.output = 'powandcsd';

cfg.foilim = [18 18];

cfg.tapsmofrq = 5;

cfg.keeptrials = 'yes';

cfg.channelcmb = {'MEG' 'MEG';'MEG' 'EMGlft'};

freq = ft_freqanalysis(cfg, data);

Once we computed this, we can use ft_sourceanalysis using the following configuration.

This step requires the subject's headmodel, which is available from

ftp://ftp.fcdonders.nl/pub/fieldtrip/tutorial/SubjectCMC.zip.

cfg = [];

cfg.method = 'dics';

cfg.refchan = 'EMGlft';

cfg.frequency = 18;

cfg.hdmfile = 'SubjectCMC.hdm';

cfg.inwardshift = 1;

cfg.grid.resolution = 1;

source = ft_sourceanalysis(cfg, freq);

The resulting source-structure is a volumetric reconstruction which is specified in head-coordinates.

In order to be able to visualise the result with respect to the subject's MRI, we have to interpolate

the functional data to the anatomical MRI.

For this, we need the subject's MRI, which is available from

ftp://ftp.fcdonders.nl/pub/fieldtrip/tutorial/SubjectCMC.zip. After reading the anatomical MRI, we

reslice it along the axes of the head coordinate system for improved visualization.

mri = ft_read_mri('SubjectCMC.mri');

cfg = [];

mri = ft_volumereslice(cfg, mri);

Next, we can proceed with the interpolation.

cfg = [];

cfg.parameter = 'coh';

cfg.downsample = 2;

interp = ft_sourceinterpolate(cfg, source, mri);

There are various ways to visualise the volumetric interpolated data. The most straightforward way

http://fieldtrip.fcdonders.nl/ Printed on 2013/01/27 21:09

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 10/11

7/18/2019 Analysis of Corticomuscular Coherence

http://slidepdf.com/reader/full/analysis-of-corticomuscular-coherence 11/11

 Analysis of corticomuscular coherence

indx = indx(sel);

 

trl = [];

for j = 1:length(trig)-1

trg1 = trig(j);

trg2 = trig(j+1);

if trg1<=100 & trg2==2080,

trlok = [[indx(j)+1:1200:indx(j+1)-1200]'

[indx(j)+1200:1200:indx(j+1)]'];

trlok(:,3) = [0:-1200:-1200*(size(trlok,1)-1)]';

trl = [trl; trlok];

end

end

This tutorial was last tested by Jan-Mathijs with revision 4363 of FieldTrip (~20111006) on a 64-bit

linux machine using Matlab 2009b.

From:

http://fieldtrip.fcdonders.nl/ - FieldTrip

Permanent link:

http://fieldtrip.fcdonders.nl/tutorial/coherence

Last update: 2012/07/25 10:19

http://fieldtrip.fcdonders.nl/ Printed on 2013/01/27 21:09