[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