[Eeglablist] Regarding .fdt files

Delorme, Arnaud adelorme at ucsd.edu
Fri Feb 14 06:02:19 PST 2020


Dear Gladys,

> If I understand your comment “Rank is a hard thing to calculate and there are sometimes numerical instabilities, hence the message you are seeing” correctly, does that mean that the output of runica might differ from time to time despite preprocessing steps maintained the same? And if so, what are the implications for the resulting ICs – as it appears that the 59 ICs generated are somewhat different from the 60 ICs generated.

Numerically unstable was a bad choice of word. It is deterministic in the sense that on a given computer with the same data, it will always return the same result. However, change the Matlab version or the operating system (Mac vs PC vs Linux), and you could possibly (in some rare case) observe a difference.

This is why we have our own rank function when using runica and that we try to weight the Matlab rank and our own rank function to figure out the true rank. It is much better now than it used to and the case where we fail to find the true rank is rare. In your case, since you have run average reference, the rank should indeed be decreased by 1.

> 	• Remove 1 channel that I do not need for subsequent analyses
> 	• Bandpass filter 1 – 30 Hz
> 	• Reject noisy channels
> 	• Average re-reference (not including EOG), as in the code below:
> [~,chanNum_EOG] = ismember({'EXG1','EXG2'},{EEG.chanlocs.labels}) ;
> EEG = pop_reref( EEG, [],'exclude',chanNum_EOG ); % the EEG here contains remaining channels that are not labelled as noisy
> 	• Epoch, baseline removal
> 	• ICA

If EOG is not included in the average reference then do not include it into ICA either - we usually record EOG with the same reference as the scalp data and include it in the average reference and ICA. In your case, if you include EOG, ICA will dedicate at least a component to try to account for the reference difference between EOG and the scalp data. It is possible that the ICA components will be able to counteract the fact you have different references but it is also possible that it will fail - and it will be hard for you know to know the difference. A formal study on this topic would be welcomed.

Best wishes,

Arno

>  Regards,
> Gladys
>  
> From: Delorme, Arnaud
> Sent: Thursday, February 13, 2020 1:11 AM
> Cc: EEGLAB List
> Subject: Re: [Eeglablist] Regarding .fdt files
>  
> Dear Gladys,
> 
> > A couple of weeks back, I added and updated some plugins to EEGlab. It seems like after this, the .fdt files are not automatically generated after I save a file – it only saves a .set file. And I was wondering if this is usual, or there might be some issues that I should look into?
> 
> EEGLAB datasets can be saved as one file (.set file which is simply a Matlab file with a the extension changed) that embeds the data, or the raw data can be saved as .fdt (raw binary floating point precision file) and a small .set file containing the metadata. The data is the same. The reason for doing so was/is disk access when processing groups of files. It is faster to have 2 files, because the metadata can be loaded faster.
> 
> Which plugin do you think modify EEGLAB behavior. The behavior can be changed using menu item EEGLAB > Preferences (or in your version EEGLAB > Memory options).
> 
> > In addition, runica also gives a different message. Before the additions/updates to the plugins, runica has been returning the same number of components as per channels (it shows a message: “Fixing rank computation inconsistency (60 vs 59) most likely because running under Linux 64-bit Matlab”).
> > 
> > However, runica now shows this pop-up “attempting to convert data matrix to double precision for more accurate ICA results. Data rank (59) is smaller than no. of channels (60).” and eventually computes 59 ICs. My preprocessing steps before ICA remained similar, and hence I was wondering why this message appears now?
> 
> If you compute average reference, then the rank of the data is being decreased by 1 (so 59 instead of 60). If you do not compute average reference, and the reference is not included in the list of channels, then the rank does not need to be decreased. Rank is a hard thing to calculate and there are sometimes numerical instabilities, hence the message you are seeing.
> 
> Best wishes,
> 
> Arno
> _______________________________________________
> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.ucsd.edu
> For digest mode, send an email with the subject "set digest mime" to eeglablist-request at sccn.ucsd.edu



More information about the eeglablist mailing list