[FieldTrip] channelrepair issue

Jim Li megjim1 at gmail.com
Fri Jul 8 19:20:46 CEST 2011


Dear Don, jan-mathijs and Jörn,

Thank you very much for tackling this problem specific for axial gradiometer
systems like ours. I tried the following codes and got the 3D sensor plot.
The neighbours look fine to me. For example, for channel A234 the 3 nearest
neighbours are A235, A216 and A215 as expected. This is very different
from the 3-cm-neighbours selected by ft_channelrepair when A234 is the bad
channel, which includes A143, A173,  A8, A121.
---------------------------
 cfg                         = [];
cfg.dataset                 = 'e,rfhp0.1Hz';
cfg.trialdef.eventtype      = 'TRIGGER';
cfg.trialdef.eventvalue     = 320;
 cfg.trialdef.prestim        = 1;
cfg.trialdef.poststim       = 1;
cfg                         = ft_definetrial(cfg);
cfg.blc                     = 'yes';
cfg.blcwindow               = [-1 0];
cfg.channel                 = {'MEG'};
raw_DATA                    = ft_preprocessing(cfg);

 ft_neighbourplot(cfg, raw_DATA)
------------------------------------------------------

and the output for the last commnad looks like this:
---------------------------
Using the gradiometer configuration from the dataset.
undoing the SupineTip balancing
there are on average 7.9 neighbours per channel
Using the gradiometer configuration from the dataset.
undoing the SupineTip balancing
------------------------

Thank you very much and looking forward to the new revision.

Jim

On Fri, Jul 8, 2011 at 3:20 AM, "Jörn M. Horschig" <
jm.horschig at donders.ru.nl> wrote:

> **
> Dear Jim, Don and others,
>
> First of all, what Don suggested sounds indeed like the cause, if I
> remember things correctly (with my limited experience).
>
> Anyhow, could one of you check ft_neighbourplot with the dataset and the
> neighbourselection of choice? This allows you to see what neighbours are
> selected for which sensors and where they lie in space. If this looks fine,
> than the problem lies indeed in how sensor position is deduced from the data
> structure.
>
> Best,
> Jörn
>
>
>
> On 7/8/2011 9:11 AM, jan-mathijs schoffelen wrote:
>
> Dear Don,
>
> This sounds like a very likely cause of the problem. When we wrote the 4D
> reading code at the time, we had the 248-channel magnetometer system in
> mind. It could be that there are some flaws related to the handling of
> gradiometers. This should not only lead to (erratic) issues at the level of
> channelrepair, but may also cause mayhem when doing planar gradient
> transformation, or source reconstruction.
> Would you happen to
> 1) feel like tackling this one with me, and improve FieldTrip to deal with
> gradiometer systems correctly?
>
> or
>
> 2) have a small gradiometer dataset which you can send to me (e.g. through
> DropBox), so that I can look into it?
>
> We can further discuss this off the discussion list.
>
> Best wishes,
>
> Jan-Mathijs
>
>
>
>  On Jul 8, 2011, at 3:36 AM, Rojas, Don ( Employee MEG-SOM ) wrote:
>
>  Jim et al.
>
> In thinking about this further, it seems to me that it is the indexing that
> is incorrect. The problem I think is specific to gradiometer systems, which
> have two (or more) locations per channel. The function appears to assume
> that the sensor index based on the sens.label field (only 1 per channel)
> will correspond 1 to 1 with the sens.grad field (2 locations per channel),
> which is not correct. So, my guess is that for first-order gradiometer
> systems, the correct index for the sensor location is 2x the index in the
> sens.label field.
>
> So, in an example I have handy at home, the label index for channel A234 is
> 107. Since I think Fieldtrip stores gradiometer locations (by default) as:
>
> Chn 1 lower coil x, y z
> Chn 1 upper coil x, y z
> Chn 2 lower coil x, y z
> Chn 2 upper coil x, y z
> .
> .
> .
> Chn N
>
> I think the correct position info for channel A234 would be found in
> sens.grad(214,:), not sens.grad(107,:), which is what the ft_channelrepair
> function chooses. So I think this is a bug in the function specific to
> gradiometer systems.
>
> Best,
>
> Don
>
>  On Jul 7, 2011, at 5:38 PM, Jim Li wrote:
>
>  Thank you very much for confirming the problem, Don, I appreciate it, :)
>
> Jim
>
> On Thu, Jul 7, 2011 at 4:30 PM, Rojas, Don <Don.Rojas at ucdenver.edu> wrote:
>
>> Jim,
>>
>> All I can do is confirm that this issue exists for our 4D data as well,
>> although we don't use the ft_channelrepair function. The same 4 quite
>> distant channels (one had been deleted in the dataset I had handy) were
>> chosen for repair when I ran this on one of our datasets (also a 248 channel
>> 4D system). I agree the choice doesn't make any sense given the 3 cm
>> distance you define. A quick look at the critical calculation in
>> ft_channelrepair, line 109 distance = ... is correct given the inputs. So I
>> wonder if the issue is with the actual channel indices used rather than the
>> calculation, but I don't have time to track that down. All I can say is that
>> for the distance you specify, channels A235, A216, A199, A215 would be much
>> closer to A234 than those that are selected via the channel repair function.
>> Channel A8 is in fact nearly 21 cm away from channel A234 in the array,
>> based on examination of the data read in from Eugene Kronberg's pdf4D matlab
>> object code, which I think was originally the basis for the FieldTrip 4D
>> reader function.
>>
>> Best,
>>
>> Don Rojas
>>
>>
>>   On Jul 7, 2011, at 1:26 PM, Jim Li wrote:
>>
>>   Dear Fieldtrip developer,
>>
>> Can anybody help me with this channel-repair issue I've been having? I can
>> provide the raw data if you need. I really want to solve the problem, you
>> know.
>>
>> Thanks a lot,
>>
>> Jim
>>
>> On Thu, Jul 7, 2011 at 2:22 PM, Jim Li <megjim1 at gmail.com> wrote:
>>
>>> Hi Odelia,
>>>
>>> Yes, I downloaded the latest version of Fieldtrip and tried your
>>> suggestion "cfg.neighbourdist = 0.03",   but it still weirdly uses the
>>> far-away channels like A121 to do the channel-repair for A234 (these two
>>> channels are 24.1172cm apart!).  Here is the detail:
>>>
>>> ---------------------------
>>>  cfg                         = [];
>>> cfg.dataset                 = 'e,rfhp0.1Hz';
>>> cfg.trialdef.eventtype      = 'TRIGGER';
>>> cfg.trialdef.eventvalue     = 320;
>>>  cfg.trialdef.prestim        = 1;
>>> cfg.trialdef.poststim       = 1;
>>> cfg                         = ft_definetrial(cfg);
>>> cfg.blc                     = 'yes';                              % do
>>> baseline correction with the complete trial
>>>
>>> cfg.blcwindow               = [-1 0];
>>> cfg.channel                 = {'MEG'};
>>> raw_DATA                    = ft_preprocessing(cfg);
>>>
>>>
>>> cfg = [];
>>> cfg.badchannel = {'A234'};
>>> cfg.neighbourdist =  0.03;
>>>
>>> [raw_DATA] = ft_channelrepair(cfg, raw_DATA)
>>>
>>> ---------------------------------------------------------------------
>>>
>>> And here is the outcome: -----------------------------
>>>
>>> the input is raw data with 248 channels and 201 trials
>>> repairing channel A234
>>>   using neighbour A121
>>>   using neighbour A143
>>>   using neighbour A173
>>>   using neighbour A8
>>>
>>> repairing bad channels for trial 1
>>> repairing bad channels for trial 2
>>> repairing bad channels for trial 3
>>> repairing bad channels for trial 4
>>> repairing bad channels for trial 5
>>> repairing bad channels for trial 6
>>> repairing bad channels for trial 7
>>> repairing bad channels for trial 8
>>> repairing bad channels for trial 9
>>> repairing bad channels for trial 10
>>> ....
>>>
>>> -------------------------
>>>
>>> Thank you.
>>>
>>> Jim
>>>
>> _______________________________________________
>>
>> fieldtrip mailing list
>> fieldtrip at donders.ru.nl
>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>>
>>
>>  -----------------------
>> Don Rojas, Ph.D.
>> Associate Professor of Psychiatry
>> U. of Colorado Denver Anschutz Medical Campus
>> Director, UCD Magnetoencephalography Lab
>> 13001 E. 17th Pl F546
>> Aurora, CO 80045
>> 303-724-4994
>>
>>
>> _______________________________________________
>> fieldtrip mailing list
>> fieldtrip at donders.ru.nl
>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>>
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
>
>  -----------------------
> Don Rojas, Ph.D.
> Associate Professor of Psychiatry
> U. of Colorado Denver Anschutz Medical Campus
> Director, UCD Magnetoencephalography Lab
> 13001 E. 17th Pl F546
> Aurora, CO 80045
> 303-724-4994
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
>
>  Dr. J.M. (Jan-Mathijs) Schoffelen
> Donders Institute for Brain, Cognition and Behaviour,
> Centre for Cognitive Neuroimaging,
> Radboud University Nijmegen, The Netherlands
> J.Schoffelen at donders.ru.nl
> Telephone: 0031-24-3614793
>
>
> _______________________________________________
> fieldtrip mailing listfieldtrip at donders.ru.nlhttp://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
>
>
> --
> Jörn M. Horschig
> PhD Student
> Donders Institute for Brain, Cognition and Behaviour
> Centre for Cognitive Neuroimaging
> Radboud University Nijmegen
> Neuronal Oscillations Group
>
> P.O. Box 9101
> NL-6500 HB Nijmegen
> The Netherlands
>
> Contact:
> E-Mail: jm.horschig at donders.ru.nl
> Tel:    +31-(0)24-36-68493
> Web: http://www.ru.nl/donders
>
> Visiting address:
> Trigon, room 2.30
> Kapittelweg 29
> NL-6525 EN Nijmegen
> The Netherlands
>
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20110708/426a3cb8/attachment-0002.html>


More information about the fieldtrip mailing list