sccn / amica

Code for AMICA: Adaptive Mixture ICA with shared components
BSD 2-Clause "Simplified" License
23 stars 13 forks source link

Issue with mpich #10

Open Jazelle759 opened 5 years ago

Jazelle759 commented 5 years ago

Dear Dr. Jason Palmer,

I am having some issues with amica and would really appreciate if you could help me with this.

I've installed mpich using mpich2-1.4-win-x86-64.msi as an administrator and am trying to run some codes by Makoto.

I keep encountering the following errors as well as a pop up asking me to install mpich.

Errors:

 Error: num_samples entries is less than num_files in paramfile 
No gm present, setting num_models to 1
No W present, exiting
Reference to non-existent field 'W'.

Error in runamica15 (line 892)
    weights = mods.W(:,:,1);

Screenshot of pop up: image

I am using EEGLAB v14.1.1, MATLAB R2016a on a 64bit machine and I open MATLAB as an administrator.

The codes I am trying to run are:

if isfield(EEG.etc, 'clean_channel_mask')
        dataRank = min([rank(double(EEG.data')) sum(EEG.etc.clean_channel_mask)]);
    else
        dataRank = rank(double(EEG.data'));
    end
    runamica15(EEG.data, 'num_chans', EEG.nbchan,...
        'outdir', 'C:\amicaResults\' ,...
        'pcakeep', dataRank, 'num_models', 1,...
        'do_reject', 1, 'numrej', 15, 'rejsig', 3, 'rejint', 1);
    EEG.etc.amica  = loadmodout15('C:\amicaResults\' );
    EEG.etc.amica.S = EEG.etc.amica.S(1:EEG.etc.amica.num_pcs, :);  % Weirdly, I saw size(S,1) be larger than rank. This process does not hurt anyway.
    EEG.icaweights = EEG.etc.amica.W;
    EEG.icasphere  = EEG.etc.amica.S;
    EEG = eeg_checkset(EEG, 'ica');

Thank you in advance for your help.

japalmer29 commented 5 years ago

Hi Jazelle, Could you send the complete text output (on Matlab command line), which shows all the parameter settings? Thanks, Jason

On Wed, Feb 13, 2019, 8:45 PM Jazelle759 <notifications@github.com wrote:

Dear Dr. Jason Palmer,

I am having some issues with amica and would really appreciate if you could help me with this.

I've installed mpich using mpich2-1.4-win-x86-64.msi as an administrator and am trying to run some codes by Makoto.

I keep encountering the following errors as well as a pop up asking me to install mpich.

Errors:

Error: num_samples entries is less than num_files in paramfile No gm present, setting num_models to 1 No W present, exiting Reference to non-existent field 'W'.

Error in runamica15 (line 892) weights = mods.W(:,:,1);

Screenshot of pop up: [image: image] https://user-images.githubusercontent.com/35135298/52704630-df301f80-2fe5-11e9-850f-e8f0a1143f0b.png

I am using EEGLAB v14.1.1, MATLAB R2016a on a 64bit machine and I open MATLAB as an administrator.

The codes I am trying to run are:

if isfield(EEG.etc, 'clean_channel_mask') dataRank = min([rank(double(EEG.data')) sum(EEG.etc.clean_channel_mask)]); else dataRank = rank(double(EEG.data')); end runamica15(EEG.data, 'num_chans', EEG.nbchan,... 'outdir', 'C:\amicaResults\' ,... 'pcakeep', dataRank, 'num_models', 1,... 'do_reject', 1, 'numrej', 15, 'rejsig', 3, 'rejint', 1); EEG.etc.amica = loadmodout15('C:\amicaResults\' ); EEG.etc.amica.S = EEG.etc.amica.S(1:EEG.etc.amica.num_pcs, :); % Weirdly, I saw size(S,1) be larger than rank. This process does not hurt anyway. EEG.icaweights = EEG.etc.amica.W; EEG.icasphere = EEG.etc.amica.S; EEG = eeg_checkset(EEG, 'ica');

Thank you in advance for your help.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/10, or mute the thread https://github.com/notifications/unsubscribe-auth/AKISSt78GKN4fGpSrpiHZV4-PNOhv4WAks5vM_rLgaJpZM4a5Obu .

Jazelle759 commented 5 years ago

Hi Dr Palmer,

Thanks for the quick reply. Please see below the complete text output on MATLAB command window.

Writing data file: C:\Analysis\tmpdata81472.fdt
A subdirectory or file C:\amicaResults\ already exists. 
           1 processor name = LAPTOP-RNS6O05B 
           1 host_num =   1682198720 
 This is MPI process           1 of           1 ; I am process           1 of 
           1 on node: LAPTOP-RNS6O05B 
           1  : node root process           1 of           1 
Processing arguments ... 
 num_files =            4 
 FILES:  
 C:\Analysis\tmpdata81472.fdt
 num_dir_files =            1           1           1           1 
 initial matrix block_size =          128 
 do_opt_block =            0 
 blk_min =          256 
 blk_step =          256 
 blk_max =         1024 
 number of models =            1 
 max_thrds =            2 
 use_min_dll =            1 
 min dll =   1.000000000000000E-009 
 use_grad_norm =            1 
 min grad norm =   1.000000000000000E-007 
 number of density mixture components =            3 
 pdf type =            0 
 max_iter =         2000 
 Error: num_samples entries is less than num_files in paramfile 
No gm present, setting num_models to 1
No W present, exiting
Reference to non-existent field 'W'.

Error in runamica15 (line 892)
    weights = mods.W(:,:,1);
japalmer29 commented 5 years ago

Hi Jazelle,

For some reason Amica thinks there are 4 files of input data, instead of 1 as it should be. I’m not sure how this is happening, since the FILES argument should be the same that is output as “C:\Analysis\tempdata…fdt”. Maybe you could put a breakpoint in the file runamica15.m where it says “file = “, and then step past that line and check the value of the “file” variable in the matlab debugger command line. Somehow this seems to be getting 4 text tokens separated by white space.

But I also think you could simplify the process and probably avoid this error. Make sure you have the matlab code from http://sccn.ucsd.edu/~jason/amica_web.html or the amica plugin in eeglab. Then you can just use these commands (the rank and pcakeep and loading commands are not necessary):

% save the data and fill datfile field in EEG

EEG = pop_saveset(EEG,[pwd '/mydata.set']);

% run amica with blocksize optimization and rejection

runamica15(EEG,'outdir',[pwd '/amicaout'],'do_opt_block',1, 'num_models', 1, ...

    'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ...    

    'max_iter',2500,'writestep',50);

% load the amica results into EEG

EEG = eeg_loadamica(EEG,'./amicaout');

Best,

Jason

From: Jazelle759 [mailto:notifications@github.com] Sent: Thursday, February 14, 2019 7:38 AM To: japalmer29/amic Cc: Jason Palmer; Comment Subject: Re: [japalmer29/amica] Issue with mpich (#10)

Hi Dr Palmer,

Thanks for the quick reply. Please see below the complete text output on MATLAB command window.

Writing data file: C:\Analysis\tmpdata81472.fdt A subdirectory or file C:\amicaResults\ already exists. 1 processor name = LAPTOP-RNS6O05B 1 host_num = 1682198720 This is MPI process 1 of 1 ; I am process 1 of 1 on node: LAPTOP-RNS6O05B 1 : node root process 1 of 1 Processing arguments ... num_files = 4 FILES:
C:\Analysis\tmpdata81472.fdt num_dir_files = 1 1 1 1 initial matrix block_size = 128 do_opt_block = 0 blk_min = 256 blk_step = 256 blk_max = 1024 number of models = 1 max_thrds = 2 use_min_dll = 1 min dll = 1.000000000000000E-009 use_grad_norm = 1 min grad norm = 1.000000000000000E-007 number of density mixture components = 3 pdf type = 0 max_iter = 2000 Error: num_samples entries is less than num_files in paramfile No gm present, setting num_models to 1 No W present, exiting Reference to non-existent field 'W'.

Error in runamica15 (line 892) weights = mods.W(:,:,1);

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/10#issuecomment-463404470 , or mute the thread https://github.com/notifications/unsubscribe-auth/AKISSlKUedObR-CNHvep4OeTMQEHvFXfks5vNJPTgaJpZM4a5Obu . https://github.com/notifications/beacon/AKISShJaXahpOIXKJBpKDb0YVD368ykaks5vNJPTgaJpZM4a5Obu.gif

Jazelle759 commented 5 years ago

Hi Dr Palmer,

At first, I changed my codes to:

runamica15(EEG.data,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 
    'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 
    'max_iter',2500,'writestep',50); 
% load the amica results into EEG 
EEG.data = eeg_loadamica(EEG.data,participantAmicaFolder);

then I realized eeg_loadamica 1st input variable needs to be EEG not EEG.data, so I changed it to

runamica15(EEG.data,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 
    'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 
    'max_iter',2500,'writestep',50); 
% load the amica results into EEG 
EEG = eeg_loadamica(EEG,participantAmicaFolder);

then it seems to work so I tried to reload eeglab, reload the file before I ran AMICA to retry running the whole script, and I encountered error again. I retried again after restarting eeglab and I keep coming up with this same error again.

Reference to non-existent field 'W'.

Error in runamica15 (line 892)
    weights = mods.W(:,:,1);

You can see the whole process in the attached txt file. log.txt

What is pcakeep and why is it optional?

Thank you so much for your help so far! I very much appreciate it!

japalmer29 commented 5 years ago

Hi Jazelle,

The Files problem is gone, but now it seems there is problem with the data. The mean has NaNs. Could you check the data with any(isnan(EEG.data(:))). Also, the first argument to runamica15 should just be EEG, not EEG.data.

Jason

On Sun, Feb 17, 2019, 10:30 AM Jazelle759 <notifications@github.com wrote:

Hi Dr Palmer,

At first, I changed my codes to:

runamica15(EEG.data,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 'max_iter',2500,'writestep',50); % load the amica results into EEG EEG.data = eeg_loadamica(EEG.data,participantAmicaFolder);

then I realized eeg_loadamica 1st input variable needs to be EEG not EEG.data, so I changed it to

runamica15(EEG.data,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 'max_iter',2500,'writestep',50); % load the amica results into EEG EEG = eeg_loadamica(EEG,participantAmicaFolder);

then it seems to work so I tried to reload eeglab, reload the file before I ran AMICA to retry running the whole script, and I encountered error again. I retried again after restarting eeglab and I keep coming up with this same error again.

Reference to non-existent field 'W'.

Error in runamica15 (line 892) weights = mods.W(:,:,1);

You can see the whole process in the attached txt file. log.txt https://github.com/japalmer29/amica/files/2872575/log.txt

What is pcakeep and why is it optional?

Thank you so much for your help so far! I very much appreciate it!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/10#issuecomment-464405991, or mute the thread https://github.com/notifications/unsubscribe-auth/AKISStfzeJJPBmcp1tUsW3gr6HgUbInVks5vOLDCgaJpZM4a5Obu .

Jazelle759 commented 5 years ago

Hey Dr Palmer,

>> any(isnan(EEG.data(:)))

ans =

     0

When I use EEG, I get the mean = NaN , while there are values when I use EEG.data instead.

>> runamica15(EEG,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 
    'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 
    'max_iter',2500,'writestep',50); 
% load the amica results into EEG 
EEG = eeg_loadamica(EEG,participantAmicaFolder);

A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 
           1 processor name = LAPTOP-RNS6O05B 
           1 host_num =   1682198720 
 This is MPI process           1 of           1 ; I am process           1 of 
           1 on node: LAPTOP-RNS6O05B 
           1  : node root process           1 of           1 
Processing arguments ... 
 num_files =            1 
 FILES:  
 C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef 
 \\Participant01_AveRef.set 
 num_dir_files =            1 
 initial matrix block_size =          128 
 do_opt_block =            1 
 blk_min =          256 
 blk_step =          256 
 blk_max =         1024 
 number of models =            1 
 max_thrds =            2 
 use_min_dll =            1 
 min dll =   1.000000000000000E-009 
 use_grad_norm =            1 
 min grad norm =   1.000000000000000E-007 
 number of density mixture components =            3 
 pdf type =            0 
 max_iter =         2500 
 num_samples =            1 
 data_dim =          128 
 field_dim =       826525 
 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 
 minimum data covariance eigenvalue =   1.000000000000000E-012 
 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 =            1 
 num reject =           15 
 reject sigma =    3.00000000000000      
 reject start =            1 
 reject interval =            1 
 write step =           50 
 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 
 pcakeep =          128 
 pcadb =    30.0000000000000      
 byte_size =            4 
 doscaling =            1 
 scalestep =            1 
A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 
 output directory =  
 C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaR 
 esults\Participant01\ 
           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 =       826525 
 total blocks =       826525 
 node blocks =       826525 
 node            1  start: file            1  sample            1  index  
           1 
 node            1  stop : file            1  sample            1  index  
      826525 
           1 : data =    55641396.0000000       9.552169103699271E-006 
 getting the mean ... 
  mean =  NaN                     NaN                     
 NaN                     
 subtracting the mean ... 
 getting the covariance matrix ... 
 cnt =       826525 
 doing eig nx =          128  lwork =       163840 
Error doing eigenvalue decomposition!!! 
 num eigs kept =            0 
 getting the sphering matrix ... 
Error doing eigenvalue decomposition!!! 
 num eigs kept =            0 

MKL ERROR: Parameter 13 was incorrect on entry to DGEMM  

MKL ERROR: Parameter 8 was incorrect on entry to DGEMM  
 sphering the data ... 
 numeigs =            0 

MKL ERROR: Parameter 9 was incorrect on entry to DGESVD 

MKL ERROR: Parameter 8 was incorrect on entry to DGEMM  
           1 : Allocating variables ... 
           1 : Initializing variables ... 

MKL ERROR: Parameter 4 was incorrect on entry to DGETRF 
forrtl: severe (157): Program Exception - access violation  
Image              PC                Routine            Line        Source              
amica15mkl.exe     00007FF7C5BB65EF  Unknown               Unknown  Unknown 
amica15mkl.exe     00007FF7C5B8E75B  Unknown               Unknown  Unknown 
amica15mkl.exe     00007FF7C5B5D859  Unknown               Unknown  Unknown 
amica15mkl.exe     00007FF7C5FDC18C  Unknown               Unknown  Unknown 
amica15mkl.exe     00007FF7C5C3B24F  Unknown               Unknown  Unknown 
KERNEL32.DLL       00007FFA44113DC4  Unknown               Unknown  Unknown 
ntdll.dll          00007FFA44273691  Unknown               Unknown  Unknown 
No gm present, setting num_models to 1
No W present, exiting
Reference to non-existent field 'W'.

Error in runamica15 (line 892)
    weights = mods.W(:,:,1);
>> runamica15(EEG.data,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 
    'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 
    'max_iter',2500,'writestep',50); 
% load the amica results into EEG 
EEG = eeg_loadamica(EEG,participantAmicaFolder);
Writing data file: C:\Users\Jazelle\Desktop\Experiment\ExperimentAnalysis\tmpdata63236.fdt
A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 
           1 processor name = LAPTOP-RNS6O05B 
           1 host_num =   1682198720 
 This is MPI process           1 of           1 ; I am process           1 of 
           1 on node: LAPTOP-RNS6O05B 
           1  : node root process           1 of           1 
Processing arguments ... 
 num_files =            1 
 FILES:  
 C:\Users\Jazelle\Desktop\Experiment\ExperimentAnalysis\tmpdata63236.fdt 
 num_dir_files =            1 
 initial matrix block_size =          128 
 do_opt_block =            1 
 blk_min =          256 
 blk_step =          256 
 blk_max =         1024 
 number of models =            1 
 max_thrds =            2 
 use_min_dll =            1 
 min dll =   1.000000000000000E-009 
 use_grad_norm =            1 
 min grad norm =   1.000000000000000E-007 
 number of density mixture components =            3 
 pdf type =            0 
 max_iter =         2500 
 num_samples =            1 
 data_dim =          128 
 field_dim =       826525 
 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 
 minimum data covariance eigenvalue =   1.000000000000000E-012 
 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 =            1 
 num reject =           15 
 reject sigma =    3.00000000000000      
 reject start =            1 
 reject interval =            1 
 write step =           50 
 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 
 pcakeep =          128 
 pcadb =    30.0000000000000      
 byte_size =            4 
 doscaling =            1 
 scalestep =            1 
A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 
 output directory =  
 C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaR 
 esults\Participant01\ 
           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 =       826525 
 total blocks =       826525 
 node blocks =       826525 
 node            1  start: file            1  sample            1  index  
           1 
 node            1  stop : file            1  sample            1  index  
      826525 
           1 : data =    5.66509771347046       0.897219359874725      
 getting the mean ... 
  mean =  -2.465582641069445E-002 -6.649327648029919E-002 
 -8.313021872202728E-002 
 subtracting the mean ... 
 getting the covariance matrix ... 
 cnt =       826525 
 doing eig nx =          128  lwork =       163840 
 minimum eigenvalues =  -6.844702957777817E-013 -2.003152265693854E-013 
  2.477480847177622E-013 
 maximum eigenvalues =    3040.04644502642        842.308374713901      
   684.480322075794      
 num eigs kept =          124 
 getting the sphering matrix ... 
 minimum eigenvalues =  -6.844702957777817E-013 -2.003152265693854E-013 
  2.477480847177622E-013 
 maximum eigenvalues =    3040.04644502642        842.308374713901      
   684.480322075794      
 num eigs kept =          124 
 sphering the data ... 
 numeigs =          124 
           1 : Allocating variables ... 
           1 : Initializing variables ... 
           1 : Determining optimal block size .... 
No gm present, setting num_models to 1
No W present, exiting
Reference to non-existent field 'W'.

Error in runamica15 (line 892)
    weights = mods.W(:,:,1);

When I tried running on the school's PC, I keep getting amica15mkl.exe has stopped working instead.

japalmer29 commented 5 years ago

It seems to be using the .set file instead if the .fdt. Do you have the eeglab option set to save datasets in two files, .set and .fdt? Could you make sure that is on, then use the pop_saveset command, and paste the output of >>EEG showing the field values?

On Sun, Feb 17, 2019, 2:40 PM Jazelle759 <notifications@github.com wrote:

Hey Dr Palmer,

any(isnan(EEG.data(:)))

ans =

 0

When I use EEG, I get the mean = NaN , while there are values when I use EEG.data instead.

runamica15(EEG,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 'max_iter',2500,'writestep',50); % load the amica results into EEG EEG = eeg_loadamica(EEG,participantAmicaFolder);

A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 1 processor name = LAPTOP-RNS6O05B 1 host_num = 1682198720 This is MPI process 1 of 1 ; I am process 1 of 1 on node: LAPTOP-RNS6O05B 1 : node root process 1 of 1 Processing arguments ... num_files = 1 FILES: C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef \Participant01_AveRef.set num_dir_files = 1 initial matrix block_size = 128 do_opt_block = 1 blk_min = 256 blk_step = 256 blk_max = 1024 number of models = 1 max_thrds = 2 use_min_dll = 1 min dll = 1.000000000000000E-009 use_grad_norm = 1 min grad norm = 1.000000000000000E-007 number of density mixture components = 3 pdf type = 0 max_iter = 2500 num_samples = 1 data_dim = 128 field_dim = 826525 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 minimum data covariance eigenvalue = 1.000000000000000E-012 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 = 1 num reject = 15 reject sigma = 3.00000000000000 reject start = 1 reject interval = 1 write step = 50 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 pcakeep = 128 pcadb = 30.0000000000000 byte_size = 4 doscaling = 1 scalestep = 1 A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. output directory = C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaR esults\Participant01\ 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 = 826525 total blocks = 826525 node blocks = 826525 node 1 start: file 1 sample 1 index 1 node 1 stop : file 1 sample 1 index 826525 1 : data = 55641396.0000000 9.552169103699271E-006 getting the mean ... mean = NaN NaN NaN subtracting the mean ... getting the covariance matrix ... cnt = 826525 doing eig nx = 128 lwork = 163840 Error doing eigenvalue decomposition!!! num eigs kept = 0 getting the sphering matrix ... Error doing eigenvalue decomposition!!! num eigs kept = 0

MKL ERROR: Parameter 13 was incorrect on entry to DGEMM

MKL ERROR: Parameter 8 was incorrect on entry to DGEMM sphering the data ... numeigs = 0

MKL ERROR: Parameter 9 was incorrect on entry to DGESVD

MKL ERROR: Parameter 8 was incorrect on entry to DGEMM 1 : Allocating variables ... 1 : Initializing variables ...

MKL ERROR: Parameter 4 was incorrect on entry to DGETRF forrtl: severe (157): Program Exception - access violation Image PC Routine Line Source amica15mkl.exe 00007FF7C5BB65EF Unknown Unknown Unknown amica15mkl.exe 00007FF7C5B8E75B Unknown Unknown Unknown amica15mkl.exe 00007FF7C5B5D859 Unknown Unknown Unknown amica15mkl.exe 00007FF7C5FDC18C Unknown Unknown Unknown amica15mkl.exe 00007FF7C5C3B24F Unknown Unknown Unknown KERNEL32.DLL 00007FFA44113DC4 Unknown Unknown Unknown ntdll.dll 00007FFA44273691 Unknown Unknown Unknown No gm present, setting num_models to 1 No W present, exiting Reference to non-existent field 'W'.

Error in runamica15 (line 892) weights = mods.W(:,:,1);

runamica15(EEG.data,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 'max_iter',2500,'writestep',50); % load the amica results into EEG EEG = eeg_loadamica(EEG,participantAmicaFolder); Writing data file: C:\Users\Jazelle\Desktop\Experiment\ExperimentAnalysis\tmpdata63236.fdt A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 1 processor name = LAPTOP-RNS6O05B 1 host_num = 1682198720 This is MPI process 1 of 1 ; I am process 1 of 1 on node: LAPTOP-RNS6O05B 1 : node root process 1 of 1 Processing arguments ... num_files = 1 FILES: C:\Users\Jazelle\Desktop\Experiment\SimpleERPAnalysisPipeline\TargetDistractorAnal ysis\tmpdata63236.fdt num_dir_files = 1 initial matrix block_size = 128 do_opt_block = 1 blk_min = 256 blk_step = 256 blk_max = 1024 number of models = 1 max_thrds = 2 use_min_dll = 1 min dll = 1.000000000000000E-009 use_grad_norm = 1 min grad norm = 1.000000000000000E-007 number of density mixture components = 3 pdf type = 0 max_iter = 2500 num_samples = 1 data_dim = 128 field_dim = 826525 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 minimum data covariance eigenvalue = 1.000000000000000E-012 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 = 1 num reject = 15 reject sigma = 3.00000000000000 reject start = 1 reject interval = 1 write step = 50 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 pcakeep = 128 pcadb = 30.0000000000000 byte_size = 4 doscaling = 1 scalestep = 1 A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. output directory = C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaR esults\Participant01\ 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 = 826525 total blocks = 826525 node blocks = 826525 node 1 start: file 1 sample 1 index 1 node 1 stop : file 1 sample 1 index 826525 1 : data = 5.66509771347046 0.897219359874725 getting the mean ... mean = -2.465582641069445E-002 -6.649327648029919E-002 -8.313021872202728E-002 subtracting the mean ... getting the covariance matrix ... cnt = 826525 doing eig nx = 128 lwork = 163840 minimum eigenvalues = -6.844702957777817E-013 -2.003152265693854E-013 2.477480847177622E-013 maximum eigenvalues = 3040.04644502642 842.308374713901 684.480322075794 num eigs kept = 124 getting the sphering matrix ... minimum eigenvalues = -6.844702957777817E-013 -2.003152265693854E-013 2.477480847177622E-013 maximum eigenvalues = 3040.04644502642 842.308374713901 684.480322075794 num eigs kept = 124 sphering the data ... numeigs = 124 1 : Allocating variables ... 1 : Initializing variables ... 1 : Determining optimal block size .... No gm present, setting num_models to 1 No W present, exiting Reference to non-existent field 'W'.

Error in runamica15 (line 892) weights = mods.W(:,:,1);

When I tried running on the school's PC, I keep getting amica15mkl.exe has stopped working instead.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/10#issuecomment-464419720, or mute the thread https://github.com/notifications/unsubscribe-auth/AKISSvwagGJqbRe0qXpw0GqqfmFMYO42ks5vOOtSgaJpZM4a5Obu .

Jazelle759 commented 5 years ago

Sorry for bothering you so much.

>> EEG

EEG = 

             setname: 'Participant01 resampled'
            filename: 'Participant01_AveRef.set'
            filepath: 'C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef'
             subject: ''
               group: ''
           condition: ''
             session: []
            comments: 'Original files: C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentData\Participant 1\P…'
              nbchan: 128
              trials: 1
                pnts: 826775
               srate: 250
                xmin: 0
                xmax: 3.3071e+03
               times: [1x826775 double]
                data: [128x826775 single]
              icaact: []
             icawinv: []
           icasphere: []
          icaweights: []
         icachansind: []
            chanlocs: [1x128 struct]
          urchanlocs: [1x128 struct]
            chaninfo: [1x1 struct]
                 ref: 'averef'
               event: [1x1156 struct]
             urevent: [1x1868 struct]
    eventdescription: {''  ''  ''  ''}
               epoch: []
    epochdescription: {}
              reject: [1x1 struct]
               stats: [1x1 struct]
            specdata: []
          specicaact: []
          splinefile: ''
       icasplinefile: ''
              dipfit: []
             history: '…'
               saved: 'justloaded'
                 etc: [1x1 struct]
             datfile: 'Participant01_AveRef.fdt'
>> runamica15(EEG,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 
    'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 
    'max_iter',2500,'writestep',50); 
% load the amica results into EEG 
EEG = eeg_loadamica(EEG,participantAmicaFolder);

A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 
           1 processor name = LAPTOP-RNS6O05B 
           1 host_num =   1682198720 
 This is MPI process           1 of           1 ; I am process           1 of 
           1 on node: LAPTOP-RNS6O05B 
           1  : node root process           1 of           1 
Processing arguments ... 
 num_files =            1 
 FILES:  
 C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef 
 \Participant01_AveRef.fdt 
 num_dir_files =            1 
 initial matrix block_size =          128 
 do_opt_block =            1 
 blk_min =          256 
 blk_step =          256 
 blk_max =         1024 
 number of models =            1 
 max_thrds =            2 
 use_min_dll =            1 
 min dll =   1.000000000000000E-009 
 use_grad_norm =            1 
 min grad norm =   1.000000000000000E-007 
 number of density mixture components =            3 
 pdf type =            0 
 max_iter =         2500 
 num_samples =            1 
 data_dim =          128 
 field_dim =       826775 
 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 
 minimum data covariance eigenvalue =   1.000000000000000E-012 
 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 =            1 
 num reject =           15 
 reject sigma =    3.00000000000000      
 reject start =            1 
 reject interval =            1 
 write step =           50 
 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 
 pcakeep =          128 
 pcadb =    30.0000000000000      
 byte_size =            4 
 doscaling =            1 
 scalestep =            1 
A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 
 output directory =  
 C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaR 
 esults\Participant01\ 
           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 =       826775 
 total blocks =       826775 
 node blocks =       826775 
 node            1  start: file            1  sample            1  index  
           1 
 node            1  stop : file            1  sample            1  index  
      826775 
           1 : data =    5.66509771347046       0.897219359874725      
 getting the mean ... 
  mean =  -2.080518629688183E-002 -5.178608981631395E-002 
 -6.193587986477959E-002 
 subtracting the mean ... 
 getting the covariance matrix ... 
 cnt =       826775 
 doing eig nx =          128  lwork =       163840 
 minimum eigenvalues =  -1.640216754986347E-013  9.411566154889960E-014 
  2.738278491293088E-013 
 maximum eigenvalues =    3184.94883024488        844.467229287250      
   689.519255671804      
 num eigs kept =          125 
 getting the sphering matrix ... 
 minimum eigenvalues =  -1.640216754986347E-013  9.411566154889960E-014 
  2.738278491293088E-013 
 maximum eigenvalues =    3184.94883024488        844.467229287250      
   689.519255671804      
 num eigs kept =          125 
 sphering the data ... 
 numeigs =          125 
           1 : Allocating variables ... 
           1 : Initializing variables ... 
           1 : Determining optimal block size .... 
No gm present, setting num_models to 1
No W present, exiting
Reference to non-existent field 'W'.

Error in runamica15 (line 892)
    weights = mods.W(:,:,1);
japalmer29 commented 5 years ago

Ok, now it's running, but the data low rank is causing problems. Are you interpolating channels before ica? The best approach is to run ica on the data without interpolating removed channels, and do average reference. This should make the data rank one less than nchans, but Amica should detect it and reduce dimsionality of data. If it does not automatically work, you can use 'pcakeep', EEG.nbchans-1 ...

Then after loading the ICA ouput, then do interpolation on the maps, EEG.icawinv. then backprojecting will fill missing channels.

On Sun, Feb 17, 2019, 5:01 PM Jazelle759 <notifications@github.com wrote:

Sorry for bothering you so much.

EEG

EEG =

         setname: 'Participant01 resampled'

        filename: 'Participant01_AveRef.set'

        filepath: 'C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef'

         subject: ''

           group: ''

       condition: ''

         session: []

        comments: 'Original files: C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentData\Participant 1\P…'

          nbchan: 128

          trials: 1

            pnts: 826775

           srate: 250

            xmin: 0

            xmax: 3.3071e+03

           times: [1x826775 double]

            data: [128x826775 single]

          icaact: []

         icawinv: []

       icasphere: []

      icaweights: []

     icachansind: []

        chanlocs: [1x128 struct]

      urchanlocs: [1x128 struct]

        chaninfo: [1x1 struct]

             ref: 'averef'

           event: [1x1156 struct]

         urevent: [1x1868 struct]

eventdescription: {''  ''  ''  ''}

           epoch: []

epochdescription: {}

          reject: [1x1 struct]

           stats: [1x1 struct]

        specdata: []

      specicaact: []

      splinefile: ''

   icasplinefile: ''

          dipfit: []

         history: '…'

           saved: 'justloaded'

             etc: [1x1 struct]

         datfile: 'Participant01_AveRef.fdt'

runamica15(EEG,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ...

'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ...

'max_iter',2500,'writestep',50);

% load the amica results into EEG

EEG = eeg_loadamica(EEG,participantAmicaFolder);

A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists.

       1 processor name = LAPTOP-RNS6O05B

       1 host_num =   1682198720

This is MPI process 1 of 1 ; I am process 1 of

       1 on node: LAPTOP-RNS6O05B

       1  : node root process           1 of           1

Processing arguments ...

num_files = 1

FILES:

C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef

\Participant01_AveRef.fdt

num_dir_files = 1

initial matrix block_size = 128

do_opt_block = 1

blk_min = 256

blk_step = 256

blk_max = 1024

number of models = 1

max_thrds = 2

use_min_dll = 1

min dll = 1.000000000000000E-009

use_grad_norm = 1

min grad norm = 1.000000000000000E-007

number of density mixture components = 3

pdf type = 0

max_iter = 2500

num_samples = 1

data_dim = 128

field_dim = 826775

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

minimum data covariance eigenvalue = 1.000000000000000E-012

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 = 1

num reject = 15

reject sigma = 3.00000000000000

reject start = 1

reject interval = 1

write step = 50

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

pcakeep = 128

pcadb = 30.0000000000000

byte_size = 4

doscaling = 1

scalestep = 1

A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists.

output directory =

C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaR

esults\Participant01\

       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 = 826775

total blocks = 826775

node blocks = 826775

node 1 start: file 1 sample 1 index

       1

node 1 stop : file 1 sample 1 index

  826775

       1 : data =    5.66509771347046       0.897219359874725

getting the mean ...

mean = -2.080518629688183E-002 -5.178608981631395E-002

-6.193587986477959E-002

subtracting the mean ...

getting the covariance matrix ...

cnt = 826775

doing eig nx = 128 lwork = 163840

minimum eigenvalues = -1.640216754986347E-013 9.411566154889960E-014

2.738278491293088E-013

maximum eigenvalues = 3184.94883024488 844.467229287250

689.519255671804

num eigs kept = 125

getting the sphering matrix ...

minimum eigenvalues = -1.640216754986347E-013 9.411566154889960E-014

2.738278491293088E-013

maximum eigenvalues = 3184.94883024488 844.467229287250

689.519255671804

num eigs kept = 125

sphering the data ...

numeigs = 125

       1 : Allocating variables ...

       1 : Initializing variables ...

       1 : Determining optimal block size ....

No gm present, setting num_models to 1

No W present, exiting

Reference to non-existent field 'W'.

Error in runamica15 (line 892)

weights = mods.W(:,:,1);

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/10#issuecomment-464426937, or mute the thread https://github.com/notifications/unsubscribe-auth/AKISStEF9R4NoLyKW1Ge5C8eTxklklD7ks5vOQxPgaJpZM4a5Obu .

Jazelle759 commented 5 years ago

I tried running AMICA on the school PC and got this, image

Not sure how that happened X<, but anyways, yes, I interpolated channels before ICA. I've basically been following the codes found here until the AMICA step which I've hit a roadblock.

I tried doing average reference without interpolating removed channels then running AMICA oth with and withot pcakeep. Results are as below.

>> % Save dataset (ParticipantNumber_AveRef)
EEG = pop_saveset( EEG, 'filename',strcat(name,'_AveRef.set'),'filepath',fullfile(processingFolderPath,'ExperimentAveRef'));
EEG = eeg_checkset( EEG );
Saving dataset...
>> runamica15(EEG,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 
    'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 
    'max_iter',2500,'writestep',50); 
% load the amica results into EEG 
EEG = eeg_loadamica(EEG,participantAmicaFolder);
A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 
           1 processor name = LAPTOP-RNS6O05B 
           1 host_num =   1682198720 
 This is MPI process           1 of           1 ; I am process           1 of 
           1 on node: LAPTOP-RNS6O05B 
           1  : node root process           1 of           1 
Processing arguments ... 
 num_files =            1 
 FILES:  
 C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef 
 \Participant01_AveRef.fdt 
 num_dir_files =            1 
 initial matrix block_size =          128 
 do_opt_block =            1 
 blk_min =          256 
 blk_step =          256 
 blk_max =         1024 
 number of models =            1 
 max_thrds =            2 
 use_min_dll =            1 
 min dll =   1.000000000000000E-009 
 use_grad_norm =            1 
 min grad norm =   1.000000000000000E-007 
 number of density mixture components =            3 
 pdf type =            0 
 max_iter =         2500 
 num_samples =            1 
 data_dim =          124 
 field_dim =       826775 
 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 
 minimum data covariance eigenvalue =   1.000000000000000E-012 
 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 =            1 
 num reject =           15 
 reject sigma =    3.00000000000000      
 reject start =            1 
 reject interval =            1 
 write step =           50 
 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 
 pcakeep =          124 
 pcadb =    30.0000000000000      
 byte_size =            4 
 doscaling =            1 
 scalestep =            1 
A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 
 output directory =  
 C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaR 
 esults\Participant01\ 
           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 =       826775 
 total blocks =       826775 
 node blocks =       826775 
 node            1  start: file            1  sample            1  index  
           1 
 node            1  stop : file            1  sample            1  index  
      826775 
           1 : data =    5.70339298248291       0.935514807701111      
 getting the mean ... 
  mean =  -1.447811822502307E-002 -4.881408335376367E-002 
 -5.660737602811115E-002 
 subtracting the mean ... 
 getting the covariance matrix ... 
 cnt =       826775 
 doing eig nx =          124  lwork =       153760 
 minimum eigenvalues =   2.377305388009759E-002  0.309337363531774      
  0.365926693662255      
 maximum eigenvalues =    3152.12089022707        825.109463263389      
   674.766848308228      
 num eigs kept =          124 
 getting the sphering matrix ... 
 minimum eigenvalues =   2.377305388009759E-002  0.309337363531774      
  0.365926693662255      
 maximum eigenvalues =    3152.12089022707        825.109463263389      
   674.766848308228      
 num eigs kept =          124 
 sphering the data ... 
 numeigs =          124 
           1 : Allocating variables ... 
           1 : Initializing variables ... 
           1 : Determining optimal block size .... 
No gm present, setting num_models to 1
No W present, exiting
Reference to non-existent field 'W'.

Error in runamica15 (line 892)
    weights = mods.W(:,:,1);

>> eeglab
eeglab: options file is C:\Users\Jazelle\eeg_options.m
EEGLAB: adding "MARA" v1.2 (see >> help eegplugin_MARA)
EEGLAB: adding "amica" v1.5.1 (see >> help eegplugin_amica)
EEGLAB: adding "clean_rawdata" v0.34 (see >> help eegplugin_clean_rawdata)
EEGLAB: adding "dipfit" v2.3 (see >> help eegplugin_dipfit)
EEGLAB: adding "erplab" v6.1.4 (see >> help eegplugin_erplab)
EEGLAB: adding "firfilt" v1.6.2 (see >> help eegplugin_firfilt)
EEGLAB: adding "postAmicaUtility" v2.01 (see >> help eegplugin_postAmicaUtility)
EEGLAB: adding "tmullen-cleanline-696a7181b7d" v0 (see >> help eegplugin_cleanline)
Warning:
A newer version of EEGLAB (14.1.2) is available here
This version fixes issues with Matlab 2018a. See Release notes for more informations.
You may disable this message in the Option menu but will miss critical updates.

pop_loadset(): loading file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef\Participant01_AveRef.set ...
Reading float file 'C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef\Participant01_AveRef.fdt'...
Creating a new ALLEEG dataset 1
Done.
>> % Run AMICA using calculated data rank with 'pcakeep' option
if isfield(EEG.etc, 'clean_channel_mask')
    dataRank = min([rank(double(EEG.data')) sum(EEG.etc.clean_channel_mask)]);
else
    dataRank = rank(double(EEG.data'));
end
runamica15(EEG.data, 'num_chans', EEG.nbchan,...
    'outdir', participantAmicaFolder ,...
    'pcakeep', dataRank, 'num_models', 1,...
    'do_reject', 1, 'numrej', 15, 'rejsig', 3, 'rejint', 1);
EEG.etc.amica  = loadmodout15(participantAmicaFolder );
EEG.etc.amica.S = EEG.etc.amica.S(1:EEG.etc.amica.num_pcs, :);  % Weirdly, I saw size(S,1) be larger than rank. This process does not hurt anyway.
EEG.icaweights = EEG.etc.amica.W;
EEG.icasphere  = EEG.etc.amica.S;
EEG = eeg_checkset(EEG, 'ica');
Writing data file: C:\Users\Jazelle\Desktop\Experiment\DataAnalysis\tmpdata95751.fdt
A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 
           1 processor name = LAPTOP-RNS6O05B 
           1 host_num =   1682198720 
 This is MPI process           1 of           1 ; I am process           1 of 
           1 on node: LAPTOP-RNS6O05B 
           1  : node root process           1 of           1 
Processing arguments ... 
 num_files =            1 
 FILES:  
 C:\Users\Jazelle\Desktop\Experiment\DataAnalysis\tmpdata95751.fdt 
 num_dir_files =            1 
 initial matrix block_size =          128 
 do_opt_block =            0 
 blk_min =          256 
 blk_step =          256 
 blk_max =         1024 
 number of models =            1 
 max_thrds =            2 
 use_min_dll =            1 
 min dll =   1.000000000000000E-009 
 use_grad_norm =            1 
 min grad norm =   1.000000000000000E-007 
 number of density mixture components =            3 
 pdf type =            0 
 max_iter =         2000 
 num_samples =            1 
 data_dim =          124 
 field_dim =       826775 
 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 
 minimum data covariance eigenvalue =   1.000000000000000E-012 
 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 =            1 
 num reject =           15 
 reject sigma =    3.00000000000000      
 reject start =            2 
 reject interval =            1 
 write step =           20 
 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 
 pcakeep =          124 
 pcadb =    30.0000000000000      
 byte_size =            4 
 doscaling =            1 
 scalestep =            1 
A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 
 output directory =  
 C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaR 
 esults\Participant01\ 
           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 =       826775 
 total blocks =       826775 
 node blocks =       826775 
 node            1  start: file            1  sample            1  index  
           1 
 node            1  stop : file            1  sample            1  index  
      826775 
           1 : data =    5.70339298248291       0.935514807701111      
 getting the mean ... 
  mean =  -1.447811822502307E-002 -4.881408335376367E-002 
 -5.660737602811115E-002 
 subtracting the mean ... 
 getting the covariance matrix ... 
 cnt =       826775 
 doing eig nx =          124  lwork =       153760 
 minimum eigenvalues =   2.377305388009759E-002  0.309337363531774      
  0.365926693662255      
 maximum eigenvalues =    3152.12089022707        825.109463263389      
   674.766848308228      
 num eigs kept =          124 
 getting the sphering matrix ... 
 minimum eigenvalues =   2.377305388009759E-002  0.309337363531774      
  0.365926693662255      
 maximum eigenvalues =    3152.12089022707        825.109463263389      
   674.766848308228      
 num eigs kept =          124 
 sphering the data ... 
 numeigs =          124 
           1 : Allocating variables ... 
           1 : Initializing variables ... 
           1 : block size =          128 
           1 : entering the main loop ... 
 iter     1 lrate =  0.0500000000 LL =  -2.1879400453 nd =  0.0316209328, D =   0.63086E-01  0.63086E-01  ( 15.34 s,   8.5 h) 
Doing rejection .... 
 maximum likelihood value =   -1.94530531277019      
 minimum likelihood value =   -12.8424480341366      
 average likelihood value =   -2.18794004532239      
 standard deviation       =   0.249405579766357      
 rejecting data with likelihood less than   -2.93615678462146      
 rejected        11729  data points so far. Will perform rejection           14  
  more times at intervals of            1  iterations. 
 iter     2 lrate =  0.0500000000 LL =  -2.0951590716 nd =  0.0172690336, D =   0.55033E-01  0.55033E-01  ( 15.65 s,   8.7 h) 
Doing rejection .... 
 maximum likelihood value =   -1.74648645162986      
 minimum likelihood value =   -3.03062210659308      
 average likelihood value =   -2.09515907155584      
 standard deviation       =   0.154974182576645      
 rejecting data with likelihood less than   -2.56008161928578      
 rejected        23811  data points so far. Will perform rejection           13  
  more times at intervals of            1  iterations. 
 iter     3 lrate =  0.0500000000 LL =  -2.0700441090 nd =  0.0122252001, D =   0.47893E-01  0.47893E-01  ( 13.34 s,   7.4 h) 
Doing rejection .... 
 maximum likelihood value =   -1.66660347014341      
 minimum likelihood value =   -2.66387051151617      
 average likelihood value =   -2.07004410898280      
 standard deviation       =   0.154976084710437      
 rejecting data with likelihood less than   -2.53497236311411      
 rejected        28270  data points so far. Will perform rejection           12  
  more times at intervals of            1  iterations. 
 iter     4 lrate =  0.0500000000 LL =  -2.0631597399 nd =  0.0112155711, D =   0.48270E-01  0.48270E-01  ( 13.60 s,   7.5 h) 
Doing rejection .... 
 maximum likelihood value =   -1.63570475536690      
 minimum likelihood value =   -2.59663802391389      
 average likelihood value =   -2.06315973985731      
 standard deviation       =   0.158387401110060      
 rejecting data with likelihood less than   -2.53832194318749      
 rejected        29533  data points so far. Will perform rejection           11  
  more times at intervals of            1  iterations. 
 iter     5 lrate =  0.0500000000 LL =  -2.0606809694 nd =  0.0105759165, D =   0.57496E-01  0.57496E-01  ( 13.40 s,   7.4 h) 
Doing rejection .... 
 maximum likelihood value =   -1.62309489244165      
 minimum likelihood value =   -2.56312046661083      
 average likelihood value =   -2.06068096939705      
 standard deviation       =   0.159893620368294      
 rejecting data with likelihood less than   -2.54036183050194      
 rejected        29947  data points so far. Will perform rejection           10  
  more times at intervals of            1  iterations. 
 iter     6 lrate =  0.0500000000 LL =  -2.0593191199 nd =  0.0098341258, D =   0.73951E-01  0.73951E-01  ( 13.39 s,   7.4 h) 
Doing rejection .... 
 maximum likelihood value =   -1.61730196403345      
 minimum likelihood value =   -2.55388876873334      
 average likelihood value =   -2.05931911993658      
 standard deviation       =   0.160469212582739      
 rejecting data with likelihood less than   -2.54072675768480      
 rejected        30138  data points so far. Will perform rejection            9  
  more times at intervals of            1  iterations. 
 iter     7 lrate =  0.0500000000 LL =  -2.0583445560 nd =  0.0090861193, D =   0.95516E-01  0.95516E-01  ( 13.68 s,   7.6 h) 
Doing rejection .... 
 maximum likelihood value =   -1.61419717964216      
 minimum likelihood value =   -2.54868565651634      
 average likelihood value =   -2.05834455599736      
 standard deviation       =   0.160729968755536      
 rejecting data with likelihood less than   -2.54053446226397      
 rejected        30241  data points so far. Will perform rejection            8  
  more times at intervals of            1  iterations. 
 iter     8 lrate =  0.0500000000 LL =  -2.0575761156 nd =  0.0083848950, D =   0.12040E+00  0.12040E+00  ( 13.90 s,   7.7 h) 
Doing rejection .... 
 maximum likelihood value =   -1.61227278528098      
 minimum likelihood value =   -2.54745500857799      
 average likelihood value =   -2.05757611564512      
 standard deviation       =   0.160900836724358      
 rejecting data with likelihood less than   -2.54027862581819      
 rejected        30346  data points so far. Will perform rejection            7  
  more times at intervals of            1  iterations. 
 iter     9 lrate =  0.0500000000 LL =  -2.0569184537 nd =  0.0077475771, D =   0.14722E+00  0.14722E+00  ( 14.84 s,   8.2 h) 
Doing rejection .... 
 maximum likelihood value =   -1.61097240302034      
 minimum likelihood value =   -2.54581067854753      
 average likelihood value =   -2.05691845365445      
 standard deviation       =   0.160998105953585      
 rejecting data with likelihood less than   -2.53991277151520      
 rejected        30445  data points so far. Will perform rejection            6  
  more times at intervals of            1  iterations. 
 iter    10 lrate =  0.0500000000 LL =  -2.0563526199 nd =  0.0071754584, D =   0.17491E+00  0.17491E+00  ( 14.75 s,   8.2 h) 
Doing rejection .... 
 maximum likelihood value =   -1.61002422084216      
 minimum likelihood value =   -2.54565539665346      
 average likelihood value =   -2.05635261993232      
 standard deviation       =   0.161067879008281      
 rejecting data with likelihood less than   -2.53955625695716      
 rejected        30511  data points so far. Will perform rejection            5  
  more times at intervals of            1  iterations. 
 iter    11 lrate =  0.0500000000 LL =  -2.0558783264 nd =  0.0066639133, D =   0.20269E+00  0.20269E+00  ( 15.21 s,   8.4 h) 
Doing rejection .... 
 maximum likelihood value =   -1.60929435618993      
 minimum likelihood value =   -2.54302315300348      
 average likelihood value =   -2.05587832635617      
 standard deviation       =   0.161142445762817      
 rejecting data with likelihood less than   -2.53930566364462      
 rejected        30571  data points so far. Will perform rejection            4  
  more times at intervals of            1  iterations. 
 iter    12 lrate =  0.0500000000 LL =  -2.0554660517 nd =  0.0062113138, D =   0.22996E+00  0.22996E+00  ( 14.12 s,   7.8 h) 
Doing rejection .... 
 maximum likelihood value =   -1.60872588030599      
 minimum likelihood value =   -2.54260357882775      
 average likelihood value =   -2.05546605169460      
 standard deviation       =   0.161200182465468      
 rejecting data with likelihood less than   -2.53906659909100      
 rejected        30634  data points so far. Will perform rejection            3  
  more times at intervals of            1  iterations. 
No gm present, setting num_models to 1
No W present, exiting
Reference to non-existent field 'W'.

Error in runamica15 (line 892)
    weights = mods.W(:,:,1);

Thanks again so much!!

japalmer29 commented 5 years ago

Sorry you're having so many problems with amica. The covariance eigenvalues seem right though for avg ref. It should work if you use 'pcakeep', 123. The problem seems to be that the minimum covariance eigenvalue is above the minimum threshold mineig. Hopefully it will work finally with the pcakeep arg. Then interpolate the maps in icawinv as though they were time points and overwrite EEG.icawinv with the result and set EEG.nbchan to the full num channels.

On Sun, Feb 17, 2019, 9:23 PM Jazelle759 <notifications@github.com wrote:

I tried running AMICA on the school PC and got this, [image: image] https://user-images.githubusercontent.com/47597128/52912425-40bdfa00-3316-11e9-86cd-4189151b22ac.png

Not sure how that happened X<, but anyways, yes, I interpolated channels before ICA. I've basically been following the codes found here https://sccn.ucsd.edu/wiki/Makoto%27s_useful_EEGLAB_code#Example_of_batch_code_to_preprocess_multiple_subjects_.2801.2F27.2F2017_updated.29 until the AMICA step which I've hit a roadblock.

I tried doing average reference without interpolating removed channels then running AMICA oth with and withot pcakeep. Results are as below.

% Save dataset (ParticipantNumber_AveRef) EEG = pop_saveset( EEG, 'filename',strcat(name,'_AveRef.set'),'filepath',fullfile(processingFolderPath,'ExperimentAveRef')); EEG = eeg_checkset( EEG ); Saving dataset... runamica15(EEG,'outdir',participantAmicaFolder,'do_opt_block',1, 'num_models', 1, ... 'do_reject',1,'rejstart',1,'rejint',1,'numrej',15,'rejsig',3, ... 'max_iter',2500,'writestep',50); % load the amica results into EEG EEG = eeg_loadamica(EEG,participantAmicaFolder); A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 1 processor name = LAPTOP-RNS6O05B 1 host_num = 1682198720 This is MPI process 1 of 1 ; I am process 1 of 1 on node: LAPTOP-RNS6O05B 1 : node root process 1 of 1 Processing arguments ... num_files = 1 FILES: C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef \Participant01_AveRef.fdt num_dir_files = 1 initial matrix block_size = 128 do_opt_block = 1 blk_min = 256 blk_step = 256 blk_max = 1024 number of models = 1 max_thrds = 2 use_min_dll = 1 min dll = 1.000000000000000E-009 use_grad_norm = 1 min grad norm = 1.000000000000000E-007 number of density mixture components = 3 pdf type = 0 max_iter = 2500 num_samples = 1 data_dim = 124 field_dim = 826775 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 minimum data covariance eigenvalue = 1.000000000000000E-012 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 = 1 num reject = 15 reject sigma = 3.00000000000000 reject start = 1 reject interval = 1 write step = 50 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 pcakeep = 124 pcadb = 30.0000000000000 byte_size = 4 doscaling = 1 scalestep = 1 A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. output directory = C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaR esults\Participant01\ 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 = 826775 total blocks = 826775 node blocks = 826775 node 1 start: file 1 sample 1 index 1 node 1 stop : file 1 sample 1 index 826775 1 : data = 5.70339298248291 0.935514807701111 getting the mean ... mean = -1.447811822502307E-002 -4.881408335376367E-002 -5.660737602811115E-002 subtracting the mean ... getting the covariance matrix ... cnt = 826775 doing eig nx = 124 lwork = 153760 minimum eigenvalues = 2.377305388009759E-002 0.309337363531774 0.365926693662255 maximum eigenvalues = 3152.12089022707 825.109463263389 674.766848308228 num eigs kept = 124 getting the sphering matrix ... minimum eigenvalues = 2.377305388009759E-002 0.309337363531774 0.365926693662255 maximum eigenvalues = 3152.12089022707 825.109463263389 674.766848308228 num eigs kept = 124 sphering the data ... numeigs = 124 1 : Allocating variables ... 1 : Initializing variables ... 1 : Determining optimal block size .... No gm present, setting num_models to 1 No W present, exiting Reference to non-existent field 'W'.

Error in runamica15 (line 892) weights = mods.W(:,:,1);

eeglab eeglab: options file is C:\Users\Jazelle\eeg_options.m EEGLAB: adding "MARA" v1.2 (see >> help eegplugin_MARA) EEGLAB: adding "amica" v1.5.1 (see >> help eegplugin_amica) EEGLAB: adding "clean_rawdata" v0.34 (see >> help eegplugin_clean_rawdata) EEGLAB: adding "dipfit" v2.3 (see >> help eegplugin_dipfit) EEGLAB: adding "erplab" v6.1.4 (see >> help eegplugin_erplab) EEGLAB: adding "firfilt" v1.6.2 (see >> help eegplugin_firfilt) EEGLAB: adding "postAmicaUtility" v2.01 (see >> help eegplugin_postAmicaUtility) EEGLAB: adding "tmullen-cleanline-696a7181b7d" v0 (see >> help eegplugin_cleanline) Warning: A newer version of EEGLAB (14.1.2) is available here This version fixes issues with Matlab 2018a. See Release notes for more informations. You may disable this message in the Option menu but will miss critical updates.

pop_loadset(): loading file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef\Participant01_AveRef.set ... Reading float file 'C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAveRef\Participant01_AveRef.fdt'... Creating a new ALLEEG dataset 1 Done.

% Run AMICA using calculated data rank with 'pcakeep' option if isfield(EEG.etc, 'clean_channel_mask') dataRank = min([rank(double(EEG.data')) sum(EEG.etc.clean_channel_mask)]); else dataRank = rank(double(EEG.data')); end runamica15(EEG.data, 'num_chans', EEG.nbchan,... 'outdir', participantAmicaFolder ,... 'pcakeep', dataRank, 'num_models', 1,... 'do_reject', 1, 'numrej', 15, 'rejsig', 3, 'rejint', 1); EEG.etc.amica = loadmodout15(participantAmicaFolder ); EEG.etc.amica.S = EEG.etc.amica.S(1:EEG.etc.amica.num_pcs, :); % Weirdly, I saw size(S,1) be larger than rank. This process does not hurt anyway. EEG.icaweights = EEG.etc.amica.W; EEG.icasphere = EEG.etc.amica.S; EEG = eeg_checkset(EEG, 'ica'); Writing data file: C:\Users\Jazelle\Desktop\Experiment\DataAnalysis\tmpdata95751.fdt A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. 1 processor name = LAPTOP-RNS6O05B 1 host_num = 1682198720 This is MPI process 1 of 1 ; I am process 1 of 1 on node: LAPTOP-RNS6O05B 1 : node root process 1 of 1 Processing arguments ... num_files = 1 FILES: C:\Users\Jazelle\Desktop\Experiment\DataAnalysis\tmpdata95751.fdt num_dir_files = 1 initial matrix block_size = 128 do_opt_block = 0 blk_min = 256 blk_step = 256 blk_max = 1024 number of models = 1 max_thrds = 2 use_min_dll = 1 min dll = 1.000000000000000E-009 use_grad_norm = 1 min grad norm = 1.000000000000000E-007 number of density mixture components = 3 pdf type = 0 max_iter = 2000 num_samples = 1 data_dim = 124 field_dim = 826775 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 minimum data covariance eigenvalue = 1.000000000000000E-012 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 = 1 num reject = 15 reject sigma = 3.00000000000000 reject start = 2 reject interval = 1 write step = 20 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 pcakeep = 124 pcadb = 30.0000000000000 byte_size = 4 doscaling = 1 scalestep = 1 A subdirectory or file C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaResults\Participant01\ already exists. output directory = C:\Users\Jazelle\Desktop\Experiment\DataProcessing\ExperimentAmicaR esults\Participant01\ 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 = 826775 total blocks = 826775 node blocks = 826775 node 1 start: file 1 sample 1 index 1 node 1 stop : file 1 sample 1 index 826775 1 : data = 5.70339298248291 0.935514807701111 getting the mean ... mean = -1.447811822502307E-002 -4.881408335376367E-002 -5.660737602811115E-002 subtracting the mean ... getting the covariance matrix ... cnt = 826775 doing eig nx = 124 lwork = 153760 minimum eigenvalues = 2.377305388009759E-002 0.309337363531774 0.365926693662255 maximum eigenvalues = 3152.12089022707 825.109463263389 674.766848308228 num eigs kept = 124 getting the sphering matrix ... minimum eigenvalues = 2.377305388009759E-002 0.309337363531774 0.365926693662255 maximum eigenvalues = 3152.12089022707 825.109463263389 674.766848308228 num eigs kept = 124 sphering the data ... numeigs = 124 1 : Allocating variables ... 1 : Initializing variables ... 1 : block size = 128 1 : entering the main loop ... iter 1 lrate = 0.0500000000 LL = -2.1879400453 nd = 0.0316209328, D = 0.63086E-01 0.63086E-01 ( 15.34 s, 8.5 h) Doing rejection .... maximum likelihood value = -1.94530531277019 minimum likelihood value = -12.8424480341366 average likelihood value = -2.18794004532239 standard deviation = 0.249405579766357 rejecting data with likelihood less than -2.93615678462146 rejected 11729 data points so far. Will perform rejection 14 more times at intervals of 1 iterations. iter 2 lrate = 0.0500000000 LL = -2.0951590716 nd = 0.0172690336, D = 0.55033E-01 0.55033E-01 ( 15.65 s, 8.7 h) Doing rejection .... maximum likelihood value = -1.74648645162986 minimum likelihood value = -3.03062210659308 average likelihood value = -2.09515907155584 standard deviation = 0.154974182576645 rejecting data with likelihood less than -2.56008161928578 rejected 23811 data points so far. Will perform rejection 13 more times at intervals of 1 iterations. iter 3 lrate = 0.0500000000 LL = -2.0700441090 nd = 0.0122252001, D = 0.47893E-01 0.47893E-01 ( 13.34 s, 7.4 h) Doing rejection .... maximum likelihood value = -1.66660347014341 minimum likelihood value = -2.66387051151617 average likelihood value = -2.07004410898280 standard deviation = 0.154976084710437 rejecting data with likelihood less than -2.53497236311411 rejected 28270 data points so far. Will perform rejection 12 more times at intervals of 1 iterations. iter 4 lrate = 0.0500000000 LL = -2.0631597399 nd = 0.0112155711, D = 0.48270E-01 0.48270E-01 ( 13.60 s, 7.5 h) Doing rejection .... maximum likelihood value = -1.63570475536690 minimum likelihood value = -2.59663802391389 average likelihood value = -2.06315973985731 standard deviation = 0.158387401110060 rejecting data with likelihood less than -2.53832194318749 rejected 29533 data points so far. Will perform rejection 11 more times at intervals of 1 iterations. iter 5 lrate = 0.0500000000 LL = -2.0606809694 nd = 0.0105759165, D = 0.57496E-01 0.57496E-01 ( 13.40 s, 7.4 h) Doing rejection .... maximum likelihood value = -1.62309489244165 minimum likelihood value = -2.56312046661083 average likelihood value = -2.06068096939705 standard deviation = 0.159893620368294 rejecting data with likelihood less than -2.54036183050194 rejected 29947 data points so far. Will perform rejection 10 more times at intervals of 1 iterations. iter 6 lrate = 0.0500000000 LL = -2.0593191199 nd = 0.0098341258, D = 0.73951E-01 0.73951E-01 ( 13.39 s, 7.4 h) Doing rejection .... maximum likelihood value = -1.61730196403345 minimum likelihood value = -2.55388876873334 average likelihood value = -2.05931911993658 standard deviation = 0.160469212582739 rejecting data with likelihood less than -2.54072675768480 rejected 30138 data points so far. Will perform rejection 9 more times at intervals of 1 iterations. iter 7 lrate = 0.0500000000 LL = -2.0583445560 nd = 0.0090861193, D = 0.95516E-01 0.95516E-01 ( 13.68 s, 7.6 h) Doing rejection .... maximum likelihood value = -1.61419717964216 minimum likelihood value = -2.54868565651634 average likelihood value = -2.05834455599736 standard deviation = 0.160729968755536 rejecting data with likelihood less than -2.54053446226397 rejected 30241 data points so far. Will perform rejection 8 more times at intervals of 1 iterations. iter 8 lrate = 0.0500000000 LL = -2.0575761156 nd = 0.0083848950, D = 0.12040E+00 0.12040E+00 ( 13.90 s, 7.7 h) Doing rejection .... maximum likelihood value = -1.61227278528098 minimum likelihood value = -2.54745500857799 average likelihood value = -2.05757611564512 standard deviation = 0.160900836724358 rejecting data with likelihood less than -2.54027862581819 rejected 30346 data points so far. Will perform rejection 7 more times at intervals of 1 iterations. iter 9 lrate = 0.0500000000 LL = -2.0569184537 nd = 0.0077475771, D = 0.14722E+00 0.14722E+00 ( 14.84 s, 8.2 h) Doing rejection .... maximum likelihood value = -1.61097240302034 minimum likelihood value = -2.54581067854753 average likelihood value = -2.05691845365445 standard deviation = 0.160998105953585 rejecting data with likelihood less than -2.53991277151520 rejected 30445 data points so far. Will perform rejection 6 more times at intervals of 1 iterations. iter 10 lrate = 0.0500000000 LL = -2.0563526199 nd = 0.0071754584, D = 0.17491E+00 0.17491E+00 ( 14.75 s, 8.2 h) Doing rejection .... maximum likelihood value = -1.61002422084216 minimum likelihood value = -2.54565539665346 average likelihood value = -2.05635261993232 standard deviation = 0.161067879008281 rejecting data with likelihood less than -2.53955625695716 rejected 30511 data points so far. Will perform rejection 5 more times at intervals of 1 iterations. iter 11 lrate = 0.0500000000 LL = -2.0558783264 nd = 0.0066639133, D = 0.20269E+00 0.20269E+00 ( 15.21 s, 8.4 h) Doing rejection .... maximum likelihood value = -1.60929435618993 minimum likelihood value = -2.54302315300348 average likelihood value = -2.05587832635617 standard deviation = 0.161142445762817 rejecting data with likelihood less than -2.53930566364462 rejected 30571 data points so far. Will perform rejection 4 more times at intervals of 1 iterations. iter 12 lrate = 0.0500000000 LL = -2.0554660517 nd = 0.0062113138, D = 0.22996E+00 0.22996E+00 ( 14.12 s, 7.8 h) Doing rejection .... maximum likelihood value = -1.60872588030599 minimum likelihood value = -2.54260357882775 average likelihood value = -2.05546605169460 standard deviation = 0.161200182465468 rejecting data with likelihood less than -2.53906659909100 rejected 30634 data points so far. Will perform rejection 3 more times at intervals of 1 iterations. No gm present, setting num_models to 1 No W present, exiting Reference to non-existent field 'W'.

Error in runamica15 (line 892) weights = mods.W(:,:,1);

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/10#issuecomment-464450512, or mute the thread https://github.com/notifications/unsubscribe-auth/AKISSkFhhwTYfYxHvJbWybJFxdwaexthks5vOUnagaJpZM4a5Obu .

Jazelle759 commented 5 years ago

No, I'm sorry for repeatedly asking for help. Unfortunately, I am still having problems, I have tried on 1 laptop, 1 PC and 1 VM, the application keeps crashing. Seemingly randomly, with the same data input, once in every unknown number of tries, it will manage to run til the end. I decided to check windows event viewer and here's the screenshot.

eventviewer

I believe the application errors are from amica15mkl.exe crashing, and they all have a similar message. Attached a text file with the details from event viewer. eventviewer.txt

Any ideas?

japalmer29 commented 5 years ago

Could you try setting ‘max_threads’, 1 (instead of default 2) and see if it still sometimes dies?

From: Jazelle759 [mailto:notifications@github.com] Sent: Wednesday, February 27, 2019 7:09 PM To: japalmer29/amica Cc: Jason Palmer; Comment Subject: Re: [japalmer29/amica] Issue with mpich (#10)

No, I'm sorry for repeatedly asking for help. Unfortunately, I am still having problems, I have tried on 1 laptop, 1 PC and 1 VM, the application keeps crashing. Seemingly randomly, with the same data input, once in every unknown number of tries, it will manage to run til the end. I decided to check windows event viewer and here's the screenshot.

https://user-images.githubusercontent.com/47597128/53482358-e70eba00-3ae3-11e9-9554-872d8ddc9792.JPG eventviewer

I believe the application errors are from amica15mkl.exe crashing, and they all have a similar message. Attached a text file with the details from event viewer. eventviewer.txt https://github.com/japalmer29/amica/files/2909624/eventviewer.txt

Any ideas?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/10#issuecomment-467802854 , or mute the thread https://github.com/notifications/unsubscribe-auth/AKISSligCP9GtL8YTwSUw_mDSvWWdYqkks5vRlkigaJpZM4a5Obu . https://github.com/notifications/beacon/AKISSmU1WMT91AsVhKjDfKkb_KuDK-ZJks5vRlkigaJpZM4a5Obu.gif

Jazelle759 commented 5 years ago

Ok. I just tried running 1 data set and it seems to work but it is predicting more than 12 hours to complete each data set. Is there anyway I can speed it up without the application dying? It is utilizing less than 15% of the CPU power.

japalmer29 commented 5 years ago

Maybe use fixed 'block_size' of 64, 128, or 256, with 'max_threads', 2. Maybe small enough block size won't crash and will be faster.

On Wed, Feb 27, 2019, 9:36 PM Jazelle759 notifications@github.com wrote:

Ok. I just tried running 1 data set and it seems to work but it is predicting more than 12 hours to complete each data set. Is there anyway I can speed it up without the application dying? It is utilizing less than 15% of the CPU power.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/10#issuecomment-467846173, or mute the thread https://github.com/notifications/unsubscribe-auth/AKISShvOPXaJlYFt-8kYLF12WZ2W2d-1ks5vRnvogaJpZM4a5Obu .

japalmer29 commented 5 years ago

Also use 'do_opt_block', 0, (or leave that keyword arg out).

On Wed, Feb 27, 2019, 10:25 PM Jason Palmer japalmer29@gmail.com wrote:

Maybe use fixed 'block_size' of 64, 128, or 256, with 'max_threads', 2. Maybe small enough block size won't crash and will be faster.

On Wed, Feb 27, 2019, 9:36 PM Jazelle759 notifications@github.com wrote:

Ok. I just tried running 1 data set and it seems to work but it is predicting more than 12 hours to complete each data set. Is there anyway I can speed it up without the application dying? It is utilizing less than 15% of the CPU power.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/10#issuecomment-467846173, or mute the thread https://github.com/notifications/unsubscribe-auth/AKISShvOPXaJlYFt-8kYLF12WZ2W2d-1ks5vRnvogaJpZM4a5Obu .

linaismail commented 4 years ago

hello Would you please help me I have the same issue and I really do not understand how to solve it since I am a beginner Reference to non-existent field 'W'.

Error in runamica15 (line 892) weights = mods.W(:,:,1);

Error in pop_runamica (line 239) [W,S,mods] = runamica15(datfile,arglist{:});

Error while evaluating Menu Callback.

Matlab is asking me to download mpich2-1.4-win-x86-64 which is downloaded and installed