📄 wave_clus.m
字号:
verflag = [];end cluster_class=zeros(size(spikes,1),2);cluster_class(:,1) = classes(:);cluster_class(:,2) = USER_DATA{3}';outfile=['times_' par.filename(1:end-4)];if ~isempty(USER_DATA{7}) inspk = USER_DATA{7}; save(outfile, 'cluster_class', 'par','spikes','inspk', 'verflag');else save(outfile, 'cluster_class', 'par','spikes', 'verflag');endmovefile([handles.par.fnamespc '.dg_01.lab'], [handles.par.fnamesave '.dg_01.lab']);movefile([handles.par.fnamespc '.dg_01'], [handles.par.fnamesave '.dg_01']);%Save figuresh_figs=get(0,'children');h_fig = findobj(h_figs,'tag','wave_clus_figure');h_fig1 = findobj(h_figs,'tag','wave_clus_aux');h_fig2= findobj(h_figs,'tag','wave_clus_aux1');if strcmp(outfile(7:9),'CSC') if ~isempty(h_fig) figure(h_fig); set(gcf,'papertype','usletter','paperorientation','portrait','paperunits','inches') set(gcf,'paperposition',[.25 .25 10.5 7.8]) eval(['print -djpeg40 fig2print_ch' outfile(10:end)]); end if ~isempty(h_fig1) figure(h_fig1); set(gcf,'papertype','usletter','paperorientation','portrait','paperunits','inches') set(gcf,'paperposition',[.25 .25 10.5 7.8]) eval(['print -djpeg40 fig2print_ch' outfile(10:end) 'a']); end if ~isempty(h_fig2) figure(h_fig2); set(gcf,'papertype','usletter','paperorientation','portrait','paperunits','inches') set(gcf,'paperposition',[.25 .25 10.5 7.8]) eval(['print -djpeg40 fig2print_ch' outfile(10:end) 'b']); endelse if ~isempty(h_fig) figure(h_fig); set(gcf,'papertype','usletter','paperorientation','portrait','paperunits','inches') set(gcf,'paperposition',[.25 .25 10.5 7.8]) eval(['print -djpeg40 fig2print_' outfile(7:end)]); end if ~isempty(h_fig1) figure(h_fig1); set(gcf,'papertype','usletter','paperorientation','portrait','paperunits','inches') set(gcf,'paperposition',[.25 .25 10.5 7.8]) eval(['print -djpeg40 fig2print_' outfile(7:end) 'a']); end if ~isempty(h_fig2) figure(h_fig2); set(gcf,'papertype','usletter','paperorientation','portrait','paperunits','inches') set(gcf,'paperposition',[.25 .25 10.5 7.8]) eval(['print -djpeg40 fig2print_' outfile(7:end) 'b']); endend% --- Executes on selection change in data_type_popupmenu.function data_type_popupmenu_Callback(hObject, eventdata, handles)aux = get(hObject, 'String');aux1 = get(hObject, 'Value');handles.datatype = aux(aux1);guidata(hObject, handles);% --- Executes on button press in set_parameters_button.function set_parameters_button_Callback(hObject, eventdata, handles)helpdlg('Check the set_parameters files in the subdirectory Wave_clus\Parameters_files');%SETTING OF FORCE MEMBERSHIP% --------------------------------------------------------------------function force_button_Callback(hObject, eventdata, handles)%set(gcbo,'value',1);USER_DATA = get(handles.wave_clus_figure,'userdata');par = USER_DATA{1};spikes = USER_DATA{2};classes = USER_DATA{6};inspk = USER_DATA{7};% Fixed clusters are not considered for forcingif get(handles.fix1_button,'value') ==1 fix_class = USER_DATA{10}'; classes(fix_class)=-1;endif get(handles.fix2_button,'value') ==1 fix_class = USER_DATA{11}'; classes(fix_class)=-1;endif get(handles.fix3_button,'value') ==1 fix_class = USER_DATA{12}'; classes(fix_class)=-1;end% Get fixed clusters from aux figuresfor i=4:par.max_clus eval(['fixx = par.fix' num2str(i) ';']); if fixx == 1 fix_class = USER_DATA{12+i-3}'; classes(fix_class)=-1; endendswitch par.force_feature case 'spk' f_in = spikes(find(classes~=0 & classes~=-1),:); f_out = spikes(find(classes==0),:); case 'wav' if isempty(inspk) [inspk] = wave_features_wc(spikes,handles); % Extract spike features. USER_DATA{7} = inspk; end f_in = inspk(find(classes~=0 & classes~=-1),:); f_out = inspk(find(classes==0),:);endclass_in = classes(find(classes~=0 & classes~=-1));if get(handles.force_button,'value') ==1 class_out = force_membership_wc(f_in, class_in, f_out, handles); classes(find(classes==0)) = class_out; set(handles.force_button,'string','Forced');elseif get(handles.force_button,'value') ==0 classes = USER_DATA{9}; set(handles.force_button,'string','Force');endUSER_DATA{6} = classes(:)';set(handles.wave_clus_figure,'userdata',USER_DATA)handles.setclus = 1;plot_spikes(handles);set(handles.fix1_button,'value',0);set(handles.fix2_button,'value',0);set(handles.fix3_button,'value',0);for i=4:par.max_clus eval(['par.fix' num2str(i) '=0;']);end % PLOT ALL PROJECTIONS BUTTON% --------------------------------------------------------------------function Plot_all_projections_button_Callback(hObject, eventdata, handles)Plot_all_features(handles)% --------------------------------------------------------------------% fix1 button --------------------------------------------------------------------function fix1_button_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');classes = USER_DATA{6};fix_class = find(classes==1);if get(handles.fix1_button,'value') ==1 USER_DATA{10} = fix_class;else USER_DATA{10} = [];endset(handles.wave_clus_figure,'userdata',USER_DATA)h_figs=get(0,'children');h_fig2 = findobj(h_figs,'tag','wave_clus_aux');h_fig1 = findobj(h_figs,'tag','wave_clus_aux1');set(h_fig2,'userdata',USER_DATA)set(h_fig1,'userdata',USER_DATA)% fix2 button --------------------------------------------------------------------function fix2_button_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');classes = USER_DATA{6};fix_class = find(classes==2);if get(handles.fix2_button,'value') ==1 USER_DATA{11} = fix_class;else USER_DATA{11} = [];endset(handles.wave_clus_figure,'userdata',USER_DATA)h_figs=get(0,'children');h_fig2 = findobj(h_figs,'tag','wave_clus_aux');h_fig1 = findobj(h_figs,'tag','wave_clus_aux1');set(h_fig2,'userdata',USER_DATA)set(h_fig1,'userdata',USER_DATA)% fix3 button --------------------------------------------------------------------function fix3_button_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');classes = USER_DATA{6};fix_class = find(classes==3);if get(handles.fix3_button,'value') ==1 USER_DATA{12} = fix_class;else USER_DATA{12} = [];endset(handles.wave_clus_figure,'userdata',USER_DATA)h_figs=get(0,'children');h_fig2 = findobj(h_figs,'tag','wave_clus_aux');h_fig1 = findobj(h_figs,'tag','wave_clus_aux1');set(h_fig2,'userdata',USER_DATA)set(h_fig1,'userdata',USER_DATA)%SETTING OF SPIKE FEATURES OR PROJECTIONS% --------------------------------------------------------------------function spike_shapes_button_Callback(hObject, eventdata, handles)set(gcbo,'value',1);set(handles.spike_features_button,'value',0);handles.setclus = 1;plot_spikes(handles);% -------------------------------------------------------------------function spike_features_button_Callback(hObject, eventdata, handles)set(gcbo,'value',1);set(handles.spike_shapes_button,'value',0);handles.setclus = 1;plot_spikes(handles);%SETTING OF SPIKE PLOTS% --------------------------------------------------------------------function plot_all_button_Callback(hObject, eventdata, handles)set(gcbo,'value',1);set(handles.plot_average_button,'value',0);handles.setclus = 1;plot_spikes(handles);% --------------------------------------------------------------------function plot_average_button_Callback(hObject, eventdata, handles)set(gcbo,'value',1);set(handles.plot_all_button,'value',0);handles.setclus = 1;plot_spikes(handles);%SETTING OF ISI HISTOGRAMS% --------------------------------------------------------------------function isi1_nbins_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');par = USER_DATA{1};par.nbins1 = str2num(get(hObject, 'String'));USER_DATA{1} = par;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)% --------------------------------------------------------------------function isi1_bin_step_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');par = USER_DATA{1};par.bin_step1 = str2num(get(hObject, 'String'));USER_DATA{1} = par;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)% --------------------------------------------------------------------function isi2_nbins_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');par = USER_DATA{1};par.nbins2 = str2num(get(hObject, 'String'));USER_DATA{1} = par;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)% --------------------------------------------------------------------function isi2_bin_step_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');par = USER_DATA{1};par.bin_step2 = str2num(get(hObject, 'String'));USER_DATA{1} = par;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)% --------------------------------------------------------------------function isi3_nbins_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');par = USER_DATA{1};par.nbins3 = str2num(get(hObject, 'String'));USER_DATA{1} = par;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)% --------------------------------------------------------------------function isi3_bin_step_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');par = USER_DATA{1};par.bin_step3 = str2num(get(hObject, 'String'));USER_DATA{1} = par;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)% --------------------------------------------------------------------function isi0_nbins_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');par = USER_DATA{1};par.nbins0 = str2num(get(hObject, 'String'));USER_DATA{1} = par;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)% --------------------------------------------------------------------function isi0_bin_step_Callback(hObject, eventdata, handles)USER_DATA = get(handles.wave_clus_figure,'userdata');par = USER_DATA{1};par.bin_step0 = str2num(get(hObject, 'String'));USER_DATA{1} = par;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)%SETTING OF ISI BUTTONS% --------------------------------------------------------------------function isi1_accept_button_Callback(hObject, eventdata, handles)set(gcbo,'value',1);set(handles.isi1_reject_button,'value',0);% --------------------------------------------------------------------function isi1_reject_button_Callback(hObject, eventdata, handles)set(gcbo,'value',1);set(handles.isi1_accept_button,'value',0);USER_DATA = get(handles.wave_clus_figure,'userdata');classes = USER_DATA{6};classes(find(classes==1))=0;USER_DATA{6} = classes;USER_DATA{9} = classes;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)set(gcbo,'value',0);set(handles.isi1_accept_button,'value',1);% --------------------------------------------------------------------function isi2_accept_button_Callback(hObject, eventdata, handles)set(gcbo,'value',1);set(handles.isi2_reject_button,'value',0);% --------------------------------------------------------------------function isi2_reject_button_Callback(hObject, eventdata, handles)set(gcbo,'value',1);set(handles.isi2_accept_button,'value',0);USER_DATA = get(handles.wave_clus_figure,'userdata');classes = USER_DATA{6};classes(find(classes==2))=0;USER_DATA{6} = classes;USER_DATA{9} = classes;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)set(gcbo,'value',0);set(handles.isi2_accept_button,'value',1);% --------------------------------------------------------------------function isi3_accept_button_Callback(hObject, eventdata, handles)set(gcbo,'value',1);set(handles.isi3_reject_button,'value',0);% --------------------------------------------------------------------function isi3_reject_button_Callback(hObject, eventdata, handles)set(gcbo,'value',1);set(handles.isi3_accept_button,'value',0);USER_DATA = get(handles.wave_clus_figure,'userdata');classes = USER_DATA{6};classes(find(classes==3))=0;USER_DATA{6} = classes;USER_DATA{9} = classes;set(handles.wave_clus_figure,'userdata',USER_DATA);handles.setclus = 1;plot_spikes(handles)set(gcbo,'value',0);set(handles.isi3_accept_button,'value',1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -