question about FIFF constants and CTF data

hey all

I'm working with CTF data after converting them to FIFF. I used a simple
mne_ctf2fiff call, and my data has no digitized points nor EEG. After
looking at raw.info['dig'] I was a bit unsure about the location of the 3
electrodes that were used (LPA, RPA, nasion), so I decided to check a
sample dataset just to verify it wasn't something weird with my data.

So, I converted Brainstorm's sample raw .ds to FIFF (sorry, I didn't find a
sample .ds by the MNE-python gang :wink: ), and looked at the dig structure.
Here's what I see:

In [8]: raw.info['dig']
Out[8]:
[{'coord_frame': 4,
  'ident': 3,
  'kind': 2,
  'r': array([ 7.45058060e-09, 8.64083171e-02, 0.00000000e+00],
dtype=float32)},
{'coord_frame': 4,
  'ident': 1,
  'kind': 2,
  'r': array([ -6.84481487e-02, -5.76255843e-09, 0.00000000e+00],
dtype=float32)},
{'coord_frame': 4,
  'ident': 2,
  'kind': 2,
  'r': array([ 7.05333501e-02, 5.87897375e-09, 0.00000000e+00],
dtype=float32)},
{'coord_frame': 4,
  'ident': 1,
  'kind': 3,
  'r': array([-0.02922045, -0.09704589, 0.0735818 ], dtype=float32)},
{'coord_frame': 4,
  'ident': 2,
  'kind': 3,
  'r': array([ 0.03363838, -0.09628744, 0.0735818 ], dtype=float32)}]

The two last points are not present in my actual data, but the output above
can be used to illustrate my question. Based on the coordinates in head
space, shouldn't the first point be nasion (FIFFV_POINT_NASION, ident=2)?

Maybe I'm misreading something in the manual, but it's something that has
been bugging me for a while, and I was wondering if you guys could quickly
point out my mistake!

Thanks,

G

Hi Gustavo,

I'm not entirely sure what your question is, but I can tell you this. I
don't think lists are ordered in python (and raw.info['dig'] is a list). It
seems that in the case of the file you are talking about, you get three HPI
locations and 2 EEG locations.

Are you asking why aren't there fiducial points? If so can you tell us more
about the data, were these points digitized?

Thanks,
D

Hi all,

Hi Gustavo,

I'm not entirely sure what your question is, but I can tell you this. I don't think lists are ordered in python (and raw.info['dig'] is a list).

Lists are ordered, dictionaries aren't.

It seems that in the case of the file you are talking about, you get three HPI locations and 2 EEG locations.

IIRC you normally get 3 fiducials followed by 2 hpi coils

Are you asking why aren't there fiducial points? If so can you tell us more about the data, were these points digitized?

good idea :slight_smile:

Thanks,
D

hey all

I'm working with CTF data after converting them to FIFF. I used a simple mne_ctf2fiff call, and my data has no digitized points nor EEG. After looking at raw.info['dig'] I was a bit unsure about the location of the 3 electrodes that were used (LPA, RPA, nasion), so I decided to check a sample dataset just to verify it wasn't something weird with my data.

So, I converted Brainstorm's sample raw .ds to FIFF (sorry, I didn't find a sample .ds by the MNE-python gang :wink: ), and looked at the dig structure. Here's what I see:

In [8]: raw.info['dig']
Out[8]:
[{'coord_frame': 4,
  'ident': 3,
  'kind': 2,
  'r': array([ 7.45058060e-09, 8.64083171e-02, 0.00000000e+00], dtype=float32)},
{'coord_frame': 4,
  'ident': 1,
  'kind': 2,
  'r': array([ -6.84481487e-02, -5.76255843e-09, 0.00000000e+00], dtype=float32)},
{'coord_frame': 4,
  'ident': 2,
  'kind': 2,
  'r': array([ 7.05333501e-02, 5.87897375e-09, 0.00000000e+00], dtype=float32)},
{'coord_frame': 4,
  'ident': 1,
  'kind': 3,
  'r': array([-0.02922045, -0.09704589, 0.0735818 ], dtype=float32)},
{'coord_frame': 4,
  'ident': 2,
  'kind': 3,
  'r': array([ 0.03363838, -0.09628744, 0.0735818 ], dtype=float32)}]

The two last points are not present in my actual data, but the output above can be used to illustrate my question. Based on the coordinates in head space, shouldn't the first point be nasion (FIFFV_POINT_NASION, ident=2)?

Maybe I'm misreading something in the manual, but it's something that has been bugging me for a while, and I was wondering if you guys could quickly point out my mistake!

Thanks,

G

--
Gustavo Sudre

_______________________________________________
Mne_analysis mailing list
Mne_analysis at nmr.mgh.harvard.edu
Mne_analysis Info Page

The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the e-mail
contains patient information, please contact the Partners Compliance HelpLine at
MyComplianceReport.com: Compliance and Ethics Reporting . If the e-mail was sent to you in error
but does not contain patient information, please contact the sender and properly
dispose of the e-mail.

_______________________________________________
Mne_analysis mailing list
Mne_analysis at nmr.mgh.harvard.edu
Mne_analysis Info Page

The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the e-mail
contains patient information, please contact the Partners Compliance HelpLine at
MyComplianceReport.com: Compliance and Ethics Reporting . If the e-mail was sent to you in error
but does not contain patient information, please contact the sender and properly
dispose of the e-mail.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20140626/0d375b9c/attachment.html

The question is really 2-fold:

1) Looking at the value of ident and kind keys of the output I sent in my
first e-mail, and comparing them to FIFF constants, it tells me something
about those points (regardless of their order in the dict). Based on the
coordinates, shouldn't that first point in the output be nasion (according
to the manual, ident=2)? To answer Dan's question about digitization, I
don't know about this specific dataset, but I see a similar pattern on the
ones I have. In those cases, there was no digitization per-se (i.e. not
like what I used to do with a Polhemus and the Elekta machine), but there
are 3 electrodes placed near the fiducial points that are plugged to the
machine accordingly to their positions on the head. So, maybe that's how
they would get assigned to particular points.

2) Does this matter at all? In other words, say the identity of the points
is indeed mislabeled (but again, that's what I'm wondering in the first
question). Does it matter going forward, when using the MRI-MEG
transformation matrix, creating fwd solutions, etc? I can see how it would
matter, but maybe the transformations are performed in ways that they don't.

Let me know if I made it more confusing than before :slight_smile:

Thanks,

G

Hi Gustavo,

The question is really 2-fold:

1) Looking at the value of ident and kind keys of the output I sent in my first e-mail, and comparing them to FIFF constants, it tells me something about those points (regardless of their order in the dict). Based on the coordinates, shouldn't that first point in the output be nasion (according to the manual, ident=2)? To answer Dan's question about digitization, I don't know about this specific dataset, but I see a similar pattern on the ones I have. In those cases, there was no digitization per-se (i.e. not like what I used to do with a Polhemus and the Elekta machine), but there are 3 electrodes placed near the fiducial points that are plugged to the machine accordingly to their positions on the head. So, maybe that's how they would get assigned to particular points.

Are these electrodes or Head Position Indicator Coils (or whatever the CTF name is). An electrode is used for measuring EEG data, while an HPI coil produces a magnetic field that is used to determine the head position. Is there no digitization at all (not with photos or a laser scanner)?

2) Does this matter at all? In other words, say the identity of the points is indeed mislabeled (but again, that's what I'm wondering in the first question). Does it matter going forward, when using the MRI-MEG transformation matrix, creating fwd solutions, etc? I can see how it would matter, but maybe the transformations are performed in ways that they don't.

If you haven't digitized any of the positions in any way, it will be very difficult to get an accurate MRI-MEG transformation matrix. If that matrix is inaccurate it will introduce error into your forward solution. From your description it sounds like there would only be three points to fit (which I suspect are HPI coils).

HTH,
D

Anyone that knows the CTF system better, please feel free to correct me.

AFAIK, they're closer to cHPI coils, but called CHL (Continuous Head
Localization). They were not digitized (i.e. no Polhemus or laser scanner),
but photos of the coil locations were taken for each subject, and some
subjects did have their MRIs with vitamin E locators. But the coils are
normally placed along the 3 standard fiducial locations, and plugged to the
machine at specific ports (e.g. nasion coil into nasion port, etc). I'm
assuming the ds to fiff conversion takes that into consideration when
converting those coils into the dig struct, but I could be wrong, and
that's where the first question about point coordinates and identity came
from. Also, when continuous head localization is used, the information in
these 3 coils is saved as 3 special channels in the ds file.

Best,

Gus

Hi Gustavo,

I guess to answer your original question it sounds like everything was done
correctly in the file conversion. In MNE vocab we would call those HPI
coils (which can produce either continuous or one shot head position
measurements). From the photos, you can try to generate your MRI-MEG
transform by eye (or there are some software packages, which if you have a
sufficient number of photos and sufficient geometric information about
where the photos were taken from, there are automated techniques, but I
believe these require you to acquire the photos in a particular manner). If
you don't have any points except for those three you can use mne-python (or
most MEG software packages) to get a transformation matrix, but as I said
with only three points getting a reliable data fit can be difficult (for
future studies I would recommend using a polhemus etc. to get additional
points).

HTH,
D

Hi Dan (or anyone else),

Do you know where I can get more information about automated coregistration based on photos? I believe you generally need a 3-d camera. I have been trying to find a reference and/or someone who can help us test something like that out here...

Best wishes,
Avniel

The only one I am aware of is EGI's photogrammetry system, but I think you
need to be using EGI equipment to use it (you could contact them and ask.
They are very helpful.)

D