ahof1704 / VocalMat

Analysis of ultrasonic vocalizations from mice using computer vision and machine learning
https://www.dietrich-lab.org/vocalmat
Apache License 2.0
20 stars 9 forks source link

Code error #9

Closed Marie-67220 closed 3 years ago

Marie-67220 commented 3 years ago

Hello,

When I run the VocalMat with my own audio files I received the following errors even though I didn't touched the code:

Error using load Unable to read MAT-file C:\Users\ambst\Desktop\VocalMat-master\vocalmat_classifier\Mdl_categorical_DL.mat. Not a binary MAT-file. Try load -ASCII to read as text.

Error in vocalmat_classifier (line 26) model_class_DL = load('Mdl_categorical_DL.mat');

Error in run (line 91) evalin('caller', strcat(script, ';'));

Error in VocalMat (line 102) cd(classifier_path); run('vocalmat_classifier.m')

I'm using the lastest version which is R2021a

Could you help me please?

Thank you in advance for your help.

ahof1704 commented 3 years ago

Hi Marie,

It sounds like the file with the pretrained model is corrupted. Can you confirm the size of Mdl_categorical_DL.mat? it should be about 215MB.

gumadeiras commented 3 years ago

Hi @Marie-67220, you can redownload the pretrained model file from this URL: https://osf.io/3yc79/download Just place it inside vocalmat_classifier(overwrite the file you have now that is not working), and things should work.

Marie-67220 commented 3 years ago

Hello,

Thank you very much for your help! And yes the size of Mdl_categorical_DL.mat was of 114 KO so something was wrong. But now I downloaded the new one and it is working well and can have access to my excel files so thank you a lot it's super great!

But I just get a new error now which is the following:

Error using eval Unrecognized function or variable 'maps_C57'.

Error in diffusionmaps (line 35) eval(['maps' vfilename '= maps;'])

Error in run (line 91) evalin('caller', strcat(script, ';'));

Error in VocalMat (line 110) cd(analysis_path); run('diffusion_maps.m')

ahof1704 commented 3 years ago

Hi @Marie-67220

The error you are experiencing now is regarding our analysis package, which will show the 3D plots to represent mice repertoire. Not really essential, but cool to visualize your data.

At diffusion_maps (line 35) you are creating the variable 'maps_C57', so it should not complain about not finding the variable in its workspace. I wonder if this is something new in this R2021a version.

@Marie-67220 , can you please confirm that the maps variable was created after the command in line 34 of diffusion_maps: [maps,vals] = DiffMaps(data,sigma,t,m);

@gumadeiras , do you have this Matlab version? Let's try to reproduce this error.

Thanks

Marie-67220 commented 3 years ago

Hello,

yes the maps variable was created.

But as you say, I already have access to my analysed file so it's already that

gumadeiras commented 3 years ago

I tested using 2020b and everything worked. Checking MATLAB's documentation, they point out to a behavior change for the eval function in versions ≥2021a that could explain the error: https://www.mathworks.com/help/matlab/ref/eval.html

gumadeiras commented 3 years ago

Hi @Marie-67220, this change in MATLAB's built-in function is breaking VocalMat. We will look into updating the code in the future, but for now MATLAB 2021 is not supported. We have tested with MATLAB 2017 through 2020, so hopefully you can get one of these versions to run the diffusion maps code. As @ahof1704 pointed out, this is primarily for visualizations, so you can still run all the analysis using the 2021 version, just not the diffusion maps part.

I'm closing this issue, but feel free to open another one if you come across any other problems!