%matplotlib inline

The mne.Evoked data structure: evoked/averaged data

The mne.Evoked data structure is mainly used for storing averageddata over trials. In MNE the evoked objects are usually created by averaging epochs data with mne.Epochs.average.

import os.path as op

import mne

Here for convenience we read the evoked dataset from a file.

data_path = mne.datasets.sample.data_path()
fname = op.join(data_path, 'MEG', 'sample', 'sample_audvis-ave.fif')
evokeds = mne.read_evokeds(fname, baseline=(None, 0), proj=True)
print(evokeds)
Reading /home/mainak/Desktop/projects/github_repos/mne-python/examples/MNE-sample-data/MEG/sample/sample_audvis-ave.fif ...
    Read a total of 4 projection items:
        PCA-v1 (1 x 102) active
        PCA-v2 (1 x 102) active
        PCA-v3 (1 x 102) active
        Average EEG reference (1 x 60) active
    Found the data of interest:
        t =    -199.80 ...     499.49 ms (Left Auditory)
        0 CTF compensation matrices available
        nave = 55 - aspect type = 100
Projections have already been applied. Setting proj attribute to True.
Applying baseline correction (mode: mean)
    Read a total of 4 projection items:
        PCA-v1 (1 x 102) active
        PCA-v2 (1 x 102) active
        PCA-v3 (1 x 102) active
        Average EEG reference (1 x 60) active
    Found the data of interest:
        t =    -199.80 ...     499.49 ms (Right Auditory)
        0 CTF compensation matrices available
        nave = 61 - aspect type = 100
Projections have already been applied. Setting proj attribute to True.
Applying baseline correction (mode: mean)
    Read a total of 4 projection items:
        PCA-v1 (1 x 102) active
        PCA-v2 (1 x 102) active
        PCA-v3 (1 x 102) active
        Average EEG reference (1 x 60) active
    Found the data of interest:
        t =    -199.80 ...     499.49 ms (Left visual)
        0 CTF compensation matrices available
        nave = 67 - aspect type = 100
Projections have already been applied. Setting proj attribute to True.
Applying baseline correction (mode: mean)
    Read a total of 4 projection items:
        PCA-v1 (1 x 102) active
        PCA-v2 (1 x 102) active
        PCA-v3 (1 x 102) active
        Average EEG reference (1 x 60) active
    Found the data of interest:
        t =    -199.80 ...     499.49 ms (Right visual)
        0 CTF compensation matrices available
        nave = 58 - aspect type = 100
Projections have already been applied. Setting proj attribute to True.
Applying baseline correction (mode: mean)
[<Evoked  |  'Left Auditory' (mean, N=55), [-0.1998, 0.49949] sec, 376 ch, ~4.8 MB>, <Evoked  |  'Right Auditory' (mean, N=61), [-0.1998, 0.49949] sec, 376 ch, ~4.8 MB>, <Evoked  |  'Left visual' (mean, N=67), [-0.1998, 0.49949] sec, 376 ch, ~4.8 MB>, <Evoked  |  'Right visual' (mean, N=58), [-0.1998, 0.49949] sec, 376 ch, ~4.8 MB>]

Notice that the reader function returned a list of evoked instances. This is because you can store multiple categories into a single file. Here we have categories of ['Left Auditory', 'Right Auditory', 'Left Visual', 'Right Visual']. We can also use condition parameter to read in only one category.

evoked = mne.read_evokeds(fname, condition='Left Auditory')
evoked.apply_baseline((None, 0)).apply_proj()
print(evoked)
Reading /home/mainak/Desktop/projects/github_repos/mne-python/examples/MNE-sample-data/MEG/sample/sample_audvis-ave.fif ...
    Read a total of 4 projection items:
        PCA-v1 (1 x 102) active
        PCA-v2 (1 x 102) active
        PCA-v3 (1 x 102) active
        Average EEG reference (1 x 60) active
    Found the data of interest:
        t =    -199.80 ...     499.49 ms (Left Auditory)
        0 CTF compensation matrices available
        nave = 55 - aspect type = 100
Projections have already been applied. Setting proj attribute to True.
No baseline correction applied
Applying baseline correction (mode: mean)
Projections have already been applied. Setting proj attribute to True.
<Evoked  |  'Left Auditory' (mean, N=55), [-0.1998, 0.49949] sec, 376 ch, ~4.8 MB>

The Info attribute is also present here just as in raw and epochs.

print(evoked.info)
print(evoked.times)
<Info | 20 non-empty fields
    bads : list | MEG 2443, EEG 053
    ch_names : list | MEG 0113, MEG 0112, MEG 0111, MEG 0122, MEG 0123, ...
    chs : list | 376 items (GRAD: 204, MAG: 102, STIM: 9, EEG: 60, EOG: 1)
    comps : list | 0 items
    custom_ref_applied : bool | False
    dev_head_t : Transform | 3 items
    dig : list | 146 items
    events : list | 0 items
    file_id : dict | 4 items
    highpass : float | 0.10000000149011612 Hz
    hpi_meas : list | 1 items
    hpi_results : list | 1 items
    lowpass : float | 40.0 Hz
    maxshield : bool | False
    meas_date : tuple | 2002-12-03 19:01:10 GMT
    meas_id : dict | 4 items
    nchan : int | 376
    proc_history : list | 0 items
    projs : list | PCA-v1: on, PCA-v2: on, PCA-v3: on, ...
    sfreq : float | 600.614990234375 Hz
    acq_pars : NoneType
    acq_stim : NoneType
    ctf_head_t : NoneType
    description : NoneType
    dev_ctf_t : NoneType
    experimenter : NoneType
    gantry_angle : NoneType
    hpi_subsystem : NoneType
    kit_system_id : NoneType
    line_freq : NoneType
    proj_id : NoneType
    proj_name : NoneType
    subject_info : NoneType
    xplotter_layout : NoneType
>
[-0.19979521 -0.19813025 -0.19646529 -0.19480033 -0.19313537 -0.19147041
 -0.18980545 -0.18814049 -0.18647553 -0.18481057 -0.18314561 -0.18148065
 -0.17981569 -0.17815073 -0.17648577 -0.17482081 -0.17315585 -0.17149089
 -0.16982593 -0.16816097 -0.16649601 -0.16483105 -0.16316609 -0.16150113
 -0.15983617 -0.15817121 -0.15650625 -0.15484129 -0.15317633 -0.15151137
 -0.14984641 -0.14818145 -0.14651649 -0.14485153 -0.14318657 -0.14152161
 -0.13985665 -0.13819169 -0.13652673 -0.13486177 -0.13319681 -0.13153185
 -0.12986689 -0.12820193 -0.12653697 -0.12487201 -0.12320705 -0.12154209
 -0.11987713 -0.11821217 -0.11654721 -0.11488225 -0.11321729 -0.11155233
 -0.10988737 -0.10822241 -0.10655745 -0.10489249 -0.10322753 -0.10156257
 -0.09989761 -0.09823265 -0.09656769 -0.09490273 -0.09323777 -0.09157281
 -0.08990785 -0.08824289 -0.08657793 -0.08491297 -0.08324801 -0.08158305
 -0.07991809 -0.07825313 -0.07658817 -0.0749232  -0.07325824 -0.07159328
 -0.06992832 -0.06826336 -0.0665984  -0.06493344 -0.06326848 -0.06160352
 -0.05993856 -0.0582736  -0.05660864 -0.05494368 -0.05327872 -0.05161376
 -0.0499488  -0.04828384 -0.04661888 -0.04495392 -0.04328896 -0.041624
 -0.03995904 -0.03829408 -0.03662912 -0.03496416 -0.0332992  -0.03163424
 -0.02996928 -0.02830432 -0.02663936 -0.0249744  -0.02330944 -0.02164448
 -0.01997952 -0.01831456 -0.0166496  -0.01498464 -0.01331968 -0.01165472
 -0.00998976 -0.0083248  -0.00665984 -0.00499488 -0.00332992 -0.00166496
  0.          0.00166496  0.00332992  0.00499488  0.00665984  0.0083248
  0.00998976  0.01165472  0.01331968  0.01498464  0.0166496   0.01831456
  0.01997952  0.02164448  0.02330944  0.0249744   0.02663936  0.02830432
  0.02996928  0.03163424  0.0332992   0.03496416  0.03662912  0.03829408
  0.03995904  0.041624    0.04328896  0.04495392  0.04661888  0.04828384
  0.0499488   0.05161376  0.05327872  0.05494368  0.05660864  0.0582736
  0.05993856  0.06160352  0.06326848  0.06493344  0.0665984   0.06826336
  0.06992832  0.07159328  0.07325824  0.0749232   0.07658817  0.07825313
  0.07991809  0.08158305  0.08324801  0.08491297  0.08657793  0.08824289
  0.08990785  0.09157281  0.09323777  0.09490273  0.09656769  0.09823265
  0.09989761  0.10156257  0.10322753  0.10489249  0.10655745  0.10822241
  0.10988737  0.11155233  0.11321729  0.11488225  0.11654721  0.11821217
  0.11987713  0.12154209  0.12320705  0.12487201  0.12653697  0.12820193
  0.12986689  0.13153185  0.13319681  0.13486177  0.13652673  0.13819169
  0.13985665  0.14152161  0.14318657  0.14485153  0.14651649  0.14818145
  0.14984641  0.15151137  0.15317633  0.15484129  0.15650625  0.15817121
  0.15983617  0.16150113  0.16316609  0.16483105  0.16649601  0.16816097
  0.16982593  0.17149089  0.17315585  0.17482081  0.17648577  0.17815073
  0.17981569  0.18148065  0.18314561  0.18481057  0.18647553  0.18814049
  0.18980545  0.19147041  0.19313537  0.19480033  0.19646529  0.19813025
  0.19979521  0.20146017  0.20312513  0.20479009  0.20645505  0.20812001
  0.20978497  0.21144993  0.21311489  0.21477985  0.21644481  0.21810977
  0.21977473  0.22143969  0.22310465  0.22476961  0.22643457  0.22809954
  0.2297645   0.23142946  0.23309442  0.23475938  0.23642434  0.2380893
  0.23975426  0.24141922  0.24308418  0.24474914  0.2464141   0.24807906
  0.24974402  0.25140898  0.25307394  0.2547389   0.25640386  0.25806882
  0.25973378  0.26139874  0.2630637   0.26472866  0.26639362  0.26805858
  0.26972354  0.2713885   0.27305346  0.27471842  0.27638338  0.27804834
  0.2797133   0.28137826  0.28304322  0.28470818  0.28637314  0.2880381
  0.28970306  0.29136802  0.29303298  0.29469794  0.2963629   0.29802786
  0.29969282  0.30135778  0.30302274  0.3046877   0.30635266  0.30801762
  0.30968258  0.31134754  0.3130125   0.31467746  0.31634242  0.31800738
  0.31967234  0.3213373   0.32300226  0.32466722  0.32633218  0.32799714
  0.3296621   0.33132706  0.33299202  0.33465698  0.33632194  0.3379869
  0.33965186  0.34131682  0.34298178  0.34464674  0.3463117   0.34797666
  0.34964162  0.35130658  0.35297154  0.3546365   0.35630146  0.35796642
  0.35963138  0.36129634  0.3629613   0.36462626  0.36629122  0.36795618
  0.36962114  0.3712861   0.37295106  0.37461602  0.37628098  0.37794594
  0.37961091  0.38127587  0.38294083  0.38460579  0.38627075  0.38793571
  0.38960067  0.39126563  0.39293059  0.39459555  0.39626051  0.39792547
  0.39959043  0.40125539  0.40292035  0.40458531  0.40625027  0.40791523
  0.40958019  0.41124515  0.41291011  0.41457507  0.41624003  0.41790499
  0.41956995  0.42123491  0.42289987  0.42456483  0.42622979  0.42789475
  0.42955971  0.43122467  0.43288963  0.43455459  0.43621955  0.43788451
  0.43954947  0.44121443  0.44287939  0.44454435  0.44620931  0.44787427
  0.44953923  0.45120419  0.45286915  0.45453411  0.45619907  0.45786403
  0.45952899  0.46119395  0.46285891  0.46452387  0.46618883  0.46785379
  0.46951875  0.47118371  0.47284867  0.47451363  0.47617859  0.47784355
  0.47950851  0.48117347  0.48283843  0.48450339  0.48616835  0.48783331
  0.48949827  0.49116323  0.49282819  0.49449315  0.49615811  0.49782307
  0.49948803]

The evoked data structure also contains some new attributes easily accessible:

print(evoked.nave)  # Number of averaged epochs.
print(evoked.first)  # First time sample.
print(evoked.last)  # Last time sample.
print(evoked.comment)  # Comment on dataset. Usually the condition.
print(evoked.kind)  # Type of data, either average or standard_error.
55
-120
300
Left Auditory
average

The data is also easily accessible. Since the evoked data arrays are usually much smaller than raw or epochs datasets, they are preloaded into the memory when the evoked object is constructed. You can access the data as a numpy array.

data = evoked.data
print(data.shape)
(376, 421)

The data is arranged in an array of shape (n_channels, n_times). Notice that unlike epochs, evoked object does not support indexing. This means that to access the data of a specific channel you must use the data array directly.

print('Data from channel {0}:'.format(evoked.ch_names[10]))
print(data[10])
Data from channel MEG 0142:
[-5.23565064e-13 -4.71585139e-13 -3.86683209e-13 -2.83273649e-13
 -1.77306112e-13 -8.40611219e-14 -1.61924078e-14  1.77381210e-14
  1.40744336e-14 -2.58271015e-14 -9.61522377e-14 -1.87714557e-13
 -2.89375756e-13 -3.89584208e-13 -4.77813276e-13 -5.45725710e-13
 -5.87940404e-13 -6.02348966e-13 -5.89997316e-13 -5.54604288e-13
 -5.01825677e-13 -4.38392525e-13 -3.71250724e-13 -3.06800010e-13
 -2.50310349e-13 -2.05542229e-13 -1.74580799e-13 -1.57849570e-13
 -1.54264699e-13 -1.61491852e-13 -1.76251146e-13 -1.94655758e-13
 -2.12557648e-13 -2.25896541e-13 -2.31046307e-13 -2.25152439e-13
 -2.06448989e-13 -1.74519893e-13 -1.30478919e-13 -7.70193540e-14
 -1.83008226e-14  4.03521585e-14  9.29388774e-14  1.33429445e-13
  1.56509623e-13  1.58334178e-13  1.37187906e-13  9.39425253e-14
  3.22229137e-14 -4.17800040e-14 -1.19859868e-13 -1.92671983e-13
 -2.50842568e-13 -2.86173426e-13 -2.92783887e-13 -2.68019382e-13
 -2.12986679e-13 -1.32611683e-13 -3.51871554e-14  6.85579487e-14
  1.66763009e-13  2.47947716e-13  3.02530649e-13  3.24149315e-13
  3.10581307e-13  2.64139575e-13  1.91462745e-13  1.02720927e-13
  1.03287566e-14 -7.26627789e-14 -1.34281272e-13 -1.65226194e-13
 -1.60116285e-13 -1.18226284e-13 -4.36092726e-14  5.54097285e-14
  1.67298585e-13  2.78793911e-13  3.76588471e-13  4.48998456e-13
  4.87395875e-13  4.87219113e-13  4.48443612e-13  3.75461218e-13
  2.76415294e-13  1.62087994e-13  4.45132094e-14 -6.44960341e-14
 -1.54711526e-13 -2.18570615e-13 -2.51858908e-13 -2.53926201e-13
 -2.27449342e-13 -1.77801407e-13 -1.12146848e-13 -3.84001762e-14
  3.58008409e-14  1.03977395e-13  1.61445919e-13  2.05649837e-13
  2.36181961e-13  2.54522470e-13  2.63571764e-13  2.67051607e-13
  2.68884577e-13  2.72619954e-13  2.80991167e-13  2.95625408e-13
  3.16936487e-13  3.44178221e-13  3.75633015e-13  4.08893096e-13
  4.41194502e-13  4.69755657e-13  4.92097469e-13  5.06313899e-13
  5.11282935e-13  5.06807216e-13  4.93681895e-13  4.73681867e-13
  4.49469792e-13  4.24418784e-13  4.02353520e-13  3.87213731e-13
  3.82662229e-13  3.91664527e-13  4.16082427e-13  4.56330613e-13
  5.11154456e-13  5.77570787e-13  6.51011273e-13  7.25678523e-13
  7.95099727e-13  8.52825900e-13  8.93207072e-13  9.12141741e-13
  9.07702901e-13  8.80534327e-13  8.33944572e-13  7.73666285e-13
  7.07272026e-13  6.43315198e-13  5.90287033e-13  5.55525480e-13
  5.44224439e-13  5.58690011e-13  5.97957357e-13  6.57847998e-13
  7.31476284e-13  8.10156194e-13  8.84600880e-13  9.46254643e-13
  9.88574502e-13  1.00807726e-12  1.00499007e-12  9.83397434e-13
  9.50840173e-13  9.17398638e-13  8.94372859e-13  8.92716238e-13
  9.21443671e-13  9.86219107e-13  1.08833553e-12  1.22422732e-12
  1.38560927e-12  1.56023408e-12  1.73319647e-12  1.88862055e-12
  2.01152581e-12  2.08962862e-12  2.11486154e-12  2.08440814e-12
  2.00110619e-12  1.87319400e-12  1.71340236e-12  1.53751814e-12
  1.36259665e-12  1.20504112e-12  1.07878068e-12  9.93775115e-13
  9.55012122e-13  9.62109576e-13  1.00955776e-12  1.08754957e-12
  1.18328588e-12  1.28257998e-12  1.37155673e-12  1.43824115e-12
  1.47384311e-12  1.47359718e-12  1.43707407e-12  1.36794754e-12
  1.27326637e-12  1.16234419e-12  1.04542210e-12  9.32274111e-13
  8.30941537e-13  7.46741058e-13  6.81670773e-13  6.34267928e-13
  5.99935866e-13  5.71674711e-13  5.41123551e-13  4.99774414e-13
  4.40203914e-13  3.57166739e-13  2.48419283e-13  1.15170557e-13
 -3.78913166e-14 -2.03000897e-13 -3.70094595e-13 -5.27874540e-13
 -6.65031024e-13 -7.71479002e-13 -8.39461228e-13 -8.64396908e-13
 -8.45371742e-13 -7.85221934e-13 -6.90204626e-13 -5.69301044e-13
 -4.33236931e-13 -2.93344145e-13 -1.60393477e-13 -4.35434005e-14
  5.04819854e-14  1.17891112e-13  1.57953568e-13  1.72760525e-13
  1.66659269e-13  1.45453217e-13  1.15476765e-13  8.26756047e-14
  5.18146953e-14  2.59151892e-14  5.99016124e-15 -8.89685393e-15
 -2.12682425e-14 -3.46297138e-14 -5.27233119e-14 -7.87501478e-14
 -1.14684754e-13 -1.60783835e-13 -2.15367722e-13 -2.74908115e-13
 -3.34418383e-13 -3.88090792e-13 -4.30093130e-13 -4.55412599e-13
 -4.60624828e-13 -4.44475585e-13 -4.08188062e-13 -3.55446154e-13
 -2.92046256e-13 -2.25259214e-13 -1.62982264e-13 -1.12791613e-13
 -8.10178973e-14 -7.19678908e-14 -8.73945749e-14 -1.26281955e-13
 -1.84975724e-13 -2.57635654e-13 -3.36953098e-13 -4.15032286e-13
 -4.84326469e-13 -5.38499603e-13 -5.73113386e-13 -5.86050425e-13
 -5.77632389e-13 -5.50426131e-13 -5.08778374e-13 -4.58150576e-13
 -4.04351788e-13 -3.52776159e-13 -3.07748862e-13 -2.72061081e-13
 -2.46751528e-13 -2.31146472e-13 -2.23143154e-13 -2.19677267e-13
 -2.17302409e-13 -2.12785315e-13 -2.03632351e-13 -1.88467661e-13
 -1.67214705e-13 -1.41060149e-13 -1.12212720e-13 -8.35028755e-14
 -5.78867462e-14 -3.79347716e-14 -2.53861604e-14 -2.08334863e-14
 -2.35887818e-14 -3.17473644e-14 -4.24381278e-14 -5.22259943e-14
 -5.75990700e-14 -5.54777566e-14 -4.36592803e-14 -2.11487760e-14
  1.16798141e-14  5.31049618e-14  1.00257101e-13  1.49459440e-13
  1.96659817e-13  2.37887555e-13  2.69671318e-13  2.89362104e-13
  2.95325316e-13  2.86983257e-13  2.64720905e-13  2.29684506e-13
  1.83521713e-13  1.28110148e-13  6.53360301e-14 -3.04685471e-15
 -7.54562181e-14 -1.50414202e-13 -2.26408447e-13 -3.01714358e-13
 -3.74233879e-13 -4.41404448e-13 -5.00216121e-13 -5.47361857e-13
 -5.79519643e-13 -5.93738786e-13 -5.87876290e-13 -5.61020374e-13
 -5.13820836e-13 -4.48667618e-13 -3.69657925e-13 -2.82341748e-13
 -1.93249565e-13 -1.09253600e-13 -3.68349940e-14  1.86446047e-14
  5.35720218e-14  6.65164407e-14  5.84033363e-14  3.23972852e-14
 -6.50200446e-15 -5.20940431e-14 -9.77654042e-14 -1.37316633e-13
 -1.65718982e-13 -1.79691788e-13 -1.78025648e-13 -1.61607341e-13
 -1.33151857e-13 -9.66892395e-14 -5.68891682e-14 -1.83317929e-14
  1.51602091e-14  4.10302853e-14  5.82578888e-14  6.73623633e-14
  7.01465138e-14  6.92389265e-14  6.75196288e-14  6.75415172e-14
  7.10480311e-14  7.86823495e-14  8.99402113e-14  1.03374590e-13
  1.17022657e-13  1.28967475e-13  1.37937400e-13  1.43814668e-13
  1.47955853e-13  1.53234777e-13  1.63782599e-13  1.84435646e-13
  2.19968122e-13  2.74223234e-13  3.49275554e-13  4.44780522e-13
  5.57625480e-13  6.81969209e-13  8.09696537e-13  9.31246736e-13
  1.03672137e-12  1.11711547e-12  1.16551120e-12  1.17804259e-12
  1.15449453e-12  1.09843252e-12  1.01682821e-12  9.19224021e-13
  8.16544850e-13  7.19722944e-13  6.38323538e-13  5.79369223e-13
  5.46529620e-13  5.39785783e-13  5.55614689e-13  5.87656837e-13
  6.27763208e-13  6.67254220e-13  6.98205534e-13  7.14563717e-13
  7.12924662e-13  6.92874971e-13  6.56842603e-13  6.09508183e-13
  5.56870605e-13  5.05132568e-13  4.59588123e-13  4.23692512e-13
  3.98471179e-13  3.82353124e-13  3.71460790e-13  3.60308185e-13
  3.42787112e-13  3.13288342e-13  2.67769464e-13  2.04599607e-13
  1.25039471e-13  3.32753967e-14 -6.40049014e-14 -1.58436924e-13
 -2.41083752e-13]

If you want to import evoked data from some other system and you have it in a numpy array you can use mne.EvokedArray for that. All you need is the data and some info about the evoked data.

evoked = mne.EvokedArray(data, evoked.info, tmin=evoked.times[0])

For more information, see Creating MNE’s data structures from scratch.

Visualization

We can plot the evoked response

evoked.plot(time_unit='s', exclude=[]);

png

We can also plot the topographic map for some time instances

evoked.plot_topomap();

png

Or even plot them both together …

evoked.copy().pick_types(meg='mag').plot_joint();

png

To contrast evokeds, we can do

vmin, vmax =-120, 120
evokeds[2].plot_topomap(vmin=vmin, vmax=vmax);
evokeds[3].plot_topomap(vmin=vmin, vmax=vmax);
contrast = mne.combine_evoked(evokeds[2:], weights=[1, -1])
contrast.plot_topomap(vmin=vmin, vmax=vmax);

png

png

png

Exercises

1) How will you save evoked data to disk?

# your code here

2) Can you plot the topomap at 10 evenly spaced time instances?

HINT: Use np.linspace

# your code here