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 /home/runner/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
479  infusion      3.750000  ...                  0.500000         57.703380
915  specific      3.210526  ...                  0.625000         61.250325
139    safari      5.550000  ...                  0.500000         59.139165
679  business      4.750000  ...                  0.625000         67.532057
328     fluke      3.450000  ...                  0.600000         59.822318
646   conduct      2.850000  ...                  0.714286         64.737597
940  velocity      3.789474  ...                  0.500000         58.044890
517      pore      5.400000  ...                  0.500000         69.049383
821    answer      2.850000  ...                  0.666667         71.991517
542     depth      3.350000  ...                  0.800000         73.618241

[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.222 seconds)

Gallery generated by Sphinx-Gallery