What EEG montage to use for 257 channels

Hello MNE users,

I am currently working with High Density EEG for my data, it has 257 channels with channel number EEG 257 being the reference. What montage do I use for my analysis? The data was from Netstation system, therefore I assume it is in EGI 256 system. But the data came with 257 channels instead of 256, 257 being the reference.

Here as you can see there are no channels in the back of the head. Is this how it should be or is the montage incorrect?

As you manage to plot a topo map, you did set a montage. Which one?
I think EGI systems do save the reference alongside the data, as an array of zeros. The 257 channels does not surprise me.
For the montage, I think EGI has it in a .xml file alongside the data in the .mff file.
Alternatively, I know this one: https://sites.google.com/site/cartoolcommunity/files/EGI257.GenevaAverage13.10-10.xyz?attredirects=0&d=1
Which is an average between I forgot how many participants made by a lab on Campus Biotech in Geneva.

I had just been working on built-in montages in MNE. @mscheltienne do you think we should ship the montage you mentioned with MNE directly?

Oh right, the spherical and realistic montage discussion. I think we can include it as a realistic montage, but letā€™s make sure it is correct (it was made years ago before I was at Campus Biotech, and I never used it).
I can try to find some information on this montage next week, where/when it was made, with how many subjects, and on which cap model.

Also, I notice now that there is a build-in spherical montage for the EGI 256 in MNE:

mne.channels.make_standard_montage("EGI_256")
1 Like

hi @mscheltienne, I set the EGI_256 montage system for my analysis. Even when I donā€™t set the montage, it seems like MNE by defualt loads EGI_256 montages for my data type. However, I noticed that with this montage, the channels are not equally distributed and there are relatively less or infact no sensors on the occipital region of the head as I showed in the figure above.

Also @ richard, If the montages are present in the .xml file for Netstation, how do I import it with MNE?

Iā€™m a bit surprised by the ā€˜auto-loadingā€™ of a montage.
For the occipital region, this is primarily due to the projection of the 3D (X,Y,Z) montage on a 2D plane for topographic representation. Try to visualize the montage in 3D:

montage = mne.channels.make_standard_montage("EGI_256")
montage.plot(kind="3d")

Me too. There seems to be location information already present in the data, which we make use of even if there is no montage set (this information is stored in info[ā€˜chsā€™])

In any case Iā€™d suggest to (re)set the montage manually.

Hi @richard, Is there any way to read montage from xml file.

As you can see on MNE, the montage looks like this for my HD-EEG

It looks like this on Brainstorm

As you can see here channels are also present on the occipital region of the head unlike MNE.

My raw mff file has an xml file called sensorLayout

image

How do I use that instead of default Standard EGI_256?

Can you share the data? A short snippet would suffice and you may anonymize it.

https://drive.google.com/drive/folders/1aAGEf_TMyc-aaBGGAU7nS0ulbGGuXI4n?usp=sharing

Hi @richard, here you go

In sensorLayout.xml, it says:

<name>HydroCel GSN 256 1.0</name>

but thereā€™s actually 257 channels in the data; one of them is called REF.

I figured that our built-in GSN-HydroCel-257 montage has support for 256 channels plus a reference placed on Cz, so I took my chances and just assumed that REF in your data is, in fact, Cz; I renamed the channel, set the montage, and plotted the result. And the reference channel appears at Cz position! So all is working now as expected.

# %%
from pathlib import Path
import mne


fname = Path('~/Development/Support/mne-python/mff-reading/data.mff')
raw = mne.io.read_raw_egi(fname)

raw.rename_channels({'E257': 'Cz'})
raw.set_montage('GSN-HydroCel-257')
raw.plot_sensors(show_names=True)

output

The only thing that annoys me is that our MFF reader doesnā€™t seem to parse the name fields in sensorLayout.xml, otherwise the channel would have been called REF and not E257.

Edit:
3D viz:

1 Like

Thank you @richard, I really appreciate it.