Storing EGI sensor locations into raw data info attribute

I need to store the coordinates of the EGI sensor for my EGI mff dataset. For each mff file (i.e., the recording from each subject), I have a tab-separated .sfp file which lists the subject-specific coordinates of all sensors. I am a bit unclear how I can accomplish this.

As far as I can understand, the set_montage() method however requires a pre-defined montage, so it is not the right choice here. So, it looks like I need to create a customized montage via the make_dig_montage() method, which though would require to make some adjustment in each sfp, specifically:

  1. The sensor coordinates need to be converted in a dictionary (with the sensor name as the key and the 3d coordinates as values
  2. The fiducial points (nasion, and left and right periauricular points) needs to be extracted from the file and referred to as separate arrays.

Is that correct? Also, the function seem to allow for additional coordinates, i.e. headspace points and HPI (?), which I don’t think the EGI sensor location digitization software is able to provide (but I might be mistaken).

Any help/suggestion would be much appreciated! Thank you in advance!

P.S.: I am aware that there is a EGI-specific method – mne.channels.read_dig_egi() – however it looks like it only accepts XML-formatted files. Do you think I can just convert my sfp-formatted files into XML to make it work?

Hello, have you looked at mne.channels.read_custom_montage()? I think it should do what you want.

Yes, you’re right! Thanks!

1 Like