diff --git a/m/zef_init_parcellation.m b/m/zef_init_parcellation.m index 6806a9acd..a7a7b8816 100644 --- a/m/zef_init_parcellation.m +++ b/m/zef_init_parcellation.m @@ -32,6 +32,26 @@ zef.use_parcellation = 0; end; +if not(isfield(zef,'parcellation_roi_name')); + zef.parcellation_roi_name{1} = 'User-defined ROI'; +end; + +if not(isfield(zef,'parcellation_roi_center')); + zef.parcellation_roi_center = [0 0 0]; +end; + +if not(isfield(zef,'parcellation_roi_radius')); + zef.parcellation_roi_radius = 10; +end; + +if not(isfield(zef,'parcellation_roi_color')); + zef.parcellation_roi_color = [0.56078 0.91373 1]; +end; + +if not(isfield(zef,'parcellation_roi_selected')); + zef.parcellation_roi_selected = 1; +end; + zef.time_series_tools_dir = fileparts(which('zef_time_series_plot.m')); zef.time_series_tools_name_list = cell(0); zef.time_series_tools_file_list = cell(0); diff --git a/m/zef_parcellation_default.m b/m/zef_parcellation_default.m index 7158e35d2..b88e994ff 100644 --- a/m/zef_parcellation_default.m +++ b/m/zef_parcellation_default.m @@ -1,31 +1,31 @@ %Copyright © 2018- Sampsa Pursiainen & ZI Development Team %See: https://github.com/sampsapursiainen/zeffiro_interface -function [c_table,c_points] = zef_parcellation_default(void) +function [c_table,c_points] = zef_parcellation_default(zef) c_table = cell(0); c_points = cell(0); c_ind = 0; -submesh_ind = evalin('base','zef.submesh_ind'); +submesh_ind = eval('zef.submesh_ind'); if isempty(submesh_ind) - submesh_ind = ones(size(evalin('base','zef.brain_ind'))); + submesh_ind = ones(size(eval('zef.brain_ind'))); end -if evalin('base','zef.parcellation_merge') - c_table = evalin('base','zef.parcellation_colortable'); - c_points = evalin('base','zef.parcellation_points'); +if eval('zef.parcellation_merge') + c_table = eval('zef.parcellation_colortable'); + c_points = eval('zef.parcellation_points'); else - evalin('base','zef.parcellation_selected = [];'); + eval('zef.parcellation_selected = [];'); end -s_interp_ind = evalin('base','zef.source_interpolation_ind{1}'); +s_interp_ind = eval('zef.source_interpolation_ind{1}'); t_ind = 1 + length(c_table); c_table{t_ind}{1} = 'SG'; -c_points_aux = evalin('base','zef.source_positions'); +c_points_aux = zef.source_positions'; c_points_aux = [[0:size(c_points_aux,1)-1]' c_points_aux]; -c_table{t_ind}{4} = zeros(size(c_points,1),1); +c_table{t_ind}{4} = zeros(size(c_points_aux,1),1); c_points{t_ind} = c_points_aux; @@ -36,21 +36,21 @@ visible_vec = []; color_cell = cell(0); aux_brain_ind = []; -compartment_tags = evalin('base','zef.compartment_tags'); +compartment_tags = eval('zef.compartment_tags'); for k = 1 : length(compartment_tags) var_0 = ['zef.' compartment_tags{k} '_on']; var_1 = ['zef.' compartment_tags{k} '_sigma']; var_2 = ['zef.' compartment_tags{k} '_priority']; var_3 = ['zef.' compartment_tags{k} '_visible']; - color_str = evalin('base',['zef.' compartment_tags{k} '_color']); - on_val = evalin('base',var_0); + color_str = eval(['zef.' compartment_tags{k} '_color']); + on_val = eval(var_0); if on_val i = i + 1; c_str = compartment_tags{k}; - if ismember(evalin('base',['zef.' c_str '_sources']),[1 2]) - I = find(evalin('base','zef.domain_labels(zef.brain_ind)')==i); + if ismember(eval(['zef.' c_str '_sources']),[1 2]) + I = find(eval('zef.domain_labels(zef.brain_ind)')==i); submesh_ind_aux = unique(submesh_ind(I)); if isempty(submesh_ind_aux) submesh_ind_aux = 1; @@ -61,11 +61,11 @@ I_aux = find(submesh_ind(I)==submesh_ind_aux(ell_ind)); J = unique(s_interp_ind(I(I_aux),:)); if length(submesh_ind_aux) > 1 - c_table{t_ind}{2}{c_ind,1} = [evalin('base',['zef.' c_str '_name']) ' ' num2str(submesh_ind_aux(ell_ind))]; + c_table{t_ind}{2}{c_ind,1} = [eval(['zef.' c_str '_name']) ' ' num2str(submesh_ind_aux(ell_ind))]; else - c_table{t_ind}{2}{c_ind,1} = [evalin('base',['zef.' c_str '_name'])]; + c_table{t_ind}{2}{c_ind,1} = [eval(['zef.' c_str '_name'])]; end - c_table{t_ind}{3}(c_ind,1:3) = evalin('base',['zef.' c_str '_color']); + c_table{t_ind}{3}(c_ind,1:3) = eval(['zef.' c_str '_color']); c_table{t_ind}{3}(c_ind,5) = c_ind; c_table{t_ind}{5}(c_ind,:) = [i submesh_ind_aux(ell_ind)]; c_table{t_ind}{4}(J) = c_ind; diff --git a/m/zef_parcellation_roi_add.m b/m/zef_parcellation_roi_add.m new file mode 100644 index 000000000..0dbcece0e --- /dev/null +++ b/m/zef_parcellation_roi_add.m @@ -0,0 +1,10 @@ +function zef = zef_parcellation_roi_add(zef) + +zef.parcellation_roi_selected = 1; +zef.parcellation_roi_center = [0 0 0; zef.parcellation_roi_center]; +zef.parcellation_roi_radius = [10 zef.parcellation_roi_radius]; +zef.parcellation_roi_color = [0.56078 0.91373 1; zef.parcellation_roi_color]; +zef.parcellation_roi_name = [{'Used-defined ROI'} zef.parcellation_roi_name]; +zef = zef_update_parcellation(zef); + +end \ No newline at end of file diff --git a/m/zef_parcellation_roi_delete.m b/m/zef_parcellation_roi_delete.m new file mode 100644 index 000000000..7a0406390 --- /dev/null +++ b/m/zef_parcellation_roi_delete.m @@ -0,0 +1,19 @@ +function zef = zef_parcellation_roi_delete(zef) + +I = [1 : size(zef.parcellation_roi_center,1)]; +I = setdiff(I,zef.parcellation_roi_selected); +if not(isempty(I)) +zef.parcellation_roi_center = zef.parcellation_roi_center(I,:); +zef.parcellation_roi_color = zef.parcellation_roi_color(I,:); +zef.parcellation_roi_radius = zef.parcellation_roi_radius(I); +zef.parcellation_roi_name = zef.parcellation_roi_name(I); +else +zef.parcellation_roi_center = [0 0 0]; +zef.parcellation_roi_radius = [10]; +zef.parcellation_roi_color = [0.56078 0.91373 1]; +zef.parcellation_roi_name = [{'Used-defined ROI'}]; +end +zef.parcellation_roi_selected = 1; +zef = zef_update_parcellation(zef); + +end \ No newline at end of file diff --git a/m/zef_parcellation_roi_embed.m b/m/zef_parcellation_roi_embed.m new file mode 100644 index 000000000..47bf035d6 --- /dev/null +++ b/m/zef_parcellation_roi_embed.m @@ -0,0 +1,39 @@ +%Copyright © 2018- Sampsa Pursiainen & ZI Development Team +%See: https://github.com/sampsapursiainen/zeffiro_interface +function [c_table,c_points] = zef_parcellation_roi_embed(zef) + +c_table = cell(0); +c_points = cell(0); + +if eval('zef.parcellation_merge') + c_table = eval('zef.parcellation_colortable'); + c_points = eval('zef.parcellation_points'); +else + eval('zef.parcellation_selected = [];'); +end + +t_ind = length(c_table); + +t_ind = t_ind + 1; + +c_table{t_ind}{1} = 'ROI'; + +c_points_aux = []; +c_table{t_ind}{4} = []; +start_index = 0; +for i = 1 : size(zef.parcellation_roi_center,1) +c_points_aux_0 = zef.source_positions; +c_points_aux_1 = c_points_aux_0(find(sqrt(sum((c_points_aux_0-zef.parcellation_roi_center(i,:)).^2,2))<= zef.parcellation_roi_radius(i)),:); +c_points_aux = [c_points_aux ; [[start_index:start_index + size(c_points_aux_1,1)-1]' c_points_aux_1]]; +start_index = start_index + size(c_points_aux_1,1); +c_table{t_ind}{4} = [c_table{t_ind}{4} ; i*ones(size(c_points_aux_1,1),1)]; +c_table{t_ind}{2}{i,1} = zef.parcellation_roi_name{i}; +c_table{t_ind}{3}(i,1:3) = zef.parcellation_roi_color(i,:); +c_table{t_ind}{3}(i,5) = i; +end + +c_points{t_ind} = c_points_aux; +c_table{t_ind}{3}(:,1:3) = round(255*c_table{t_ind}{3}(:,1:3)); +c_table{t_ind}{4} = c_table{t_ind}{4}(:); + +end diff --git a/m/zef_parcellation_roi_pick_center.m b/m/zef_parcellation_roi_pick_center.m new file mode 100644 index 000000000..3c3a47d51 --- /dev/null +++ b/m/zef_parcellation_roi_pick_center.m @@ -0,0 +1,9 @@ +function zef = zef_parcellation_roi_pick_center(zef) + +if isempty(findobj(allchild(zef.h_axes1),'Type','DataTip'))~=1 + zef.h_datatip = findobj(allchild(zef.h_axes1),'Type','DataTip'); + zef.parcellation_roi_center(zef.parcellation_roi_selected,:) = [h_datatip(1).X h_datatip(1).Y h_datatip(1).Z]; + zef.h_parcellation_roi_center.String = num2str(zef.parcellation_roi_center(zef.parcellation_roi_selected,:)); +end + +end \ No newline at end of file diff --git a/m/zef_parcellation_roi_pick_color.m b/m/zef_parcellation_roi_pick_color.m new file mode 100644 index 000000000..21b578626 --- /dev/null +++ b/m/zef_parcellation_roi_pick_color.m @@ -0,0 +1,11 @@ +function zef = zef_parcellation_roi_pick_color(zef) + +color_vec = uisetcolor; +if not(isequal(color_vec,0)) + color_str = num2str(color_vec); + zef.h_parcellation_roi_color.String = color_str; + zef.h_parcellation_roi_color.BackgroundColor = color_vec; + zef.parcellation_roi_color(zef.parcellation_roi_selected,:) = color_vec; +end + +end \ No newline at end of file diff --git a/m/zef_parcellation_roi_plot.m b/m/zef_parcellation_roi_plot.m new file mode 100644 index 000000000..227d6c93f --- /dev/null +++ b/m/zef_parcellation_roi_plot.m @@ -0,0 +1,19 @@ +function zef_parcellation_roi_plot(zef) + +[s_x,s_y,s_z] = sphere(100); +h_axes1 = zef.h_axes1; +hold(h_axes1,'on'); +h_parcellation_roi_sphere = findobj(h_axes1,'Tag','additional: parcellation roi'); +delete(h_parcellation_roi_sphere); +for i = 1 : size(zef.parcellation_roi_center,1) +s_x_2 = zef.parcellation_roi_radius(i)*s_x + zef.parcellation_roi_center(i,1); +s_y_2 = zef.parcellation_roi_radius(i)*s_y + zef.parcellation_roi_center(i,2); +s_z_2 = zef.parcellation_roi_radius(i)*s_z + zef.parcellation_roi_center(i,3); +h_plot = surf(h_axes1,s_x_2,s_y_2,s_z_2); +set(h_plot,'facealpha',1,'edgecolor','none','facecolor',zef.parcellation_roi_color(i,:),'tag','additional: parcellation roi'); +end + +drawnow; +hold(h_axes1,'off'); + +end \ No newline at end of file diff --git a/m/zef_parcellation_tool_window.m b/m/zef_parcellation_tool_window.m index 248ce9630..4642ec31f 100644 --- a/m/zef_parcellation_tool_window.m +++ b/m/zef_parcellation_tool_window.m @@ -46,6 +46,37 @@ 'KeyPressFcn',blanks(0),... 'KeyReleaseFcn',blanks(0)); +h4 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'HorizontalAlignment','left',... + 'String','Parcellation name:',... + 'Style','text',... + 'Position',[0.0662983425414365 0.939189189189189 0.364640883977901 0.0351351351351351],... + 'Children',[],... + 'CreateFcn', '',... + 'Tag','text2',... + 'FontSize',0.320178775199696,... + 'FontWeight','bold'); + +h5 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','Parcellation name',... + 'Style','edit',... + 'Position',[0.515 0.939189189189189 0.435 0.0351351351351351],... + 'BackgroundColor',[0.9 0.9 0.9],... + 'Callback','zef.parcellation_name = get(zef.h_parcellation_name,''string'');',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','edit1',... + 'FontSize',0.320178775199696); + +zef.h_parcellation_name = h5; +zef.h_parcellation_name.HorizontalAlignment = 'right'; + zef.h_parcellation_tool = h1; h2 = uicontrol(... @@ -56,7 +87,7 @@ 'Style','listbox',... 'Value',[],... 'ValueMode',get(0,'defaultuicontrolValueMode'),... - 'Position',[0.0580110497237569 0.372972972972973 0.889502762430939 0.558108108108108],... + 'Position',[0.0580110497237569 0.37 0.889502762430939 0.28],... 'Callback','zef.parcellation_selected = get(zef.h_parcellation_list,''value'');',... 'Children',[],... 'CreateFcn', '' ,... @@ -65,50 +96,239 @@ zef.h_parcellation_list = h2; -h3 = uicontrol(... +h40 = uicontrol(... 'Parent',h1,... 'Units','normalized',... 'FontUnits','normalized',... - 'String','Colortable',... - 'Style',get(0,'defaultuicontrolStyle'),... - 'Position',[0.0497237569060773 0.318918918918919 0.234806629834254 0.0378378378378378],... - 'Callback','zef_import_parcellation_colortable;',... + 'HorizontalAlignment','left',... + 'String','ROI name:',... + 'Style','text',... + 'Position',[0.0662983425414365 0.895 0.364640883977901 0.0351351351351351],... + 'Children',[],... + 'CreateFcn', '',... + 'Tag','text2',... + 'FontSize',0.320178775199696,... + 'FontWeight','bold'); + +h50 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','ROI name',... + 'Style','edit',... + 'Position',[0.515 0.895 0.435 0.0351351351351351],... + 'BackgroundColor',[0.9 0.9 0.9],... + 'Callback','zef.parcellation_roi_name{zef.parcellation_selected} = get(zef.h_parcellation_roi_name,''string''); zef = zef_update_parcellation(zef);',... 'Children',[],... 'CreateFcn', '' ,... - 'Tag','pushbutton1',... - 'FontSize',0.293497210599722); + 'Tag','edit1',... + 'FontSize',0.320178775199696); -zef.h_import_parcellation_colortable = h3; +zef.h_parcellation_roi_name = h50; +zef.h_parcellation_roi_name.HorizontalAlignment = 'right'; -h4 = uicontrol(... +h41 = uicontrol(... 'Parent',h1,... 'Units','normalized',... 'FontUnits','normalized',... 'HorizontalAlignment','left',... - 'String','Parcellation name:',... + 'String','ROI center:',... 'Style','text',... - 'Position',[0.0662983425414365 0.939189189189189 0.364640883977901 0.0351351351351351],... + 'Position',[0.0662983425414365 0.85 0.364640883977901 0.0351351351351351],... 'Children',[],... 'CreateFcn', '',... 'Tag','text2',... 'FontSize',0.320178775199696,... 'FontWeight','bold'); -h5 = uicontrol(... +h61 = uicontrol(... 'Parent',h1,... 'Units','normalized',... 'FontUnits','normalized',... - 'String','Parcellation name',... + 'String',zef.parcellation_roi_name,... + 'Value',1,... + 'Style','popupmenu',... + 'Position',[0.515 0.71 0.435 0.0351351351351351],... + 'BackgroundColor',[0.9 0.9 0.9],... + 'Callback','zef.parcellation_roi_selected = zef.h_parcellation_roi_list.Value; zef = zef_update_parcellation(zef);',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','popupmenu1',... + 'FontSize',0.320178775199696); + +zef.h_parcellation_roi_list = h61; + +h51 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','ROI center',... 'Style','edit',... - 'Position',[0.472375690607735 0.939189189189189 0.477900552486188 0.0351351351351351],... + 'Position',[0.515 0.85 0.435 0.0351351351351351],... 'BackgroundColor',[0.9 0.9 0.9],... - 'Callback','zef.parcellation_name = get(zef.h_parcellation_name,''string'');',... + 'Callback','zef.parcellation_roi_center(zef.parcellation_roi_selected,:) = str2num(get(zef.h_parcellation_roi_center,''string''));',... 'Children',[],... 'CreateFcn', '' ,... 'Tag','edit1',... 'FontSize',0.320178775199696); -zef.h_parcellation_name = h5; +zef.h_parcellation_roi_center = h51; +zef.h_parcellation_roi_center.HorizontalAlignment = 'right'; + +h43 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'HorizontalAlignment','left',... + 'String','ROI radius:',... + 'Style','text',... + 'Position',[0.0662983425414365 0.805 0.364640883977901 0.0351351351351351],... + 'Children',[],... + 'CreateFcn', '',... + 'Tag','text2',... + 'FontSize',0.320178775199696,... + 'FontWeight','bold'); + +h53 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','Parcellation ROI radius',... + 'Style','edit',... + 'Position',[0.7325 0.805 0.2175 0.0351351351351351],... + 'BackgroundColor',[0.9 0.9 0.9],... + 'Callback','zef.parcellation_roi_radius(zef.parcellation_roi_selected) = str2num(get(zef.h_parcellation_roi_radius,''string''));',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','edit1',... + 'FontSize',0.320178775199696); + +zef.h_parcellation_roi_radius = h53; +zef.h_parcellation_roi_radius.HorizontalAlignment = 'right'; + +h44 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'HorizontalAlignment','left',... + 'String','ROI color:',... + 'Style','text',... + 'Position',[0.0662983425414365 0.76 0.364640883977901 0.0351351351351351],... + 'Children',[],... + 'CreateFcn', '',... + 'Tag','text2',... + 'FontSize',0.320178775199696,... + 'FontWeight','bold'); + +h54 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','ROI color',... + 'Style','edit',... + 'Position',[0.515 0.76 0.435 0.0351351351351351],... + 'BackgroundColor',[0.9 0.9 0.9],... + 'Callback','zef.parcellation_roi_color(zef.parcellation_roi_selected,:) = str2num(get(zef.h_parcellation_roi_color,''string''));',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','edit1',... + 'FontSize',0.320178775199696); + +zef.h_parcellation_roi_color = h54; +zef.h_parcellation_roi_color.HorizontalAlignment = 'right'; + +h30 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','Plot ROIs',... + 'Style',get(0,'defaultuicontrolStyle'),... + 'Position',[0.732 0.66 0.2175 0.0378378378378378],... + 'Callback','zef_parcellation_roi_plot(zef);',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','pushbutton1',... + 'FontSize',0.293497210599722); + +h31 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','Pick ROI color',... + 'Style',get(0,'defaultuicontrolStyle'),... + 'Position',[0.5050 0.66 0.2175 0.0378378378378378],... + 'Callback','zef = zef_parcellation_roi_pick_color(zef);',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','pushbutton1',... + 'FontSize',0.293497210599722); + +h32 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','Pick ROI center',... + 'Style',get(0,'defaultuicontrolStyle'),... + 'Position',[0.2775 0.66 0.2175 0.0378378378378378],... + 'Callback','zef = zef_parcellation_roi_pick_center(zef);',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','pushbutton1',... + 'FontSize',0.293497210599722); + +h33 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','Embed ROIs',... + 'Style',get(0,'defaultuicontrolStyle'),... + 'Position',[0.05 0.66 0.2175 0.0378378378378378],... + 'Callback','[zef.parcellation_colortable, zef.parcellation_points] = zef_parcellation_roi_embed(zef); zef.parcellation_list = []; zef_update_parcellation;',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','pushbutton1',... + 'FontSize',0.293497210599722); + +h34 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','Add ROI',... + 'Style',get(0,'defaultuicontrolStyle'),... + 'Position',[0.05 0.705 0.2175 0.0378378378378378],... + 'Callback','zef = zef_parcellation_roi_add(zef);',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','pushbutton1',... + 'FontSize',0.293497210599722); + +h35 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','Delete ROI',... + 'Style',get(0,'defaultuicontrolStyle'),... + 'Position',[0.2775 0.705 0.2175 0.0378378378378378],... + 'Callback','zef = zef_parcellation_roi_delete(zef);',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','pushbutton1',... + 'FontSize',0.293497210599722); + +h3 = uicontrol(... + 'Parent',h1,... + 'Units','normalized',... + 'FontUnits','normalized',... + 'String','Colortable',... + 'Style',get(0,'defaultuicontrolStyle'),... + 'Position',[0.0497237569060773 0.318918918918919 0.234806629834254 0.0378378378378378],... + 'Callback','zef_import_parcellation_colortable;',... + 'Children',[],... + 'CreateFcn', '' ,... + 'Tag','pushbutton1',... + 'FontSize',0.293497210599722); + +zef.h_import_parcellation_colortable = h3; h6 = uicontrol(... 'Parent',h1,... @@ -144,6 +364,7 @@ 'FontWeight',get(0,'defaultuicontrolFontWeight')); zef.h_parcellation_segment = h6; +zef.h_parcellation_segment.HorizontalAlignment = 'right'; h7 = uicontrol(... 'Parent',h1,... @@ -228,6 +449,7 @@ 'FontWeight',get(0,'defaultuicontrolFontWeight')); zef.h_parcellation_tolerance = h10; +zef.h_parcellation_tolerance.HorizontalAlignment = 'right'; h11 = uicontrol(... 'Parent',h1,... @@ -286,7 +508,7 @@ 'String','Segmentation',... 'Style',get(0,'defaultuicontrolStyle'),... 'Position',[0.0497237569060773 0.233783783783784 0.234806629834254 0.0378378378378378],... - 'Callback','[zef.parcellation_colortable, zef.parcellation_points] = zef_parcellation_default([]); zef.parcellation_list = []; zef_update_parcellation;',... + 'Callback','[zef.parcellation_colortable, zef.parcellation_points] = zef_parcellation_default(zef); zef.parcellation_list = []; zef_update_parcellation;',... 'Children',[],... 'ButtonDownFcn',blanks(0),... 'CreateFcn', '' ,... diff --git a/m/zef_set_compartment_color.m b/m/zef_set_compartment_color.m index a43af1563..0318b94b7 100644 --- a/m/zef_set_compartment_color.m +++ b/m/zef_set_compartment_color.m @@ -4,6 +4,8 @@ item_ind = evalin('base','zef.h_compartment_visible_color.Value'); compartment_tags = evalin('base','zef.compartment_tags'); +if not(isequal(color_vec,0)) + zef_j = 0; for zef_i = length(compartment_tags) : -1 : 1 if evalin('base',['zef.' compartment_tags{zef_i} '_on']) && evalin('base',['zef.' compartment_tags{zef_i} '_visible']) @@ -20,3 +22,5 @@ evalin('base',['zef.' compartment_tags{item_ind} '_color = [' num2str(color_vec) '];']); end + +end diff --git a/m/zef_update_parcellation.m b/m/zef_update_parcellation.m index ea0e3d39a..9df0120b9 100644 --- a/m/zef_update_parcellation.m +++ b/m/zef_update_parcellation.m @@ -7,7 +7,15 @@ end set(zef.h_parcellation_name,'string',zef.parcellation_name); -set(zef.h_parcellation_tolerance,'string',zef.parcellation_tolerance); +set(zef.h_parcellation_tolerance,'string',num2str(zef.parcellation_tolerance)); +zef.h_parcellation_roi_name.String = zef.parcellation_roi_name{zef.parcellation_roi_selected}; +zef.h_parcellation_roi_center.String = num2str(zef.parcellation_roi_center(zef.parcellation_roi_selected,:)); +zef.h_parcellation_roi_radius.String = num2str(zef.parcellation_roi_radius(zef.parcellation_roi_selected)); +zef.h_parcellation_roi_color.String = num2str(zef.parcellation_roi_color(zef.parcellation_roi_selected,:)); +zef.h_parcellation_roi_color.BackgroundColor = zef.parcellation_roi_color(zef.parcellation_roi_selected,:); +zef.h_parcellation_roi_list.Value = zef.parcellation_roi_selected; +zef.h_parcellation_roi_list.String = zef.parcellation_roi_name; + zef.parcellation_list = cell(0); zef_k = 0; @@ -47,7 +55,7 @@ set(zef.h_parcellation_segment,'string',zef.parcellation_segment); %set(zef.h_parcellation_merge,'value',zef.parcellation_merge); -if zef.use_parcellation == 0; +if zef.use_parcellation == 0 set(zef.h_use_parcellation,'foregroundcolor',[0 0 0]); %set(zef.h_parcellation_list,'enable','on'); set(zef.h_use_parcellation,'string','Activate'); @@ -63,15 +71,15 @@ set(zef.h_import_parcellation_colortable,'foregroundcolor',[1 0 0]); else set(zef.h_import_parcellation_colortable,'foregroundcolor',[0 0 0]); -end; +end if isempty(eval('zef.parcellation_points')) set(zef.h_zef_import_parcellation_points,'foregroundcolor',[1 0 0]); else set(zef.h_zef_import_parcellation_points,'foregroundcolor',[0 0 0]); -end; +end -if isempty(zef.parcellation_selected) && not(isempty(zef.parcellation_list)) +if (isempty(zef.parcellation_selected) && not(isempty(zef.parcellation_list))) set(zef.h_parcellation_list,'value',[1:length(get(zef.h_parcellation_list,'string'))]); zef.parcellation_selected = [1:length(get(zef.h_parcellation_list,'string'))]; end @@ -94,6 +102,8 @@ zef = rmfield(zef,'parcellation_status'); end +zef.h_parcellation_list.Min = 0; + if nargout == 0 assignin('base','zef',zef); end diff --git a/plugins/NSE_tool/m/zef_nse_apply_roi.m b/plugins/NSE_tool/m/zef_nse_apply_roi.m index d66180ce6..1b28f57c0 100755 --- a/plugins/NSE_tool/m/zef_nse_apply_roi.m +++ b/plugins/NSE_tool/m/zef_nse_apply_roi.m @@ -1,10 +1,9 @@ -h_axes = gca; -if isempty(findobj(allchild(h_axes),'Type','DataTip'))~=1 - h_datatip = findobj(allchild(h_axes),'Type','DataTip'); +if isempty(findobj(allchild(zef.h_axes1),'Type','DataTip'))~=1 + zef.h_datatip = findobj(allchild(zef.h_axes1),'Type','DataTip'); zef.nse_field.roi_x = []; zef.nse_field.roi_y = []; zef.nse_field.roi_z = []; - for i=1:size(h_datatip,1) + for i=1:size(zef.h_datatip,1) zef.nse_field.roi_x = [zef.nse_field.roi_x h_datatip(i).X]; zef.nse_field.roi_y = [zef.nse_field.roi_y h_datatip(i).Y]; zef.nse_field.roi_z = [zef.nse_field.roi_z h_datatip(i).Z];