Construct a model RDM#

This example shows how to create RDMs from arbitrary data. A common use case for this is to construct a “model” RDM to RSA against the brain data. In this example, we will create a RDM based on the length of the words shown during an EEG experiment.

Authors:
Marijn van Vliet <marijn.vanvliet@aalto.fi>
Stefan Appelhoff <stefan.appelhoff@mailbox.org>
# Import required packages
import mne
import mne_rsa

MNE-Python contains a built-in data loader for the kiloword dataset, which is used here as an example dataset. Since we only need the words shown during the experiment, which are in the metadata, we can pass preload=False to prevent MNE-Python from loading the EEG data, which is a nice speed gain.

data_path = mne.datasets.kiloword.data_path(verbose=True)
epochs = mne.read_epochs(data_path / "kword_metadata-epo.fif", preload=False)

# Show the metadata of 10 random epochs
print(epochs.metadata.sample(10))
Reading C:\Users\wmvan\mne_data\MNE-kiloword-data\kword_metadata-epo.fif ...
Isotrak not found
    Found the data of interest:
        t =    -100.00 ...     920.00 ms
        0 CTF compensation matrices available
Adding metadata with 8 columns
960 matching events found
No baseline correction applied
0 projection items activated
         WORD  Concreteness  ...  ConsonantVowelProportion  VisualComplexity
723      hell         2.950  ...                     0.750         57.089775
105    nature         4.300  ...                     0.500         62.193324
503      item         5.100  ...                     0.500         65.858512
924  entrance         4.450  ...                     0.625         64.234616
237  modality         3.125  ...                     0.500         65.056680
556     shirt         6.350  ...                     0.800         54.295790
273      pack         4.550  ...                     0.750         72.813626
244      book         6.250  ...                     0.500         72.980394
709  clarinet         6.250  ...                     0.625         56.367344
472  breakage         4.150  ...                     0.500         75.217461

[10 rows x 8 columns]

Now we are ready to create the “model” RDM, which will encode the difference in length between the words shown during the experiment.

rdm = mne_rsa.compute_rdm(epochs.metadata.NumberOfLetters, metric="euclidean")

# Plot the RDM
fig = mne_rsa.plot_rdms(rdm, title="Word length RDM")
fig.set_size_inches(3, 3)  # Make figure a little bigger to show axis properly
Word length RDM

Total running time of the script: (0 minutes 0.630 seconds)

Gallery generated by Sphinx-Gallery