channel positions missing after setting montage

  • MNE version: 1.6.0
  • operating system: Google Colab
    My dataset(bcic iv 2a) have 22 EEG channel and 3 EOG channels. The channel names are EEG-Fz, EEG-0, EEG-1, EEG-2, EEG-3, EEG-4, EEG-5, EEG-C3, EEG-6, EEG-Cz, EEG-7, EEG-C4, EEG-8, EEG-9, EEG-10, EEG-11, EEG-12, EEG-13, EEG-14, EEG-Pz, EEG-15, EEG-16, EOG-left, EOG-central, EOG-right.
    I tried to set montage using this:
raw.set_channel_types({'EOG-left':'eog','EOG-central':'eog','EOG-right':'eog'})
montage = mne.channels.make_standard_montage('standard_1020')
raw.set_montage(montage,on_missing='ignore')

But if I run raw.info['dig'] , it only shows LPA, Nasion and RPA and no channel positions.
Also, if I run raw.plot_sensors() , an error is being shown (RuntimeError: No valid channel positions found).
How to set the montage correctly?

Your data contains non-standard electrode labels. Before assigning a montage with raw.set_montage(), you need to rename your channels to standard 10–20 labels (e.g. C3, Cz, C4, …). You can do this with raw.rename_channels().

2 Likes

Now I renamed the 5 channels whose corresponding standard 1020 channels I could understand.

map = {'EEG-Fz':'Fz', 'EEG-C3':'C3','EEG-Cz':'Cz','EEG-C4':'C4','EEG-Pz':'Pz'}
raw.rename_channels(mapping=map)

I could not understand if other channels are custom electrodes or else (dataset description mentions interelectrode distance of 3.5 cm). Do I have to calculate their co-ordinates from the co-ordinates of these five electrodes?
montage2
montage

It looks like these electrodes are placed according to the extended 10–20 system (sometimes referred to as 10–10), so I’d also rename these accordingly (see e.g. 10–20 system (EEG) - Wikipedia).

2 Likes