Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Error computing ICA during blink correction

Help
Isaac
2012-06-02
2013-02-26
  • Isaac
    Isaac
    2012-06-02

    I am trying to preprocess the example dataset in the tuturial, but I'm receiving an error during the ICA blink correction procedure (see below).  I followed the tutorial (including installation and settings step-by-step), so I'm not sure what the problems is.  The error suggests to me that there may be NAs or inf in the data that it cannot handle, but that seems odd given that it's the example data set provided.  I even tried blink correction with my own EGIS data from NetStation, but I receive the same error.  Any ideas?

    __________________________________________________________________________________
    C:\Program Files\MATLAB\R2012a\eeg programs\eeglab11_0_2_1b\external\fileio\ft_read_header.m
    C:\Program Files\MATLAB\R2012a\eeg programs\eeglab11_0_2_1b\functions\sigprocfunc\runica.m
    Warning: You have a binary ICA program installed.  The file is called: ica_linux
    There is not currently one that is appropriate for Windows.
    Warning: You have a binary ICA program installed.  The file is called: ica_linux
    There is not currently one that is appropriate for Windows.
    Binary ICA does not work if any part of the pathname (C:\Program Files\MATLAB\R2012a\bin) has a space in it.
    Will use regular ICA instead.
    Warning: You have a binary ICA program installed.  The file is called: ica_linux
    There is not currently one that is appropriate for Windows.

    Warning: shorted channels: E125-E126; E125-E127; E126-E127; E126-E128; E127-E128;
    Fixing eyeblinks.

    Input data size  = 129 channels, 45000 frames/nFinding 129 ICA components using logistic ICA.
    Decomposing 2 frames per ICA weight ((16641)^2 = 45000 weights, Initial learning rate will be 0.00013375, block size 54.
    Learning rate will be multiplied by 0.9 whenever angledelta >= 60 deg.
    More than 32 channels: default stopping weight change 1E-7
    Training will end when wchange < 1e-07 or after 512 steps.
    Online bias adjustment will be used.
    Removing mean of each channel …
    Final training data range: -1023.42 to 1048.16
    Computing the sphering matrix…
    Warning: Matrix is singular and may not have a square root.
    > In sqrtm at 60
      In runica at 706
      In ep_fixBlink at 496
      In ep_artifactCorrection at 1303
      In ep at 1007
    Warning: Matrix is singular to working precision.
    > In runica at 706
      In ep_fixBlink at 496
      In ep_artifactCorrection at 1303
      In ep at 1007
    Starting weights are the identity matrix …
    Sphering the data …
    Beginning ICA training …

    **************************************************************
    Error computing ICA.  The error message was:Error using svd
    Input to SVD must not contain NaN or Inf.
    **************************************************************
    __________________________________________________________________________________

    Here are my file versions:

    MATLAB Version: 7.14.0.739 (R2012a)
    Operating System: Microsoft Windows 7 Version 6.1 (Build 7601: Service Pack 1)
    Java Version: Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode


    MATLAB                                                        Version 7.14       (R2012a)
    ERP PCA Toolbox                                       Version 2.23
    FastICA for Matlab 7.x and 6.x                 Version 2.5,       October 19

    I have Windows -64 bit, EEGlab 11.0.2.1b, and FieldTrip 20120601.

    Many thanks!

     
  • Joe Dien
    Joe Dien
    2012-06-02

    It says your data is singular, meaning that at least one column is informationally redundant or empty.  I assume you're using a 129-channel EGI dataset from the messages.  What did you indicate for the reference channel in the preprocessing pane?  If you didn't indicate channel 129 is the reference, that could account for the problem.

     
  • Isaac
    Isaac
    2012-06-02

    Thanks for the quick response.  The data are from the the tutorial, and the tutorial says that the data are referenced implicitly, and therefore "No Ref" should be used:

    "In this tutorial dataset Cz was used as the recording reference and is
    present only implicitly and so "no ref" should be used. It will be added back in later on
    when the data is rereferenced to average reference. For those using NetStation, it
    normally represents the reference channel (Cz) implicitly in session files until they are
    either averaged or rereferenced so you would choose "no ref"."

    Nevertheless, you were correct that adding in a reference would eliminate the error.  The error went away when I chose the default reference.  Is this okay even though the reference is implicitly in the data?  For example, when using NetStation data, should I choose "no ref" or another option?  I really appreciate the help.

     
  • Joe Dien
    Joe Dien
    2012-06-03

    Oh yeah, that's a known glitch in the tutorial.  It didn't get updated to reflect a software change.  Sorry about that!  I've got a new update (long delayed) coming out that will fix that, probably in the next couple weeks.  I'm stomping out a host of bugs at the moment.  Almost there!