[Eeglablist] Running AMICA

Jason Palmer japalmer29 at gmail.com
Tue May 22 13:53:24 PDT 2012


Hi Tom,

 

Could you try setting the flag do_opt_block = 0, in runamica12.m?  Or
download the most recent runamica12.m which has this as default (and as a
flag option):

 

http://sccn.ucsd.edu/~jason/amica12/runamica12.m.

 

It seems to be dying when determining the block size (trying different size
blocks).

 

Also, the eigenvalues of the data seem to indicate that the data is not
conditioned very well. You might consider removing bad channels, then doing
average reference,  then high pass filtering first in eeglab if you haven't
already:

 

                % . remove bad channels .

                EEG = pop_reref( EEG, 'average' );

                EEG = pop_eegfilt( EEG, 1.0, 0, [], [0] );

                [EEG.icaweights, EEG.icasphere, mods] = runamica12(
EEG.data(:,:) );

 

Best,

Jason

                

 

From: Tom Campbell [mailto:tom_campbell75 at hotmail.com] 
Sent: Tuesday, May 22, 2012 8:59 AM
To: japalmer at ucsd.edu; send2zohre at yahoo.com; eeglab list; Katsumi Minakata
Subject: RE: [Eeglablist] Running AMICA

 


Hello, In case recent developments helped, I ran an svn update of EEGLAB and
then tried this under windows 7, 64-bit with 7.11.0.584 (R2010b) using
amica12 of 3rd March, 2012 :
 
>> [EEG.icaweights, EEG.icasphere, mods] = runamica12(EEG.data(:,:));
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 ...
Writing data file: C:\tom\MotParEEG\code\tmpdata39223.fdt
A subdirectory or file C:\tom\MotParEEG\code\amicaouttmp\ already exists. 
           1 processor name = cvcn-PC.psydomain.psych.ndsu.nodak.edu 
           1 host_num =   -988751630 
 This is MPI process           1 of           1 ; I am process           1
of 
           1 on node: cvcn-PC.psydomain.psych.ndsu.nodak.edu 
           1  : node root process           1 of           1 
Processing arguments ... 
 num_files =            1 
 FILES:  
 C:\tom\MotParEEG\code\tmpdata39223.fdt 
 num_dir_files =            1 
 initial matrix block_size =          128 
 do_opt_block =            1 
 number of models =            1 
 number of density mixture components =            3 
 pdf type =            0 
 max_iter =         2000 
 num_samples =            1 
 data_dim =          168 
 field_dim =       630432 
 do_history =            0 
 histstep =           10 
 share_comps =            0 
 share_start =          100 
 comp_thresh =   0.990000000000000      
 share_int =          100 
 initial lrate =   0.100000000000000      
 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 
 pcadb =    30.0000000000000      
 byte_size =            4 
 doscaling =            1 
 scalestep =            1 
A subdirectory or file C:\tom\MotParEEG\code\amicaouttmp\ already exists. 
 output directory = C:\tom\MotParEEG\code\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 =       630432 
 total blocks =       630432 
 node blocks =       630432 
 node            1  start: file            1  sample            1  index  
           1 
 node            1  stop : file            1  sample            1  index  
      630432 
           1 : data =    1.56996321678162        4.14537906646729      
 getting the mean ... 
  mean =    17.8814622999107        4.04874815379699      
   4.16267016630081      
 subtracting the mean ... 
 getting the sphering matrix ... 
 cnt =       630432 
 doing eig nx =          168  lwork =       282240 
 minimum eigenvalues =  -1.057109602531463E-008 -2.148912456381678E-011 
  5.144711324023235E-012 
 maximum eigenvalues =    161054352.523510        102447610.050744      
   1207240.45212326      
 num eigs kept =          166 
 numeigs =          166 
 sphering the data ... 
           1 Allocating variables ... 
           1 : Initializing variables ... 
           1 : Determining optimal block size .... 
 

 {There is then a popup that says amica12win64.exe has stopped working, with
a cancel box, followed by a similar box with a close program button}

 

On pressing 'close program' there is then the error:

 

No gm present, setting num_models to 1
No W present, exiting
??? Reference to non-existent field 'W'.
Error in ==> runamica12 at 858
    weights = mods.W(:,:,1);
 
A similar problem happens with runamica12 using epoched or continuous data.
I previously tried using the dos version of the program and tinkering with
the parameters in the .param with more success (this may be rather unwise
for the uninitiated like myself when runamica12 might do this rather
better), but with some .fdt, I found AMICA will not process that data with
many different errors depending on the choice of parameters, when infomax
will process the same data.   
 
I really don't want to give up on this as done properly I can see it is
about the best way to do ica of EEG. Hoping for a simple fix...

 

Best regards,

Tom

 

  _____  

From:  <mailto:japalmer29 at gmail.com> japalmer29 at gmail.com
To:  <mailto:send2zohre at yahoo.com> send2zohre at yahoo.com;
<mailto:eeglablist at sccn.ucsd.edu> eeglablist at sccn.ucsd.edu
Date: Tue, 22 May 2012 00:05:43 -0700
Subject: Re: [Eeglablist] Running AMICA

Hi Zohre,

 

The matlab programs amica_ex.m and amica10.m are mainly for demo purposes.
If you use runamica12.m ( <http://sccn.ucsd.edu/~jason/amica_web.html>
http://sccn.ucsd.edu/~jason/amica_web.html ) to run one of the binaries, the
following should load the output into eeglab:

 

                >> [EEG.icaweights, EEG.icasphere, mods] =
runamica12(EEG.data(:,:));

                >> EEG = eeg_checkset(EEG);

                >> eeglab redraw

 

Runamica12.m tries to figure out if you're running pc, mac, or linux, and
use the appropriate 32 bit or 64 bit version (assuming you downloaded one of
these from the links on the webpage.)

 

Best,

Jason

 

From:  <mailto:eeglablist-bounces at sccn.ucsd.edu>
eeglablist-bounces at sccn.ucsd.edu
<mailto:[mailto:eeglablist-bounces at sccn.ucsd.edu]>
[mailto:eeglablist-bounces at sccn.ucsd.edu] On Behalf Of Zohre Zakeri
Sent: Friday, May 18, 2012 8:48 AM
To:  <mailto:eeglablist at sccn.ucsd.edu> eeglablist at sccn.ucsd.edu
Subject: [Eeglablist] Running AMICA

 

Hi all,

 

I am trying to run AMICA algorithm in matlab on EEG data.

I found amica_ex.m and amica10.m (which is older).

I also used this command to get the components, which I found in the websie:

 

                EEG.icawinv=pinv(EEG.icaweights);
                EEG.icasphere = eye(size(EEG.icaweights));
                [EEG.icaact] = eeg_getica(EEG,1:EEG.nbchan);

 

however, it doesn't work and I don't have any idea to work with this
algorithm and get

independent components as outpt.

 

can anyone help?

 

Thanks all,

zohre

 


_______________________________________________ Eeglablist page:
<http://sccn.ucsd.edu/eeglab/eeglabmail.html>
http://sccn.ucsd.edu/eeglab/eeglabmail.html To unsubscribe, send an empty
email to  <mailto:eeglablist-unsubscribe at sccn.ucsd.edu>
eeglablist-unsubscribe at sccn.ucsd.edu For digest mode, send an email with the
subject "set digest mime" to  <mailto:eeglablist-request at sccn.ucsd.edu>
eeglablist-request at sccn.ucsd.edu

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20120522/07d5d279/attachment.html>


More information about the eeglablist mailing list