Skip to content

Commit

Permalink
reorganized figures in subdirectories
Browse files Browse the repository at this point in the history
  • Loading branch information
robertoostenveld committed Dec 8, 2022
1 parent 211576d commit 71dea0d
Show file tree
Hide file tree
Showing 40 changed files with 43 additions and 44 deletions.
12 changes: 6 additions & 6 deletions workshop/practicalmeeg2022/handson_anatomy.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ tags: [practicalmeeg2022, meg, headmodel, sourcemodel, sourceanalysis, mmfaces]
# Creation of headmodels and sourcemodels for source reconstruction

{% include markup/info %}
This tutorial was written specifically for the [PracticalMEEG workshop in Aix-en-Provence](/workshop/practicalmeeg2022) in December 2022. It is an adjusted version of the [MEG headmodel tutorial](/tutorial/headmodel_meg) and an updated version of the corresponding tutorial for [Paris 2019](/workshop/paris2019).
This tutorial was written specifically for the [PracticalMEEG workshop in Aix-en-Provence](/workshop/practicalmeeg2022) in December 2022 and is part of a coherent sequence of tutorials. It is an adjusted version of the [MEG headmodel tutorial](/tutorial/headmodel_meg) and an updated version of the corresponding tutorial for [Paris 2019](/workshop/paris2019).
{% include markup/end %}

## Introduction
Expand Down Expand Up @@ -69,7 +69,7 @@ To align the coordinates of the MRI with the anatomical landmarks, we use the fo
cfg.coordsys = 'neuromag';
mri = ft_volumerealign(cfg, mri);

{% include image src="/assets/img/workshop/practicalmeeg2022/mri_origNAS.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_anatomy/figure1.png" width="400" %}

_Figure: The location of the NAS indicated by the crosshair in the anatomical MRI image_

Expand Down Expand Up @@ -126,7 +126,7 @@ You can now visualise the headmodel in combination with the anatomical image:
cfg.intersectmesh = headmodel.bnd;
ft_sourceplot(cfg, mri);

{% include image src="/assets/img/workshop/practicalmeeg2022/mri_headmodel.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_anatomy/figure2.png" width="400" %}

_Figure: The headmodel visualised on top of the volulmetric anatomical image_

Expand Down Expand Up @@ -193,7 +193,7 @@ That is, a bunch of files, which exist in an 'rh' and 'lh' version. Each of the
material dull
lighting gouraud; set(gcf,'color','w');

{% include image src="/assets/img/workshop/practicalmeeg2022/surf_native.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_anatomy/figure3.png" width="400" %}

_Figure: The pial surface extracted by freesurfer_

Expand Down Expand Up @@ -288,7 +288,7 @@ We can have a look at some files in a bit more detail:

The line with **[linkprop](https://nl.mathworks.com/help/matlab/ref/linkprop.html)** allows for simultaneous rotation of all objects, when switching on the rotate3d option in the figure. Click on the "rotate" symbol and use your mouse to look at the surfaces from all sides.

{% include image src="/assets/img/workshop/practicalmeeg2022/surf_wb.png" width="600" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_anatomy/figure4.png" width="600" %}

_Figure: The different surfaces generated by connectome workbench_

Expand Down Expand Up @@ -321,6 +321,6 @@ Importantly, before proceeding any further, we want to check whether the headmod
ft_plot_sens(grad);
h = light; lighting gouraud; material dull;

{% include image src="/assets/img/workshop/practicalmeeg2022/coregistration.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_anatomy/figure5.png" width="400" %}

_Figure: Coregistration between headmodel, sourcemodel and sensors_
2 changes: 1 addition & 1 deletion workshop/practicalmeeg2022/handson_artifacts.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ tags: [practicalmeeg2022, artifact, ica, preprocessing, mmfaces]
# From raw data to ERP

{% include markup/info %}
This tutorial was written specifically for the [PracticalMEEG workshop in Aix-en-Provence](/workshop/practicalmeeg2022) in December 2022.
This tutorial was written specifically for the [PracticalMEEG workshop in Aix-en-Provence](/workshop/practicalmeeg2022) in December 2022 and is part of a coherent sequence of tutorials.
{% include markup/end %}

## Introduction
Expand Down
20 changes: 10 additions & 10 deletions workshop/practicalmeeg2022/handson_groupanalysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ tags: [practicalmeeg2022, meg, timelock, statistics, plotting, mmfaces]
# Group-level statistics with parametric and non-parametric methods

{% include markup/info %}
This tutorial was written specifically for the [PracticalMEEG workshop in Aix-en-Provence](/workshop/practicalmeeg2022) in December 2022. It is an adjusted version of the [event-related statistics tutorial](/tutorial/eventrelatedstatistics) and an updated version of the corresponding tutorial for [Paris 2019](/workshop/paris2019).
This tutorial was written specifically for the [PracticalMEEG workshop in Aix-en-Provence](/workshop/practicalmeeg2022) in December 2022 and is part of a coherent sequence of tutorials. It is an adjusted version of the [event-related statistics tutorial](/tutorial/eventrelatedstatistics) and an updated version of the corresponding tutorial for [Paris 2019](/workshop/paris2019).
{% include markup/end %}

## Introduction
Expand Down Expand Up @@ -117,7 +117,7 @@ Using this layout, we can plot all channels:
cfg.layout = layout;
ft_multiplotER(cfg, grandavg_famous, grandavg_unfamiliar, grandavg_scrambled);

{% include image src="/assets/img/workshop/practicalmeeg2022/groupanalysis/figure1.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_groupanalysis/figure1.png" width="400" %}

_Figure; ERPs for each virtual channel (parcel)_

Expand All @@ -129,7 +129,7 @@ Channel/parcel number 291 has a clear ERP, which is different between the face c

Note that you can also very easily make this figure using the standard MATLAB [plot](https://nl.mathworks.com/help/matlab/ref/plot.html) function.

{% include image src="/assets/img/workshop/practicalmeeg2022/groupanalysis/figure2.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_groupanalysis/figure2.png" width="400" %}

_Figure; Comparing the ERPs on the virtual channel (parcel) of interest_

Expand All @@ -148,7 +148,7 @@ We can use the `brainordinate` field of one of the subjects to determine where t
view(0, -45)
camlight

{% include image src="/assets/img/workshop/practicalmeeg2022/groupanalysis/figure3.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_groupanalysis/figure3.png" width="400" %}

_Figure; Location of the parcel corresponding to the virtual channel of interest_

Expand Down Expand Up @@ -179,7 +179,7 @@ From the grand average plot we can zoom in on our comparison of interest and onl
end
legend({'famous', 'scrambled'})

{% include image src="/assets/img/workshop/practicalmeeg2022/groupanalysis/figure4.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_groupanalysis/figure4.png" width="400" %}

_Figure; Single subject results, the time window of interest is highlighted_

Expand All @@ -203,7 +203,7 @@ We can also plot the differences between conditions, for each subject, in a diff
figure; plot(M', 'o-'); xlim([0.5 2.5])
legend({subj.name}, 'location', 'EastOutside');

{% include image src="/assets/img/workshop/practicalmeeg2022/groupanalysis/figure5.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_groupanalysis/figure5.png" width="400" %}

_Figure; Single subject results, averaged for the channel of interest and the time window of interest_

Expand Down Expand Up @@ -292,7 +292,7 @@ In the previous paragraph we picked a channel/parcel and time window by hand aft
figure; ft_multiplotER(cfg, grandavg_effect)
title('Parametric: significant without multiple comparison correction')

{% include image src="/assets/img/workshop/practicalmeeg2022/groupanalysis/figure6.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_groupanalysis/figure6.png" width="400" %}

_Figure; Parametric test, plot of the effect size with significant channels in red_

Expand Down Expand Up @@ -380,7 +380,7 @@ This is implemented in FieldTrip in the function **[ft_statistics_montecarlo](/r
figure; ft_multiplotER(cfg, grandavg_effect)
title('Nonparametric: significant without multiple comparison correction')

{% include image src="/assets/img/workshop/practicalmeeg2022/groupanalysis/figure7.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_groupanalysis/figure7.png" width="400" %}

_Figure; Nonparametric test, plot of the effect size with significant channels in red_

Expand Down Expand Up @@ -442,7 +442,7 @@ If your channels in the data are close to each other, you can also use the featu
figure; ft_multiplotER(cfg, grandavg_effect)
title('Nonparametric: significant after cluster-based correction')

{% include image src="/assets/img/workshop/practicalmeeg2022/groupanalysis/figure8.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_groupanalysis/figure8.png" width="400" %}

_Figure; Nonparametric test, cluster-based correction for multiple comparisons_

Expand All @@ -465,7 +465,7 @@ Although a single test is performed to test exchangeability of the whole data ov
colorbar
camlight

{% include image src="/assets/img/workshop/practicalmeeg2022/groupanalysis/figure9.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_groupanalysis/figure9.png" width="400" %}

_Figure; Spatial distribution of p-values over the parcels_

Expand Down
14 changes: 7 additions & 7 deletions workshop/practicalmeeg2022/handson_raw2erp.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ tags: [practicalmeeg2022, meg, timelock, preprocessing, mmfaces]
# From raw data to ERP

{% include markup/info %}
This tutorial was written specifically for the [PracticalMEEG workshop in Aix-en-Provence](/workshop/practicalmeeg2022) in December 2022. It is an updated version of the corresponding tutorial for [Paris 2019](/workshop/paris2019).
This tutorial was written specifically for the [PracticalMEEG workshop in Aix-en-Provence](/workshop/practicalmeeg2022) in December 2022 and is part of a coherent sequence of tutorials. It is an updated version of the corresponding tutorial for [Paris 2019](/workshop/paris2019).
{% include markup/end %}

## Introduction
Expand Down Expand Up @@ -242,19 +242,19 @@ Each type of channel can be visualised with its corresponding layout. For the vi
cfg.layout = layout_eeg;
figure; ft_multiplotER(cfg, avg_famous, avg_unfamiliar, avg_scrambled);

{% include image src="/assets/img/workshop/practicalmeeg2022/raw2erp_multi_mags.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_raw2erp/figure1.png" width="400" %}

_Figure: Distribution of magnetometer ERFs on a 2D projected sensory layout._

The figure that is generated by **[ft_multiplotER](/reference/ft_multiplotER)** shows in a spatial distribution the ERFs on the different channels (in this case: magnetometers). The figure is interactive, and you can select subsets of channels by drawing a rectangle in the figure panel, followed by a left mouse click. This results in a figure that shows the condition specific ERFs as an average across the selected sensors. This representation is the same as when using **[ft_singleplotER](/reference/ft_singleplotER)**. Selecting a time range in this figure results in a set of condition specific figures that show the topographical distribution of the ERF amplitude, as an average across the selected latency window.

{% include image src="/assets/img/workshop/practicalmeeg2022/raw2erp_single_mags.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_raw2erp/figure2.png" width="400" %}

_Figure: Average across selected magnetometers for each of the conditions._

{% include image src="/assets/img/workshop/practicalmeeg2022/raw2erp_topo_famous.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/raw2erp_topo_unfamiliar.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/raw2erp_topo_scrambled.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_raw2erp/figure3.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_raw2erp/figure4.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_raw2erp/figure5.png" width="400" %}

_Figure: Topographies of average across selected latency window for each of the conditions._

Expand Down Expand Up @@ -310,6 +310,6 @@ Now that we have a combined layout, we can plot all three datatypes and all thre
Explore the data, using the interactive property of the figure. Visualize the topographies of the ERF/ERPs in the latency window between 175 and 250 ms. Also inspect the topographies in the latency window from 300-450 ms. Explain the differences in topography (between latencies and channel types) based on putative underlying neuronal generators.
{% include markup/end %}

{% include image src="/assets/img/workshop/practicalmeeg2022/raw2erp_topo_appended.png" width="600" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_raw2erp/figure6.png" width="600" %}

_Figure: Topographies of average across selected latency window for one of the conditions._
18 changes: 9 additions & 9 deletions workshop/practicalmeeg2022/handson_sensoranalysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ tags: [practicalmeeg2022, meg, freq, mmfaces]
# Time-frequency analysis using Hanning window, multitapers and wavelets

{% include markup/info %}
This tutorial was written specifically for the [PracticalMEEG workshop in Aix-en-Provence](/workshop/practicalmeeg2022) in December 2022. It is an adjusted version of the [time-frequency analysis tutorial](/tutorial/timefrequencyanalysis) and an updated version of the corresponding tutorial for [Paris 2019](/workshop/paris2019).
This tutorial was written specifically for the [PracticalMEEG workshop in Aix-en-Provence](/workshop/practicalmeeg2022) in December 2022 and is part of a coherent sequence of tutorials. It is an adjusted version of the [time-frequency analysis tutorial](/tutorial/timefrequencyanalysis) and an updated version of the corresponding tutorial for [Paris 2019](/workshop/paris2019).
{% include markup/end %}

## Introduction
Expand All @@ -21,7 +21,7 @@ Oscillatory components contained in the ongoing EEG or MEG signal often show pow

Calculating time-frequency representations of power is done using a sliding time window. This can be done according to two principles: either the time window has a fixed length independent of frequency, or the time window decreases in length with increased frequency. For each time window the power is calculated. Prior to calculating the power one or more tapers are multiplied with the data. The aim of the tapers is to reduce spectral leakage and control the frequency smoothing.

{% include image src="/assets/img/workshop/practicalmeeg2022/tfrtiles.png" width="600" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_sensoranalysis/figure1.png" width="600" %}

_Figure: Time and frequency smoothing. (a) For a fixed length time window the time and frequency smoothing remains fixed. (b) For time windows that decrease with frequency, the temporal smoothing decreases and the frequency smoothing increases._

Expand All @@ -36,7 +36,7 @@ To calculate the time-frequency analysis for the example dataset we will perform
- Compute the power values for each frequency bin and each time bin using the function **[ft_freqanalysis](/reference/ft_freqanalysis)**
- Visualize the results. This can be done by creating time-frequency plots for one with **[ft_singleplotTFR](/reference/ft_singleplotTFR)** or several channels with **[ft_multiplotTFR](/reference/ft_multiplotTFR)**, or by creating a topographic plot for a specified time- and frequency interval with **[ft_topoplotTFR](/reference/ft_topoplotTFR)**.

{% include image src="/assets/img/workshop/practicalmeeg2022/tfr_pipelinenew.png" width="200" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_sensoranalysis/figure2.png" width="200" %}

_Figure: Schematic overview of the steps in time-frequency analysis_

Expand Down Expand Up @@ -161,7 +161,7 @@ The function **[ft_multiplotTFR](/reference/ft_multiplotTFR)** plots the TFRs fr
cfg.layout = 'neuromag306mag_helmet.mat';
figure; ft_multiplotTFR(cfg, freqlow_famous);

{% include image src="/assets/img/workshop/practicalmeeg2022/freqlow_famous.png" width="650" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_sensoranalysis/figure3.png" width="650" %}

_Figure: Time-frequency representations calculated using ft_freqanalysis. Plotting was done with ft_multiplotTFR)_

Expand All @@ -177,7 +177,7 @@ An interesting effect seems to be present in the TFR of sensor MEG0731. To make
cfg.channel = 'MEG0731';
figure; ft_singleplotTFR(cfg, freqlow_famous);

{% include image src="/assets/img/workshop/practicalmeeg2022/freqlow_famous_singleplotTFR.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_sensoranalysis/figure4.png" width="400" %}

_Figure: The time-frequency representation of a single sensor obtained using ft_singleplotTFR_

Expand All @@ -195,7 +195,7 @@ From the previous figure you can see that there is an increase in power around 5
cfg.marker = 'on';
figure; ft_topoplotTFR(cfg, freqlow_famous);

{% include image src="/assets/img/workshop/practicalmeeg2022/freqlow_famous_topoplotTFR.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_sensoranalysis/figure5.png" width="400" %}

_Figure: A topographic representation of the time-frequency representations (15 - 20 Hz, 0.9 - 1.3 s post stimulus) obtained using ft_topoplotTFR_

Expand Down Expand Up @@ -251,7 +251,7 @@ To plot the result use **[ft_singleplotTFR](/reference/ft_singleplotTFR)**:
cfg.interactive = 'no';
figure; ft_singleplotTFR(cfg, TFRhann7);

{% include image src="/assets/img/workshop/practicalmeeg2022/tfrhann7.png" width="400" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_sensoranalysis/figure6.png" width="400" %}

_Figure: A time-frequency representation of channel MEG0741 obtained using ft_singleplotTFR_

Expand Down Expand Up @@ -335,7 +335,7 @@ Plot the result
cfg.marker = 'on';
figure; ft_multiplotTFR(cfg, freqhigh_famous);

{% include image src="/assets/img/workshop/practicalmeeg2022/freqhigh_famous.png" width="650" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_sensoranalysis/figure7.png" width="650" %}

_Figure: Time-frequency representations of power calculated using multitapers._

Expand Down Expand Up @@ -390,7 +390,7 @@ Plot the result
cfg.layout = 'neuromag306mag_helmet.mat';
figure; ft_multiplotTFR(cfg, freq_famous)

{% include image src="/assets/img/workshop/practicalmeeg2022/freq_famous.png" width="650" %}
{% include image src="/assets/img/workshop/practicalmeeg2022/handson_sensoranalysis/figure8.png" width="650" %}

_Figure: Time-frequency representations of power calculated using Morlet wavelets._

Expand Down
Loading

0 comments on commit 71dea0d

Please sign in to comment.