Skip to content

Commit 5c00ce2

Browse files
committed
nodal measures
1 parent 7cef048 commit 5c00ce2

2 files changed

Lines changed: 65 additions & 13 deletions

File tree

braph2/workflows/Functional/AnalysisFNC_BUT.m

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,12 @@ function cb_show_confidence_interval_max(src, ~)
496496
% See also getGraphPanel, getGlobalPanel.
497497

498498
X = analysis.selectMeasurements(measure_code, group, '.getThreshold()');
499-
Y = analysis.selectMeasurements(measure_code, group, '.getGroupAverageValue()');
499+
if subject == 1
500+
Y = analysis.selectMeasurements(measure_code, group, '.getGroupAverageValue()');
501+
else
502+
measurements = analysis.selectMeasurements(measure_code, group, '.getMeasureValues()');
503+
Y = cellfun(@(x) x(subject-1), measurements);
504+
end
500505
for i = 1:1:length(Y)
501506
y_unique_cell = Y{i};
502507
y_nodal_values = y_unique_cell;

braph2/workflows/Functional/AnalysisFNC_WU.m

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1355,6 +1355,8 @@ function update_subjects()
13551355

13561356
% declare variables
13571357
selected_brainmeasures = [];
1358+
selected_subject_index = 1;
1359+
sub = [];
13581360

13591361
% declare the uicontrols
13601362
ui_mainpanel = uipanel('Parent', uiparent, 'Units', 'normalized', 'Position', [0 0 1 1]);
@@ -1373,6 +1375,7 @@ function update_subjects()
13731375
ui_plot_measure_axes = get_from_varargin([], 'UIAxesNodal', varargin{:});
13741376
ui_plot_hide_checkbox = uicontrol(ui_mainpanel, 'Style', 'checkbox');
13751377
fdr_threshold_edit = uicontrol(ui_mainpanel, 'style', 'edit');
1378+
ui_selected_subject = uicontrol(ui_mainpanel, 'Style', 'popup');
13761379
init_nodal_panel()
13771380
function init_nodal_panel()
13781381
GUI.setUnits(ui_mainpanel)
@@ -1445,21 +1448,25 @@ function init_nodal_panel()
14451448
set(ui_plot_hide_checkbox, 'TooltipString', 'Show/Hide Plot')
14461449
set(ui_plot_hide_checkbox, 'Callback', {@cb_show_plot})
14471450

1448-
set(ui_popup_nodalmeasures_group1, 'Position', [.02 .16 .15 .04])
1451+
set(ui_popup_nodalmeasures_group1, 'Position', [.02 .16 .15 .03])
14491452
set(ui_popup_nodalmeasures_group1, 'String', analysis.getCohort().getGroups().getKeys())
14501453
set(ui_popup_nodalmeasures_group1, 'Callback', {@cb_nodal_table})
14511454

1452-
set(ui_popup_nodalmeasures_group2, 'Position', [.02 .11 .15 .04])
1455+
set(ui_popup_nodalmeasures_group2, 'Position', [.02 .12 .15 .03])
14531456
set(ui_popup_nodalmeasures_group2, 'String', analysis.getCohort().getGroups().getKeys())
14541457
set(ui_popup_nodalmeasures_group2, 'Callback', {@cb_nodal_table})
14551458
set(ui_popup_nodalmeasures_group2, 'Enable', 'off')
14561459
set(ui_popup_nodalmeasures_group2, 'Visible', 'off')
14571460

1458-
set(ui_selectedmeasure_popup, 'Position', [.02 .06 .15 .04])
1461+
set(ui_selected_subject, 'Position', [.02 .09 .15 .03])
1462+
set(ui_selected_subject, 'String', {''})
1463+
set(ui_selected_subject, 'Callback', {@cb_select_subject})
1464+
1465+
set(ui_selectedmeasure_popup, 'Position', [.02 .05 .15 .03])
14591466
set(ui_selectedmeasure_popup, 'String', nodal_list)
14601467
set(ui_selectedmeasure_popup, 'Callback', {@cb_nodal_table})
14611468

1462-
set(ui_selectedbr_popup, 'Position', [.02 .01 .15 .04])
1469+
set(ui_selectedbr_popup, 'Position', [.02 .01 .15 .03])
14631470
set(ui_selectedbr_popup, 'String', br_list)
14641471
set(ui_selectedbr_popup, 'Callback', {@cb_nodal_table})
14651472

@@ -1479,6 +1486,14 @@ function update_nodal_table()
14791486

14801487
selected_br = get(ui_selectedbr_popup, 'Value');
14811488

1489+
subject = selected_subject_index;
1490+
if subject > 1
1491+
[~, subjects] = analysis.getCohort().getGroupSubjects(selected_index_1);
1492+
sub = subjects{subject-1};
1493+
else
1494+
sub = [];
1495+
end
1496+
14821497
fdr_t = get(fdr_threshold_edit, 'String');
14831498

14841499
if get(ui_checkbox_brainmeasures_meas, 'Value')
@@ -1491,7 +1506,11 @@ function update_nodal_table()
14911506

14921507
if exist('nodal_measurements', 'var')
14931508
nodal_measurements = nodal_measurements(~cellfun(@isempty, nodal_measurements));
1494-
set(ui_nodal_tbl, 'ColumnName', {'', ' measure ', ' group', ' value ', ' name ', ' label ', ' notes '})
1509+
if subject == 1
1510+
set(ui_nodal_tbl, 'ColumnName', {'', ' measure ', ' group ', ' group value ', ' name ', ' label ', ' notes '})
1511+
else
1512+
set(ui_nodal_tbl, 'ColumnName', {'', ' measure ', ' subject ', ' subject value ', ' name ', ' label ', ' notes '})
1513+
end
14951514
set(ui_nodal_tbl, 'ColumnFormat', {'logical', 'char', 'char', 'numeric', 'char', 'char', 'char'})
14961515
set(ui_nodal_tbl, 'ColumnEditable', [true false false false false false false])
14971516

@@ -1503,13 +1522,19 @@ function update_nodal_table()
15031522
else
15041523
data{i, 1} = false;
15051524
end
1506-
%nodal_values_cell = measurement.getMeasureValue();
1507-
group_avg_value = measurement.getGroupAverageValue();
1508-
% nodal_values = nodal_values_cell{1};
1509-
selected_nodal_value = group_avg_value(selected_br);
1525+
if subject == 1
1526+
tmp = measurement.getGroupAverageValue();
1527+
output_value = tmp(selected_br);
1528+
output_id = measurement.getGroup().getID();
1529+
else
1530+
global_values = measurement.getMeasureValues();
1531+
tmp = global_values{subject-1};
1532+
output_value = tmp(selected_br);
1533+
output_id = sub.getID();
1534+
end
15101535
data{i, 2} = measurement.getMeasureCode();
1511-
data{i, 3} = measurement.getGroup().getID();
1512-
data{i, 4} = selected_nodal_value;
1536+
data{i, 3} = output_id;
1537+
data{i, 4} = output_value;
15131538
data{i, 5} = measurement.getID();
15141539
data{i, 6} = measurement.getLabel();
15151540
data{i, 7} = measurement.getNotes();
@@ -1627,6 +1652,9 @@ function update_group_popups()
16271652
set(ui_popup_nodalmeasures_group1, 'Enable', 'on')
16281653
set(ui_popup_nodalmeasures_group1, 'Visible', 'on')
16291654

1655+
set(ui_selected_subject, 'Enable', 'off')
1656+
set(ui_selected_subject, 'Visible', 'off')
1657+
16301658
set(ui_popup_nodalmeasures_group2, 'Enable', 'on')
16311659
set(ui_popup_nodalmeasures_group2, 'Visible', 'on')
16321660
set(fdr_threshold_edit, 'Visible', 'on')
@@ -1637,8 +1665,13 @@ function update_group_popups()
16371665
set(ui_popup_nodalmeasures_group2, 'Enable', 'off')
16381666
set(ui_popup_nodalmeasures_group2, 'Visible', 'off')
16391667

1668+
set(ui_selected_subject, 'Enable', 'off')
1669+
set(ui_selected_subject, 'Visible', 'off')
1670+
16401671
if get(ui_checkbox_brainmeasures_meas, 'Value')
16411672
set(fdr_threshold_edit, 'Visible', 'off')
1673+
set(ui_selected_subject, 'Enable', 'on')
1674+
set(ui_selected_subject, 'Visible', 'on')
16421675
else
16431676
set(fdr_threshold_edit, 'Visible', 'on')
16441677
end
@@ -1652,7 +1685,7 @@ function init_plot_nodal_panel()
16521685
if get(ui_checkbox_brainmeasures_meas, 'Value')
16531686
analysis.getNodalMeasurePlot(ui_plot_measure_panel, ui_plot_measure_axes, selected_measure, ...
16541687
analysis.getCohort().getGroups().getValue(get(ui_popup_nodalmeasures_group1, 'Value')), ...
1655-
get(ui_selectedbr_popup, 'Value'));
1688+
get(ui_selectedbr_popup, 'Value'), selected_subject_index);
16561689
elseif get(ui_checkbox_brainmeasures_comp, 'Value')
16571690
analysis.getNodalComparisonPlot(ui_plot_measure_panel, ui_plot_measure_axes, selected_measure, ...
16581691
analysis.getCohort().getGroups().getValue(get(ui_popup_nodalmeasures_group1, 'Value')), ...
@@ -1680,6 +1713,7 @@ function cb_show_plot(~, ~)
16801713
end
16811714
end
16821715
function cb_nodal_table(~, ~)
1716+
update_subjects()
16831717
update_nodal_table()
16841718
init_plot_nodal_panel()
16851719
end
@@ -1782,9 +1816,22 @@ function deleteExtraChilds(ui_control)
17821816
end
17831817
end
17841818
end
1819+
function cb_select_subject(~, ~)
1820+
selected_subject_index = get(ui_selected_subject, 'value');
1821+
update_nodal_table();
1822+
init_plot_nodal_panel();
1823+
end
1824+
function update_subjects()
1825+
selected_group = get(ui_popup_nodalmeasures_group1, 'Value');
1826+
[~, subjects] = analysis.getCohort().getGroupSubjects(selected_group);
1827+
subject_labels_inner = cellfun(@(x) x.getID(), subjects, 'UniformOutput', false);
1828+
subject_labels = ['All Subjects' subject_labels_inner];
1829+
set(ui_selected_subject, 'String', subject_labels)
1830+
end
17851831

17861832
update_nodal_table()
17871833
init_plot_nodal_panel()
1834+
update_subjects()
17881835

17891836
if nargout > 0
17901837
nodal_panel = ui_mainpanel;

0 commit comments

Comments
 (0)