sccn / amica

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

AMICA 15 plugin on Debian 10 #21

Open arnodelorme opened 4 years ago

arnodelorme commented 4 years ago

Transfered from https://github.com/sccn/eeglab/issues/136

Description

When using the following command to call AMICA, an error occurs on Debian 10:

[W,S,mods] = runamica15(EEG.data(:,:),'max_threads',1500,'max_iter',7);

eeglab14_1_1b/plugins/AMICA1.5.1/amica15c /Code/amicaouttmp/input.param: Segmentation fault
Something went wrong...
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);

The same error has occurred on 2 different computers with Debian 10. It does not happen when I use the exact same EEG data and the same command on Windows 10. Thus, it is possibly the binfile amica15c has not been updated for the Debian 10 OS.

Versions

OS version Debian10
Matlab version R2019a
EEGLAB version 14.1.1b
arnodelorme commented 4 years ago

You might want to try to recompile AMICA for your platform (Debian). @japalmer29 might know more.

Arno

japalmer29 commented 4 years ago

Hi, this error probably occurs because you are trying to use 1500 threads. Maybe you meant max_iter? Anyway, could you try without a max_threads argument and see if it runs? Best, Jason

On Tue, Mar 3, 2020, 12:53 AM Arnaud Delorme notifications@github.com wrote:

Transfered from sccn/eeglab#136 https://github.com/sccn/eeglab/issues/136 Description

When using the following command to call AMICA, an error occurs on Debian 10:

[W,S,mods] = runamica15(EEG.data(:,:),'max_threads',1500,'max_iter',7);

eeglab14_1_1b/plugins/AMICA1.5.1/amica15c /Code/amicaouttmp/input.param: Segmentation fault Something went wrong... 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);

The same error has occurred on 2 different computers with Debian 10. It does not happen when I use the exact same EEG data and the same command on Windows 10. Thus, it is possibly the binfile amica15c has not been updated for the Debian 10 OS. Versions OS version Debian10 Matlab version R2019a EEGLAB version 14.1.1b

— 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/21?email_source=notifications&email_token=ACRBESRHWNWQLHVBC4UNEFLRFPI7ZA5CNFSM4K7XDGNKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IRXTDJA, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACRBESTOMIFCQOAR7YI6XF3RFPI7ZANCNFSM4K7XDGNA .

heidichiu commented 4 years ago

Hi @japalmer29

I am sorry, that was a typo. I was actually doing: [W,S,mods] = runamica15(EEG.data(:,:),'max_threads',7,'max_iter',1500);

The error was there when I ran this command.

japalmer29 commented 4 years ago

I see. It is possible the the compiled Ubuntu version doesn't work in your environment. But could you try running it from the command line using the Memorize.fdt and amicadef.param files as described at the bottom of the webpage http://sccn.ucsd.edu/~jason/amica_web.html ?

On Tue, Mar 3, 2020, 9:44 AM heidichiu notifications@github.com wrote:

Hi @japalmer29 https://github.com/japalmer29

I am sorry, that was a typo. I was actually doing: [W,S,mods] = runamica15(EEG.data(:,:),'max_threads',7,'max_iter',1500);

The error was there when I ran this command.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/21?email_source=notifications&email_token=ACRBESXFONYPOJ3XKAKNCBDRFRHHRA5CNFSM4K7XDGNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENRUDBY#issuecomment-593707399, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACRBESW7OPSD7FTW2WJWBKTRFRHHRANCNFSM4K7XDGNA .

heidichiu commented 4 years ago

I have downloaded Memorize.fdt and the amicadefs.param.

In the terminal,

cd path/to/download/folder

path/to/amica15mac ./amicadefs.param

It returned "Segmentation fault".

japalmer29 commented 4 years ago

Did you try amica15ubu, the Ubuntu binary version? Amica15mac is for Mac.

From: heidichiu notifications@github.com Sent: Tuesday, March 3, 2020 4:04 PM To: japalmer29/amica amica@noreply.github.com Cc: Jason Palmer japalmer29@gmail.com; Mention mention@noreply.github.com Subject: Re: [japalmer29/amica] AMICA 15 plugin on Debian 10 (#21)

I have downloaded Memorize.fdt and the amicadefs.param.

In the terminal, cd path/to/download/folder path/to/amica15mac ./amicadefs.param

It returned "Segmentation fault".

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/21?email_source=notifications&email_token=ACRBESRVXVTU6Y2T7CM4QPTRFSTWXA5CNFSM4K7XDGNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENSKXFY#issuecomment-593800087 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ACRBESQJRI5OVTYLZ6CD5NDRFSTWXANCNFSM4K7XDGNA . https://github.com/notifications/beacon/ACRBESWLEOFW7BMO6DFPBL3RFSTWXA5CNFSM4K7XDGNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENSKXFY.gif

heidichiu commented 4 years ago

Sorry about that.

I have tried amica15ub and it works now.

However, in the runamica15.m, it uses the bin file amica15c, which does not work for me.

The original code in runamica15.m:

if ispc
    binfile = 'amica15mkl.exe'; % on computing
elseif ismac
    binfile = 'amica15mac';
else
    binfile = 'amica15c;
end

After I changed it to the following, the command runamica15() works.

if ispc
    binfile = 'amica15mkl.exe'; % on computing
elseif ismac
    binfile = 'amica15mac';
else
    binfile = 'amica15ub';
end

So, is this the solution? Will there be any difference between amica15c and amica15ub?

japalmer29 commented 4 years ago

Oh, ok the amica15c was compiled on Fedora Linux cluster maybe with incompatible options. I’m not sure how to distinguish Ubuntu/Debian, but we can at least make a help note to try amica15ub if amica15c doesn’t run.

Thanks,

Jason

From: heidichiu notifications@github.com Sent: Tuesday, March 3, 2020 4:24 PM To: japalmer29/amica amica@noreply.github.com Cc: Jason Palmer japalmer29@gmail.com; Mention mention@noreply.github.com Subject: Re: [japalmer29/amica] AMICA 15 plugin on Debian 10 (#21)

Sorry about that.

I have tried amica15ub and it works now.

However, in the runamica15.m, it uses the bin file amica15c, which does not work for me.

The original code in runamica15.m:

if ispc binfile = 'amica15mkl.exe'; % on computing elseif ismac binfile = 'amica15mac'; else binfile = 'amica15c; end

After I changed it to the following, the command runamica15() works.

if ispc binfile = 'amica15mkl.exe'; % on computing elseif ismac binfile = 'amica15mac'; else binfile = 'amica15ub; end

So, is this the solution? Will there be any difference between amica15c and amica15ub?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/japalmer29/amica/issues/21?email_source=notifications&email_token=ACRBESVZDXIUEO6S6WEHP7LRFSWCHA5CNFSM4K7XDGNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENSMGDQ#issuecomment-593806094 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ACRBESQ2I53TIS4HXV4OQVTRFSWCHANCNFSM4K7XDGNA . https://github.com/notifications/beacon/ACRBESSDGUVYI4SATGQBEKLRFSWCHA5CNFSM4K7XDGNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENSMGDQ.gif

heidichiu commented 4 years ago

Thank you very much for the help!

co60ca commented 4 years ago

@japalmer29 /etc/os-release seems to be present on Centos/Ubuntu/Debian (and world readable) so perhaps inspecting that file is somewhat safe way to determine the OS of the Linux environment. (ID="centos").

Older non systemd environments might not have it but it appears even non-systemd debian has it. So it should be at least better than guessing at this point.

AndersonAAU commented 3 years ago

Hi I've posted an issue I'm having when trying to use AMICA through EEGLAB (windows 10, 64-bit computer). The post is in the following link:

https://github.com/sccn/eeglab/issues/217 would it be possible for anyone to help me?

Thanks in advance, Anderson