Locations of sEEG channels are different in the montage before and after applying the montage to raw file

  • MNE version: e.g. 0.24.0
  • operating system: Windows 10

Hi all,

I am working with sEEG data and trying to plot the channels and use their locations. I have the RAS locations and I use them to make a montage as you can see below:

montage = mne.channels.make_dig_montage(
ch_pos, coord_frame=‘mri’, nasion=nasion, lpa=lpa, rpa=rpa)

(1) Then I ask for channels locations (3D locations) from this montage as below:

montage.get_positions()[‘ch_pos’]

Then, I set the montage for the raw file:

raw_data.set_montage(montage)

(2) then I ask for the locations from this raw file as below:

raw_data.get_montage().get_positions()[‘ch_pos’]

But the results are different for all channels, for example:

(‘RA16’, array([0.06265729, 0.03354087, 0.04306897]))

vs.

(‘RA16’, array([0.0644109, 0.0024748, 0.0036177]))

Can someone explain to me what is going on here?

Also, if I want to go from the coord_frame: “head” to “mri” (RAS), can I use the inverse of the transform matrix that mne.channels.compute_native_head_t gives me?

Thank you,