[Mne_analysis] need help to plot EEG topomaps with mne

JR KING jeanremi.king at gmail.com
Tue Jun 21 01:49:32 EDT 2016
Search archives:

Hi Mathieu,

it's generally best to follow up your questions on the mailing list so that
others can checkout the archives.

To make an Evoked object you should be able to do:

from mne import EvokedArray, create_info
sampling_freq = 128
info = create_info(n_channels, sampling_freq, 'eeg')
evoked = EvokedArray(your_data_array, info=info, tmin=0.)

Then you can make a montage and attach it to the evoked object:

from mne.channels import Montage
kind = 2  # means eeg channels
montage = Montage(position_xyz, info, kind=2, range(n_channels))
evoked.set_montage(montage)

You can then use the plotting function that I described in the previous
email to plot in 3D. Note that MNE has a wider spectrum of functions for 2D
plottings (have a look at evoked.plot(), plot_topo(), plot_topomap(),
plot_*() methods). Tu use them you'll need to make a 2D layout
(mne.channels.make_eeg_layout).

Hope that helps,

JR

PS: yes I am ;)

Hi Jean-Rémi (Are you French?)
>
> Thanks for your help.
> I've some difficulties with the mne.read_evokeds function. At the moment,
> I have a grand average data 19(channels) x 300 (datapoints) numpy array and
> a custom montage instance from the mne.channels.Montage map (see attached).
> How could I proceed to (i) generate  a read_evokeds() object,  and (ii)
> plot a 3D map in a specific time window...
>
> Best,
> Mathieu
>

On 20 June 2016 at 10:13, JR KING <jeanremi.king at gmail.com> wrote:

> Hi Mathieu,
>
> to complete Jaakko's answer, you can plot 3D EEG projection using mne.viz
> import.evoked_field. For example:
>
> ```
> import os.path as op
> import mne
> from mne.forward import make_field_map
> from mne.viz import plot_evoked_field
>
> # get data
> data_path = mne.datasets.sample.data_path()
> subjects_dir = data_path + '/subjects'
> trans_fname = op.join(data_path, 'MEG', 'sample',
> 'sample_audvis_raw-trans.fif')
> fname = op.join(data_path, 'MEG', 'sample', 'sample_audvis-ave.fif')
> evoked = mne.read_evokeds(fname, baseline=(None, 0), proj=True)[0]
>
> # select eeg channels only
> evoked.pick_types(eeg=True, meg=False)
>
> # plot field maps
> maps = make_field_map(evoked, trans=trans_fname, subjects_dir=subjects_dir,
>                       subject='sample', n_jobs=-1, meg_surf='head')
> plot_evoked_field(evoked, maps, time=.1)
> ```
>
> Hope that helps,
>
> Jean-Rémi
>
>
>
> On 20 June 2016 at 09:00, Jaakko Leppäkangas <jaeilepp at student.jyu.fi>
> wrote:
>
>> Hi Mathieu,
>> currently there is no way to project to 3d.
>>
>> For the second point you could use a montage when reading the data. The
>> readers for EEG data have a montage parameter that you could use to set the
>> channel locations (see for example
>> http://mne-tools.github.io/dev/generated/mne.io.read_raw_edf.html#mne.io.read_raw_edf
>> and
>> http://mne-tools.github.io/dev/generated/mne.channels.read_montage.html#mne.channels.read_montage).
>> In your case, since you have some custom locations, one option would be to
>> manually add entries for 'OL' and 'OR' to the standard_1020.elc file, if
>> you know their locations.
>>
>> -Jaakko
>>
>> On 18 June 2016 at 20:56, Servant Mathieu <servant.mathieu at gmail.com>
>> wrote:
>>
>>> I'm new to mne, and would like to compute some topographic voltage maps
>>> from my EEG grand-averaged data.
>>>
>>> I have two specific questions:
>>> (i) The plot_topomap function plots 2D maps. Is there a way to plot 3D
>>> maps?
>>> (ii) My data_ is a 19 (electrodes) x 300 (datapoints) numpy array.
>>> Sampling rate was 250 Hz, and the 300 datapoints correspond to a -200 1000
>>> ms epoch (0 being the stimulus-locking event).
>>> -Is there a simple way to plot topographies at say, 300 ms after
>>> stimulus onset, or topographies over the average of a given time window
>>> (300-500ms after stimulus onset)?
>>> -I need to provide the (x,y) coordinates for each EEG channel. My
>>> channels are:
>>> electrodes =
>>> ['F3','F4','C3','C4','P3','P4','PO3','PO4','O1','O2','OL','OR','T3','T4','T5','T6','Fz','Cz','Pz']
>>> These electrodes are standard international 10/20 System sites, except
>>> OL (halfway between 01 and T5) and OL (halfway between 02 and T6). Given
>>> these locations, which coordinate array should I provide to the
>>> plot_topomap function ?
>>>
>>> Thanks for your help!
>>> Mathieu
>>>
>>>
>>> _______________________________________________
>>> Mne_analysis mailing list
>>> Mne_analysis at nmr.mgh.harvard.edu
>>> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>>>
>>>
>>> The information in this e-mail is intended only for the person to whom
>>> it is
>>> addressed. If you believe this e-mail was sent to you in error and the
>>> e-mail
>>> contains patient information, please contact the Partners Compliance
>>> HelpLine at
>>> http://www.partners.org/complianceline . If the e-mail was sent to you
>>> in error
>>> but does not contain patient information, please contact the sender and
>>> properly
>>> dispose of the e-mail.
>>>
>>>
>>
>> _______________________________________________
>> Mne_analysis mailing list
>> Mne_analysis at nmr.mgh.harvard.edu
>> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>>
>>
>> The information in this e-mail is intended only for the person to whom it
>> is
>> addressed. If you believe this e-mail was sent to you in error and the
>> e-mail
>> contains patient information, please contact the Partners Compliance
>> HelpLine at
>> http://www.partners.org/complianceline . If the e-mail was sent to you
>> in error
>> but does not contain patient information, please contact the sender and
>> properly
>> dispose of the e-mail.
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20160621/9c0ad99b/attachment.html 


More information about the Mne_analysis mailing list