[Eeglablist] AMICA on semicontinuous data

Makoto Miyakoshi mmiyakoshi at ucsd.edu
Wed Apr 16 11:06:33 PDT 2014


To simply trim out all +/-150 uV, for sample, from all channel all
dataponts, use trimOutlier.
http://sccn.ucsd.edu/wiki/Plugin_list_process

Makoto


2014-04-09 13:10 GMT-07:00 Jason Palmer <japalmer29 at gmail.com>:

> Dear Tatu,
>
> Apparently that data is causing a "stack overflow", which can occur with
> large datasets using the Windows version (which forces a maximum stack
> size). It may be just small enough with the block of data removed. However,
> since it also contains large artifacts, this probably contributes to the
> need for addition stack resources. The Mac and Linux versions should not
> have this issue.
>
> I typically remove large artifacts before running ICA by simply detecting
> timepoints where the potential magnitude is greater than say  150uV, and
> use
> pop_select.m to remove them. Or if the boundary events are always at the
> beginning/end, or known locations, you can use pop_select to remove them as
> well. Or you could search for boundary events and remove continuous section
> around the boundaries.
>
> FYI, I usually remove bad channels with simple heuristics, do average
> reference,  and high-pass filter above 1 Hz as the remaining
> pre-processing.
>
> Best,
> Jason
>
> -----Original Message-----
> From: eeglablist-bounces at sccn.ucsd.edu
> [mailto:eeglablist-bounces at sccn.ucsd.edu] On Behalf Of Tatu Huovilainen
> Sent: Wednesday, April 09, 2014 1:47 AM
> To: eeglablist at sccn.ucsd.edu
> Subject: [Eeglablist] AMICA on semicontinuous data
>
> Hello EEGlab community,
>
> I'm still somewhat new to EEGlab, but the features and their documentation
> have made it really easy to hop on. Still, I've run into a problem I don't
> have the knowhow to solve and the documentation on it is pretty scarce.
>
> I'm using AMICA for cleaning the data, which works unbelievably well by the
> way, but I've learned that if there's even one boundary event in the data
> the program crashes. This is problematic as some of the blocks I'm trying
> to
> run ICA on have some ~10 second windows with huge artefacts that have to be
> removed. Below is an output of the AMICA command. It's from a block that
> without a removed part would run through perfectly well.
>
> Has anyone encountered this before, and is there maybe some simple
> workaround I don't see?
>
> Any advice would be appreciated. Thank you in advance!
>
> -Tatu
>
> (Using Matlab R2012a & EEGlab 13.1.1
> [ EEG.icaweights, EEG.icasphere, mods ] = runamica12(
> EEG.data(chanInd('EEG'),:) );  %%% The chanInd('EEG') just returns a list
> of
> channels of the type.
> The system cannot find the path specified.
> The system cannot find the path specified.
> The system cannot find the path specified.
> No recognized parallel environment found. Run qconf -spl to get a list of
> available environments and use keyword use_pe.
> Running locally with maximum of 4 threads.
> Writing data file: D:\Tatu\AMICATMP\tmpdata61471.fdt
>             1 processor name = XXXXXX
>             1 host_num =   1376903278
>   This is MPI process           1 of           1 ; I am process           1
> of
>             1 on node: XXXXXX %Post removed, probably no need..
>             1  : node root process           1 of           1
> Processing arguments ...
>   num_files =            1
>   FILES:
>   D:\Tatu\AMICATMP\tmpdata61471.fdt
>   num_dir_files =            1
>   initial matrix block_size =          256
>   do_opt_block =            0
>   number of models =            1
>   number of density mixture components =            3
>   pdf type =            0
>   max_iter =         2000
>   num_samples =            1
>   data_dim =          134
>   field_dim =       382975
>   do_history =            0
>   histstep =           10
>   share_comps =            0
>   share_start =          100
>   comp_thresh =   0.990000000000000
>   share_int =          100
>   initial lrate =   5.000000000000000E-002
>   minimum lrate =   1.000000000000000E-008
>   lrate factor =   0.500000000000000
>   initial rholrate =   5.000000000000000E-002
>   rho0 =    1.50000000000000
>   min rho =    1.00000000000000
>   max rho =    2.00000000000000
>   rho lrate factor =   0.500000000000000
>   kurt_start =            3
>   num kurt =            5
>   kurt interval =            1
>   do_newton =            1
>   newt_start =           50
>   newt_ramp =           10
>   initial newton lrate =    1.00000000000000
>   do_reject =            0
>   num reject =            3
>   reject sigma =    3.00000000000000
>   reject start =            2
>   reject interval =            3
>   max_thrds =            2
>   write step =           10
>   write_nd =            0
>   write_LLt =            1
>   dec window =            1
>   max_decs =            3
>   fix_init =            0
>   update_A =            1
>   update_c =            1
>   update_gm =            1
>   update_alpha =            1
>   update_mu =            1
>   update_beta =            1
>   invsigmax =    100.000000000000
>   invsigmin =   0.000000000000000E+000
>   do_rho =            1
>   load_rej =            0
>   load_c =            0
>   load_gm =            0
>   load_alpha =            0
>   load_mu =            0
>   load_beta =            0
>   load_rho =            0
>   load_comp_list =            0
>   do_mean =            1
>   do_sphere =            1
>   doPCA =            1
>   pcakeep =          134
>   pcadb =    30.0000000000000
>   byte_size =            4
>   doscaling =            1
>   scalestep =            1
> A subdirectory or file D:\Tatu\AMICATMP\amicaouttmp\ already exists.
>   output directory = D:\Tatu\AMICATMP\amicaouttmp\
>             1 : setting num_thrds to            2  ...
>             1 : using           2 threads.
>             1 : node_thrds =            2
>   bytes in real =            1
>             1 : REAL nbyte =            1
>   getting segment list ...
>   blocks in sample =       382975
>   total blocks =       382975
>   node blocks =       382975
>   node            1  start: file            1  sample            1  index
>             1
>   node            1  stop : file            1  sample            1  index
>        382975
>             1 : data =    19.4008998870850        8.51673507690430
>   getting the mean ...
>    mean =   -1.38158794941323       9.108994773376549E-003
>   -9.745015379274158E-003
>   subtracting the mean ...
>   getting the sphering matrix ...
>   cnt =       382975
>   doing eig nx =          134  lwork =       179560
>   minimum eigenvalues =    1.32521304789175        1.60365130875427
>     1.83976537562973
>   maximum eigenvalues =    287079.512877785        8402.99938147310
>     4669.66292334350
>   num eigs kept =          134
>   numeigs =          134
>   sphering the data ...
>             1 Allocating variables ...
>             1 : Initializing variables ...
>             1 : block size =          256
>             1 : entering the main loop ...
> forrtl: severe (170): Program Exception - stack overflow
> Image              PC                Routine            Line        Source
> amica12win64.exe   000000013FCEE047  Unknown               Unknown  Unknown
> amica12win64.exe   000000013FC55847  Unknown               Unknown  Unknown
> libiomp5md.dll     000000001007BC0C  Unknown               Unknown  Unknown
> libiomp5md.dll     000000001005C428  Unknown               Unknown  Unknown
> libiomp5md.dll     0000000010053BC8  Unknown               Unknown  Unknown
> libiomp5md.dll     000000001003591C  Unknown               Unknown  Unknown
> amica12win64.exe   000000013FC41A35  Unknown               Unknown  Unknown
> amica12win64.exe   000000013FC1447C  Unknown               Unknown  Unknown
> amica12win64.exe   000000014008F42C  Unknown               Unknown  Unknown
> amica12win64.exe   000000013FCEE56F  Unknown               Unknown  Unknown
> kernel32.dll       0000000076CA652D  Unknown               Unknown  Unknown
> ntdll.dll          0000000076DDC541  Unknown               Unknown  Unknown
> No gm present, setting num_models to 1
> No W present, exiting
> Reference to non-existent field 'W'.
>
> Error in runamica12 (line 851)
>      weights = mods.W(:,:,1);
>
> --------------------------------
> Tatu Huovilainen
> Research Assistant
> CBRU - Helsinki University
>
> _______________________________________________
> 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
>
> _______________________________________________
> 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
>



-- 
Makoto Miyakoshi
Swartz Center for Computational Neuroscience
Institute for Neural Computation, University of California San Diego
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20140416/dfc07662/attachment.html>


More information about the eeglablist mailing list