[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