Print

Print


  Hello Vladimir and dear all,

Apologies in advance for the long e-mail, I am trying to be as clear as 
possible. I updated my spm version today but I am facing some problems 
with spm_eeg_crop when I try to apply it to my data (CTF MEG)


Problem A.] As we had discussed in the past, when trying to crop a 
continuous file:

On 2/16/2011 4:57 PM, Vladimir Litvak wrote:
>
>> 2.The cropped file (where only a few non-trial seconds from the start and
>> from the and are missing) contains exactly the same number of events as the
>> original continuous file. Why??? It seems that some zombie events are
>> retained after cropping!
>>
>>
> That's indeed a bug, due to the fact that I wasn't planning this
> function to be used on continuous data. I now fixed it and it'll be in
> the next update.
>

I saw your fix in the code to retain only the correct events in the 
cropped file, but the problem is that when I am trying to use the 
function on a continuous CTF MEG data file, I am getting the following 
error:

SPM8: spm_eeg_crop (v4202)                         20:05:54 - 06/04/2011
 =======================================================================
??? Error using ==> subsindex
Function 'subsindex' is not defined for values of class 'struct'.

Error in ==> getfield at 46
         f = f(index{:});

Error in ==> getset at 25
         res{i} = getfield(this, parent, {ind(i)}, fieldname);

Error in ==> meeg.events at 11
res = getset(this, 'trials', 'events', varargin{:});

Error in ==> spm_eeg_crop at 103
    Dnew   = events(Dnew, ev);


I could use the function properly before the update. The parameters that 
I pass to the function are the following


                 S = [];
                 S.D = D; %where this is the origin continuous CTF MEG 
data file
                 S.timewin = [(Time_of_First_Trial_Onset_in_ms - 
Time_Offset_in_ms) (Time_of_Last_Trial_Onset_in_ms + Time_Offset_in_ms)]
                 S.freqwin = [];
                 S.channels = 'all'

                 D = spm_eeg_crop(S);
                 D.save;

Any ideas?


Problem B.] When using crop in epoched data it seems to work fine. But 
still, as I wrote before, in the case that the trials have been cropped 
I get the following warning later on through the analysis when I am 
converting the trials to images

Warning: Duplicate x-y data points detected: using average of the z values.
 > In griddata at 107
   In spm_eeg_convert2scalp at 205


This only occurs if I crop the data (if you look back in my previous 
e-mail, you will see that this was also happening when I was cropping 
the continuous file.

 From our previous communication (e-mail title "Warning in 
spm_eeg_convert2scalp (griddata) & spm_eeg_crop"]

==============


The problem seems to appear in spm_eeg_crop when applied on a continuous
>  file  to and more specifically somewhere in the creation of the new object:
>
>  Dnew = coor2D(Dnew, [], coor2D(D, chanind));
>
>  as some channels do indeed have the same coordinates :
>

>> >>>  size(coor2D(D, chanind)')
>
>  ans =
>
>     337     2
>

>> >>>  size(unique(coor2D(D, chanind)','rows'))
>
>  ans =
>
>     335     2
>
>
>  The above number shows that spm_eeg_crop indeed puts in the coor2D matrix
>  (or tries to put) the coordinates of all available channels. Up to now (and
>  correct me if I am wrong) I knew that the coor2D matrix contains the
>  coordinates of the MEGGRAD channels only. So I modified the code as follows
>  :
>
>  MEG_Channels = (D.meegchannels('MEG'));
>  Dnew = coor2D(Dnew, [], coor2D(D, MEG_Channels));
>
>
>  *And indeed the conversion to images of subsequent files was executed
>  without warnings*. So, is this a bug or am I going the wrong direction here?
>

(Vladimir wrote:)
I tried this on my CTF dataset and I don't get identical 2D
coordinates. So this is something that happens for your data and I'm
not sure why. If you send me an example I can look. In general this
code should work as it is because 2D coordinates are defined for all
channels (for non-scalp channels these are just points on a square
grid).


==============



So these two problems still remain unresolved for me... Any help would be highly appreciated.

Thanks and best

Panagiotis






>> 3.  Please note that there appears to be one more problem with spm_eeg_crop
>> and continuous data :
>>
>> The line Dnew = badchannels(Dnew, [], badchannels(D, chanind)); always
>> results in an error when there are no bad channels, i.e. when
>> isempty(D.badchannels) == 1. so i have substituted the above line with
>>
>> if isempty(D.badchannels) == 0
>>      Dnew = badchannels(Dnew, [], badchannels(D, chanind));
>> end
>>
> I can't reproduce this problem either. The code should work also for
> no bad channels because badchannels(D, chanind) always returns a
> vector of 0/1
>
> Best,
>
> Vladimir
>
>
>> I suspect I should put an 'else' condition somewhere there, but of course
>> you are the expert on this  :)
>>
>> Thanks again and all the best,
>> Panagiotis
>>
>> On 2/7/2011 8:10 PM, Vladimir Litvak wrote:
>>> Dear Panagiotis,
>>>
>>> Try doing:
>>>
>>> spm_eeg_load
>>> D.coor2D(D.meegchannels('MEG'))
>>>
>>> and look which of the channels have the same 2D coordinates. In
>>> principle this should not happen for CTF MEG. You can also look in
>>> 'Prepare' tool at the 2D channel layout an modify it if necessary or
>>> load a template layout from EEGtemplates.
>>>
>>> Best,
>>>
>>> Vladimir
>>>
>>> On Sun, Feb 6, 2011 at 5:23 PM, Panagiotis Tsiatsis
>>> <[log in to unmask]>    wrote:
>>>>   Dear All,
>>>>
>>>> When I am converting my CTF MEG epoched data to images, I am getting the
>>>> following warning:
>>>>
>>>> Warning: Duplicate x-y data points detected: using average of the z
>>>> values.
>>>>> In griddata at 107
>>>>   In spm_eeg_convert2scalp at 204
>>>>
>>>> My settings are:
>>>>
>>>>             S = [];
>>>>             S.n = 32;
>>>>             S.Fname = Concatenated_File_Name_Time;
>>>>             S.interpolate_bad = 1;
>>>>             S.modality = 'MEG';
>>>>
>>>> I also have EOG channels whose chantype has been set to 'EEG' during the
>>>> conversion (this of course should not interfere since I ve selected my
>>>> modality to be 'MEG').
>>>>
>>>> By browsing the Mathwoks forum, I suspect that this happens when nearby
>>>> values get very similar (as is the case with MEG data).
>>>>
>>>> Anybody seen that before? Any intuitions?
>>>>
>>>> Thanks and best,
>>>> Panagiotis
>>>>
>>>>
>>>> --
>>>> Panagiotis S. Tsiatsis
>>>> Max Planck Institute for Biological Cybernetics
>>>> Cognitive NeuroImaging Group
>>>> Tuebingen, Germany
>>>>
>>
>> --
>> Panagiotis S. Tsiatsis
>> Max Planck Institute for Biological Cybernetics
>> Cognitive NeuroImaging Group
>> Tuebingen, Germany
>>
>>


-- 
Panagiotis S. Tsiatsis
Max Planck Institute for Biological Cybernetics
Cognitive NeuroImaging Group
Tuebingen, Germany