[Mne_analysis] epoching mismatch between python and matlab

Alexandre Gramfort alexandre.gramfort at inria.fr
Wed Nov 27 09:41:10 EST 2019
Search archives:

        External Email - Use Caution        

hi Tommaso,

unfortunately it's really hard to help without more context and knowledge
about the data.

Best,
Alex


On Tue, Nov 26, 2019 at 3:36 PM Tommaso Fedele <fedele.tm at gmail.com> wrote:

>         External Email - Use Caution
>
> Dear MNE people,
>
> I got a problem when epoching data in MNE Python using mne.Epochs.
>
> I am running some analysis with a Matlab code and I would like to transfer
> the same analysis to MNE Python.
>
> My problem is that if I compare one epoch from Matlab with the output of
> mne.Epochs in Python they do not correspond.
>
> Here below the code and a figure explaining the problem
>
> My question is: why
>
>   spike1[295, :]  # epoch from matlab data
>   data[295, (np.arange(index-100,index+100))]   # epoch from data imported
> in python and manually extracted with a sample reference 'index'
>
> do not correspond with
>
>   epochs9[0,295,:] # which is the output of mne.Epochs for the very same
> epoch?
>
> They both should refer to the sample 75650, with a pre- and post-trigger
> of 100 samples.
>
> I am not applying any SSP projection or baseline. What am I missing?
>
> Thanks in advance for your help,
>
> Best,
> Tommaso
>
> %%%%%%%%%%%%%%%%% code
>
> import numpy as np
> import mne
> import xlrd
> import scipy.io as sio
> import pandas as pd
> from mne.viz import plot_evoked_topo
> import matplotlib.pyplot as plt
>
> spike = sio.loadmat(
>         'E:/../spike75650.mat'
>         )# data imported from Matlab as dict spike.
>          #The field 'spike is an array float64 (404, 201) channels, samples
>
>
> raw = mne.io.read_raw_fif('E:/.../B1C2_ii_run1_raw_tsss_mc_art_corr.fif')
> #data after tsss
> excel = xlrd.open_workbook('E:/.../list raw detections B1C2.xlsx')
> #trigger info from excel file
>
> # create an array for mne.Epochs
> sheet = excel.sheet_by_index(2)
> sp=list()
> for i in range(1,61):
>     sp.append(sheet.cell_value(i,2))
> spevents     = np.array(sp, ndmin=2, dtype=int)
> zeros        = np.zeros((1,60), dtype=int)
> event_id_int = np.ones((1,60), dtype=int)
> event_id_int[:,:] = np.arange(0,60)
> event_id_str = list(map(str,np.arange(0,60)))
> events = np.hstack((spevents.T, zeros.T, event_id_int.T)) # array int32
> (60,3) Nevents,3
>
>                  # one row is 75650 0 9
>
> # Create epochs including different events
> event_id = dict(zip(event_id_str, np.arange(0,60)))
> epochs   = mne.Epochs(raw, events, event_id, tmin = -0.1, tmax = 0.1, proj
> = False)
>
> # Generate list of evoked objects from conditions names
> evokeds = [epochs[name].average() for name in np.arange(0,60)]
>
>
> ##################### Figure
> plt.close('all')
> plt.figure()
>
> ep_id = 9
> index = spevents[0,ep_id] # trigger sample for continuous data, value
> 75650
>
> # spike from matlab
> spike1 = spike['spike']
> plt.plot(spike1[295, :],
>                        label = ['Matlab: spike from raw data - MEG2613'])
>
> # spike from continuous data
> plt.plot(data[295, (np.arange(index-100,index+100))]-5*10**-11,
>                             label = ['Python: spike from raw data -
> MEG2613'])
>
>  # spike from MNE epochs
> epochs9 = epochs[ep_id].get_data()
> plt.plot(epochs9[0,295,:]-5*2*10**-11,
>                         label = ['MNE Python: spike from EPOCHED data -
> MEG2613'])
>
> # spike from MNE average
> evoked9 = epochs[ep_id].average()
> plt.plot(evoked9.data[295]-5*3*10**-11,
>                         label = ['MNE Python: spike from averaged data -
> MEG2613'])
>
> plt.legend()
>
> # check that the channel labels is the same
> print(epochs.ch_names[295]), print(raw.ch_names[295])
>
> %%%%%%%%%%%%%%%%%%%%%% FIGURE
>
> [image: image.png]
>
>
>
>
>
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20191127/8d63bb8c/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 202423 bytes
Desc: not available
Url : http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20191127/8d63bb8c/attachment-0001.png 


More information about the Mne_analysis mailing list