EEG Sensor Coordinates

I want to plot the band magnitudes topographically, using mne.viz.plot_topomap.

Alas, that requires the pos argument, specifying (x,y) position of each sensor.

My EDF files, produced by ANT Neuro, do not have montage information (info.get_montage always returns None).

The channels are standard like EEG Oz-Ref &c.

Where can I find the appropriate pos argument?

Platform:         Linux-6.0.12-76060006-generic-x86_64-with-glibc2.35
Python:           3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0]
Executable:       /usr/bin/python3
CPU:              x86_64: 8 cores
Memory:           15.3 GB

mne:              1.3.0
numpy:            1.24.2 {OpenBLAS 0.3.21 with 8 threads}
scipy:            1.10.1
matplotlib:       3.7.0 {backend=module://matplotlib_inline.backend_inline}

sklearn:          1.2.1
numba:            Not found
nibabel:          Not found
nilearn:          Not found
dipy:             Not found
openmeeg:         Not found
cupy:             Not found
pandas:           1.5.3
pyvista:          Not found
pyvistaqt:        Not found
ipyvtklink:       Not found
vtk:              Not found
qtpy:             2.3.0 {PyQt5=5.15.3}
ipympl:           Not found
pyqtgraph:        Not found
pooch:            v1.6.0

mne_bids:         Not found
mne_nirs:         Not found
mne_features:     Not found
mne_qt_browser:   Not found
mne_connectivity: 0.5.0
mne_icalabel:     Not found

The only 32-channel standard montage in mne.channels.get_builtin_montages is biosemi32:

<DigMontage | 0 extras (headshape), 0 HPIs, 3 fiducials, 32 channels>

However, the ch_names there are different from mine (biosemi32 is missing AFz, FT10, FT9, Fpz but has AF3, AF4, PO3, PO4 instead).

Looking through all the standard montages, I see that

  • standard_1005
  • standard_1020
  • easycap-M1
  • brainproducts-RNP-BA-128

contain all the ANT Neuro channels.
Should I use one of them and then drop all the extra ones?
Which one?
Should I ask ANT Neuro for a montage file?

Thank you!

Hello,

I use the standard_1005 with ANT Neuro, specifically the subset standard_1020 for 64 channel caps.

Mathieu

1 Like

Hi,
I am now confused because those montages give 3d coordinates and mne.viz.plot_topomap wand 2d pos argument. Do I need to project them mylself?
Thank you!

pos: array, shape (n_channels, 2) | instance of Info

Location information for the channels. If an array, should provide the x and y 
coordinates for plotting the channels in 2D. If an Info object it must contain 
only one channel type and exactly len(data) channels; the x/y coordinates will 
be inferred from the montage in the Info object.

Indeed, if you want to use the array of shape (n_channels, 2), you need to project the 3D coordinates. This is not handy, instead use the second option: provide an Info with the correct channel name and the correct montage set. For instance:

info = create_info(ch_names=ch_names, sfreq=fs, ch_types="eeg")
info.set_montage("standard_1020")

Mathieu

1 Like