Senors organisation

Hi,

I do not understand how sensor is recognised in BST, thanks for clarifying, your reply should be very helpful and appreciated,

  1. You have info in: brainstorm3/toolbox/io/private/coil_def.dat
    for example if we extract some data

3 3012 0 2 2.639e-02 1.680e-02 "Vectorview planar gradiometer T1 size = 26.39 mm base = 16.80 mm"
59.5238 8.400e-03 0.000e+00 3.000e-04 0.000 0.000 1.000

so 0.000 0.000 1.000 is the orientation, but if work with this tutorial https://neuroimage.usc.edu/brainstorm/Tutorials/TutMindNeuromag?highlight=(TutMindNeuromag) and we open one of the orientation we will see something like that:
[-0,35615; 0,90862; -0,21814] so what is the difference? for my understanding that this [-0,35615; 0,90862; -0,21814] is the real orientation and the one in the file 0.000 0.000 1.000 to tell that it is on z axis but I am not sure

  1. do you have tutorial for OPM because you include it in the coil_def.dat? how can I load those channels? because in the previous tutorial that I mentioned I found directly the channel below the subject, here what I should do?

  2. Let’s extract from brainstorm3/toolbox/io/private/coil_def.dat some opm data

1 8001 0 1 7.000e-04 0.000e+00 "OPM sensor Gen1 size = 0.70 mm"
1.0000 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 1.000
1 8001 1 6 7.000e-04 0.000e+00 "OPM sensor Gen1 size = 0.70 mm"
0.1667 -1.250e-03 0.000e+00 0.000e+00 0.000 0.000 1.000
0.1667 -7.500e-04 0.000e+00 0.000e+00 0.000 0.000 1.000

again here we see the orientation 0.000 0.000 1.000 does in the Orient column when we click edit channel we will se something like that [-0,35615; 0,90862; -0,21814] , if yes how? how we get those numbers of orientation?

  1. how can we modify the distance between the scalp and the sensor position?
    Thanks in advance,
    Ousai

Hi Ousai,

1 and 3 0.000 0.000 1.000 is here the normal vector on the sensor, which is defined to be in the positive z- direction. This does not directly define the orientation of the sensor. The orientation is indeed by the vector [-0,35615; 0,90862; -0,21814] for example. Which is also a unity vector in 3-d. The sensor can then be rotated to have it's normal vector match that orientation.
2. You can find a short discussion on OPM in the following thread : FMEG FORWARD Modeling
4. I don't know this, someone else might chime in.

Kind regards,
Steven

Hi Steven,

So when we edit the channel we have specific orientation for the sensor, then in the coil_def.dat it tell us what the direction, I really don not understand what is the difference between coil_def.dat and when we edit the channel file. does the when we open the edit channel file is related to the coil_def.dat file, so that if we have [-0,35615; 0,90862; -0,21814] orientation the 0 0 1 in coil_def.dat file tell it to have it normal vector to specific axis?,
for my understanding you have in defferent sensor point and each have specific orientation and location as you in the attached figure


but beause you are going to make a computation for integration point then you define the orientation in coil_sat file as 0 0 1 otherwise this thing [-0,35615; 0,90862; -0,21814] should be enough to explain the orientation, is this true? but if I want to edit the channel and place new channel I should compute the orientation normal to the head surface to get some thing like that [-0,35615; 0,90862; -0,21814]? and how?

thanks in advance,
Ousai

Dear Ousai,

My apologies I made a mistake in my first message. An accurate description of coil_def.dat can be found at the MNE site : https://mne.tools/0.12/manual/source_localization/forward.html#implementation-of-software-gradient-compensation under coil geometry information.

Kind regards,
Steven

The file coil_def.dat contains the geometry of various types of MEG sensors, independently from any acquisition device.

The functions mne_add_coil_defs.m or ctf_add_coil_defs.m apply this geometry to the description of an acquisition device (position and orientation of each sensor in the MEG system), as it can be found in a .fif file (Elekta) or .res4 file (CTF).
https://github.com/mne-tools/mne-matlab/blob/master/matlab/mne_add_coil_defs.m
https://github.com/brainstorm-tools/brainstorm3/blob/master/toolbox/io/ctf_add_coil_defs.m

To get started, you need the 3D positions and orientations of your sensors relatively to the head of your subject, Braintorm or MNE-Python do not provide this information. Then you can use Brainstorm or MNE-Python functions to compute all the integration points (ie. the info you can find in the Brainstorm channel.mat file) needed for computing your forward model.

To get the positions and orientations of the MEG sensors relatively to the head of the subject, most MEG systems use head localization coils (3 for CTF and 4D, 4 for Elekta, 5 for Yokogawa, etc). I think you can find online documentation about this technique easily.

Hi Francois,

To get the positions and orientations of the MEG sensors relatively to the head of the subject, most MEG systems use head localization coils (3 for CTF and 4D, 4 for Elekta, 5 for Yokogawa, etc). I think you can find online documentation about this technique easily.

Do you to build my own sensors with coordinates and orientation? can you please share with me one online document to understand what you mean?

Thank you
Ousai

Yes, you need to provide the positions of your sensors to Brainstorm, it can't guess where your sensors are located. All the MEG acquisition systems start by localizing the position of the head in the MEG (by sending some currents in the head localisation coils and then finding their positions using the signals recorded by the MEG sensors. Both this registration information and the position of all the MEG coils is saved in the MEG files.
Search with google something like "elekta HPI head localization" or "meg head tracking".

@Marc.Lalancette
Have you been working with the computation of OPM forward models before?
Any suggestion to add to this discussion?

Hello, please see my comments in this post: FMEG FORWARD Modeling
Cheers