Skip to content

Commit 03010a2

Browse files
committedDec 16, 2024·
Zeffiro developer: A regular push adding the changes made in the current local repository to the remote origin. Contents of the folders ./data/ and ./profile/ are ignored. The update necessitates creating a personal access token.

12 files changed

+407
-45
lines changed
 

‎m/zef_init_parcellation.m

+20
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,26 @@
3232
zef.use_parcellation = 0;
3333
end;
3434

35+
if not(isfield(zef,'parcellation_roi_name'));
36+
zef.parcellation_roi_name{1} = 'User-defined ROI';
37+
end;
38+
39+
if not(isfield(zef,'parcellation_roi_center'));
40+
zef.parcellation_roi_center = [0 0 0];
41+
end;
42+
43+
if not(isfield(zef,'parcellation_roi_radius'));
44+
zef.parcellation_roi_radius = 10;
45+
end;
46+
47+
if not(isfield(zef,'parcellation_roi_color'));
48+
zef.parcellation_roi_color = [0.56078 0.91373 1];
49+
end;
50+
51+
if not(isfield(zef,'parcellation_roi_selected'));
52+
zef.parcellation_roi_selected = 1;
53+
end;
54+
3555
zef.time_series_tools_dir = fileparts(which('zef_time_series_plot.m'));
3656
zef.time_series_tools_name_list = cell(0);
3757
zef.time_series_tools_file_list = cell(0);

‎m/zef_parcellation_default.m

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
%Copyright © 2018- Sampsa Pursiainen & ZI Development Team
22
%See: https://github.com/sampsapursiainen/zeffiro_interface
3-
function [c_table,c_points] = zef_parcellation_default(void)
3+
function [c_table,c_points] = zef_parcellation_default(zef)
44

55
c_table = cell(0);
66
c_points = cell(0);
77
c_ind = 0;
88

9-
submesh_ind = evalin('base','zef.submesh_ind');
9+
submesh_ind = eval('zef.submesh_ind');
1010
if isempty(submesh_ind)
11-
submesh_ind = ones(size(evalin('base','zef.brain_ind')));
11+
submesh_ind = ones(size(eval('zef.brain_ind')));
1212
end
1313

14-
if evalin('base','zef.parcellation_merge')
15-
c_table = evalin('base','zef.parcellation_colortable');
16-
c_points = evalin('base','zef.parcellation_points');
14+
if eval('zef.parcellation_merge')
15+
c_table = eval('zef.parcellation_colortable');
16+
c_points = eval('zef.parcellation_points');
1717
else
18-
evalin('base','zef.parcellation_selected = [];');
18+
eval('zef.parcellation_selected = [];');
1919
end
2020

21-
s_interp_ind = evalin('base','zef.source_interpolation_ind{1}');
21+
s_interp_ind = eval('zef.source_interpolation_ind{1}');
2222

2323
t_ind = 1 + length(c_table);
2424

2525
c_table{t_ind}{1} = 'SG';
26-
c_points_aux = evalin('base','zef.source_positions');
26+
c_points_aux = zef.source_positions';
2727
c_points_aux = [[0:size(c_points_aux,1)-1]' c_points_aux];
28-
c_table{t_ind}{4} = zeros(size(c_points,1),1);
28+
c_table{t_ind}{4} = zeros(size(c_points_aux,1),1);
2929

3030
c_points{t_ind} = c_points_aux;
3131

@@ -36,21 +36,21 @@
3636
visible_vec = [];
3737
color_cell = cell(0);
3838
aux_brain_ind = [];
39-
compartment_tags = evalin('base','zef.compartment_tags');
39+
compartment_tags = eval('zef.compartment_tags');
4040
for k = 1 : length(compartment_tags)
4141
var_0 = ['zef.' compartment_tags{k} '_on'];
4242
var_1 = ['zef.' compartment_tags{k} '_sigma'];
4343
var_2 = ['zef.' compartment_tags{k} '_priority'];
4444
var_3 = ['zef.' compartment_tags{k} '_visible'];
45-
color_str = evalin('base',['zef.' compartment_tags{k} '_color']);
46-
on_val = evalin('base',var_0);
45+
color_str = eval(['zef.' compartment_tags{k} '_color']);
46+
on_val = eval(var_0);
4747
if on_val
4848
i = i + 1;
4949

5050
c_str = compartment_tags{k};
5151

52-
if ismember(evalin('base',['zef.' c_str '_sources']),[1 2])
53-
I = find(evalin('base','zef.domain_labels(zef.brain_ind)')==i);
52+
if ismember(eval(['zef.' c_str '_sources']),[1 2])
53+
I = find(eval('zef.domain_labels(zef.brain_ind)')==i);
5454
submesh_ind_aux = unique(submesh_ind(I));
5555
if isempty(submesh_ind_aux)
5656
submesh_ind_aux = 1;
@@ -61,11 +61,11 @@
6161
I_aux = find(submesh_ind(I)==submesh_ind_aux(ell_ind));
6262
J = unique(s_interp_ind(I(I_aux),:));
6363
if length(submesh_ind_aux) > 1
64-
c_table{t_ind}{2}{c_ind,1} = [evalin('base',['zef.' c_str '_name']) ' ' num2str(submesh_ind_aux(ell_ind))];
64+
c_table{t_ind}{2}{c_ind,1} = [eval(['zef.' c_str '_name']) ' ' num2str(submesh_ind_aux(ell_ind))];
6565
else
66-
c_table{t_ind}{2}{c_ind,1} = [evalin('base',['zef.' c_str '_name'])];
66+
c_table{t_ind}{2}{c_ind,1} = [eval(['zef.' c_str '_name'])];
6767
end
68-
c_table{t_ind}{3}(c_ind,1:3) = evalin('base',['zef.' c_str '_color']);
68+
c_table{t_ind}{3}(c_ind,1:3) = eval(['zef.' c_str '_color']);
6969
c_table{t_ind}{3}(c_ind,5) = c_ind;
7070
c_table{t_ind}{5}(c_ind,:) = [i submesh_ind_aux(ell_ind)];
7171
c_table{t_ind}{4}(J) = c_ind;

‎m/zef_parcellation_roi_add.m

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
function zef = zef_parcellation_roi_add(zef)
2+
3+
zef.parcellation_roi_selected = 1;
4+
zef.parcellation_roi_center = [0 0 0; zef.parcellation_roi_center];
5+
zef.parcellation_roi_radius = [10 zef.parcellation_roi_radius];
6+
zef.parcellation_roi_color = [0.56078 0.91373 1; zef.parcellation_roi_color];
7+
zef.parcellation_roi_name = [{'Used-defined ROI'} zef.parcellation_roi_name];
8+
zef = zef_update_parcellation(zef);
9+
10+
end

‎m/zef_parcellation_roi_delete.m

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
function zef = zef_parcellation_roi_delete(zef)
2+
3+
I = [1 : size(zef.parcellation_roi_center,1)];
4+
I = setdiff(I,zef.parcellation_roi_selected);
5+
if not(isempty(I))
6+
zef.parcellation_roi_center = zef.parcellation_roi_center(I,:);
7+
zef.parcellation_roi_color = zef.parcellation_roi_color(I,:);
8+
zef.parcellation_roi_radius = zef.parcellation_roi_radius(I);
9+
zef.parcellation_roi_name = zef.parcellation_roi_name(I);
10+
else
11+
zef.parcellation_roi_center = [0 0 0];
12+
zef.parcellation_roi_radius = [10];
13+
zef.parcellation_roi_color = [0.56078 0.91373 1];
14+
zef.parcellation_roi_name = [{'Used-defined ROI'}];
15+
end
16+
zef.parcellation_roi_selected = 1;
17+
zef = zef_update_parcellation(zef);
18+
19+
end

‎m/zef_parcellation_roi_embed.m

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
%Copyright © 2018- Sampsa Pursiainen & ZI Development Team
2+
%See: https://github.com/sampsapursiainen/zeffiro_interface
3+
function [c_table,c_points] = zef_parcellation_roi_embed(zef)
4+
5+
c_table = cell(0);
6+
c_points = cell(0);
7+
8+
if eval('zef.parcellation_merge')
9+
c_table = eval('zef.parcellation_colortable');
10+
c_points = eval('zef.parcellation_points');
11+
else
12+
eval('zef.parcellation_selected = [];');
13+
end
14+
15+
t_ind = length(c_table);
16+
17+
t_ind = t_ind + 1;
18+
19+
c_table{t_ind}{1} = 'ROI';
20+
21+
c_points_aux = [];
22+
c_table{t_ind}{4} = [];
23+
start_index = 0;
24+
for i = 1 : size(zef.parcellation_roi_center,1)
25+
c_points_aux_0 = zef.source_positions;
26+
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)),:);
27+
c_points_aux = [c_points_aux ; [[start_index:start_index + size(c_points_aux_1,1)-1]' c_points_aux_1]];
28+
start_index = start_index + size(c_points_aux_1,1);
29+
c_table{t_ind}{4} = [c_table{t_ind}{4} ; i*ones(size(c_points_aux_1,1),1)];
30+
c_table{t_ind}{2}{i,1} = zef.parcellation_roi_name{i};
31+
c_table{t_ind}{3}(i,1:3) = zef.parcellation_roi_color(i,:);
32+
c_table{t_ind}{3}(i,5) = i;
33+
end
34+
35+
c_points{t_ind} = c_points_aux;
36+
c_table{t_ind}{3}(:,1:3) = round(255*c_table{t_ind}{3}(:,1:3));
37+
c_table{t_ind}{4} = c_table{t_ind}{4}(:);
38+
39+
end

‎m/zef_parcellation_roi_pick_center.m

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function zef = zef_parcellation_roi_pick_center(zef)
2+
3+
if isempty(findobj(allchild(zef.h_axes1),'Type','DataTip'))~=1
4+
zef.h_datatip = findobj(allchild(zef.h_axes1),'Type','DataTip');
5+
zef.parcellation_roi_center(zef.parcellation_roi_selected,:) = [h_datatip(1).X h_datatip(1).Y h_datatip(1).Z];
6+
zef.h_parcellation_roi_center.String = num2str(zef.parcellation_roi_center(zef.parcellation_roi_selected,:));
7+
end
8+
9+
end

‎m/zef_parcellation_roi_pick_color.m

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
function zef = zef_parcellation_roi_pick_color(zef)
2+
3+
color_vec = uisetcolor;
4+
if not(isequal(color_vec,0))
5+
color_str = num2str(color_vec);
6+
zef.h_parcellation_roi_color.String = color_str;
7+
zef.h_parcellation_roi_color.BackgroundColor = color_vec;
8+
zef.parcellation_roi_color(zef.parcellation_roi_selected,:) = color_vec;
9+
end
10+
11+
end

‎m/zef_parcellation_roi_plot.m

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
function zef_parcellation_roi_plot(zef)
2+
3+
[s_x,s_y,s_z] = sphere(100);
4+
h_axes1 = zef.h_axes1;
5+
hold(h_axes1,'on');
6+
h_parcellation_roi_sphere = findobj(h_axes1,'Tag','additional: parcellation roi');
7+
delete(h_parcellation_roi_sphere);
8+
for i = 1 : size(zef.parcellation_roi_center,1)
9+
s_x_2 = zef.parcellation_roi_radius(i)*s_x + zef.parcellation_roi_center(i,1);
10+
s_y_2 = zef.parcellation_roi_radius(i)*s_y + zef.parcellation_roi_center(i,2);
11+
s_z_2 = zef.parcellation_roi_radius(i)*s_z + zef.parcellation_roi_center(i,3);
12+
h_plot = surf(h_axes1,s_x_2,s_y_2,s_z_2);
13+
set(h_plot,'facealpha',1,'edgecolor','none','facecolor',zef.parcellation_roi_color(i,:),'tag','additional: parcellation roi');
14+
end
15+
16+
drawnow;
17+
hold(h_axes1,'off');
18+
19+
end

0 commit comments

Comments
 (0)
Please sign in to comment.