csn-le / wave_clus

A fast and unsupervised algorithm for spike detection and sorting using wavelets and super-paramagnetic clustering
127 stars 66 forks source link

No temperature in wave_clus #136

Closed sllevy2828 closed 5 years ago

sllevy2828 commented 5 years ago

I'm using wave_clus for the first time and am not able to see anything in the temperature graph on the gui with my data. I've checked that the temperature settings are still at the default. I also tried loading the simulated data - screenshot below: No temperature

There error in the screenshot pops up after I attempt to select a new temperature (even though the graph is not populated).

Are there any toolboxes or functions that I might be missing?

Thanks.

ferchaure commented 5 years ago

Do you remove the two temporary files that wave_clus create in the folder? (or maybe matlab doesn't have permissions to write in that place)

sllevy2828 commented 5 years ago

After I have loaded the data via the wave clus gui, I don't see any temporary or new files created in the folder. MATLAB should have write permission to the folder. image

What are the temporary files usually called?

ferchaure commented 5 years ago

the 'data_' files are the temporal ones. Do this: copy the raw data you want to sort to another folder and run wave_clus there. It may be that wave_clus found an older solution in that folder and it is trying to load it.

sllevy2828 commented 5 years ago

Thanks for the quick response.

I initially had run wave_clus on new data in an unpopulated folder w/ no existing solution which is when I didn't see any temperature variables.

But just to verify, I also just created a new folder, and moved the sample data's times_CSC.mat file (downloaded from the website) into that folder, re-ran wave clus. There's still no temperature visible in the plot.

Does wave_clus require any particular external functions to run?

ferchaure commented 5 years ago

the file times_CSC.mat is a solution file (without temperature map) for that reason you can't see a temperature map. In that old recording the file Ncs is the raw data, but the format is quite old and not supported. The easy way to fix that is renaming the file times_CSC.mat to CSCaux_spikes.mat, doing that wave_clus (it detects any XXX_spikes.mat file as a detected spikes files) will recalculate a times for it.

sllevy2828 commented 5 years ago

I see. I tried this and ran into the error "Undefined function or variable 'index'." Since I was only running the simulation data to make sure I have the workflow running, I switched back over to my actual data.

The data (a .ns6 blackrock file) has been pre-processed and I have the CSC#_spikes.mat file, which contains a spikes matrix and a time index matrix. It does not contain a sampling rate, so for now, I'd like to use the default parameters.

Error when I loaded the CSC#_spikes.mat via the wave_clus gui:

Reference to non-existent field 'par'. Error in wave_features (line 4) scales = handles.par.scales; Error in wave_clus>load_data_button_Callback (line 234) [inspk] = wave_features(spikes,handles.par); %Extract spike features. Error in gui_mainfcn (line 95) feval(varargin{:}); Error in wave_clus (line 63) gui_mainfcn(gui_State, varargin{:}); Error while evaluating UIControl Callback

ferchaure commented 5 years ago

I see. I tried this and ran into the error "Undefined function or variable 'index'." Since I was only running the simulation data to make sure I have the workflow running, I switched back over to my actual data.

My bad, I forgot how to tell you that you have to add the spikes times (in a variable called index) from that old times file as well. In tht recording, the index of the spikes are probably inside the variable cluser_class.

Error when I loaded the CSC#_spikes.mat via the wave_clus gui: Reference to non-existent field 'par'.

Are you using the current version of wave_clus from this repo? That error looks like from an older version.

Notice that you don't need to call the file like that. Adding the _spikes, is a way to tell wave_clus that you used the function Get_spikes to do the filtering and detection of spikes.

sllevy2828 commented 5 years ago

Yes, I am using the latest version from this repo (I downloaded the wave_clus file from the github).

Error when I loaded the CSC#_spikes.mat via the wave_clus gui: Reference to non-existent field 'par'.

Are you using the current version of wave_clus from this repo? That error looks like from an older version.

Which file should I load in through the gui? The output of my preprocessing scripts (from someone else in the lab) are CSC#_spikes and CSC#. Loading both of these files leads to the same error about sampling rate: "Wave_clus didn't find a sampling rate in file. It will use the input parameter or set_parameters.m" with the error from above.

Notice that you don't need to call the file like that. Adding the _spikes, is a way to tell wave_clus that you used the function Get_spikes to do the filtering and detection of spikes.

ferchaure commented 5 years ago

Yes, I am using the latest version from this repo (I downloaded the wave_clus file from the github).

Sorry but the lines I can see from the error aren't from the current code (https://github.com/csn-le/wave_clus/archive/master.zip)

"Wave_clus didn't find a sampling rate in file. It will use the input parameter or set_parameters.m"

That is just a warning that wave_clus couldn't load the sampling rate directly from the raw data.

I can't check the error because the code you are using is from a unknown version.

sllevy2828 commented 5 years ago

Ah! It now works. Although I had deleted the older versions of wave clus that I found in Matlab's path, there must have been some older functions of wave clus interfering because when I moved the newest wave clus folder to the top of the path - it now runs smoothly and creates the temperature maps.

Thank you for your patience and help!