Skip to content

Commit a46fcb6

Browse files
committed
binodal
1 parent 5c00ce2 commit a46fcb6

3 files changed

Lines changed: 80 additions & 18 deletions

File tree

braph2/workflows/Functional/AnalysisFNC_BUD.m

Lines changed: 12 additions & 2 deletions
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, '.getDensity()');
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;
@@ -751,7 +756,12 @@ function cb_show_confidence_interval_max(src, ~)
751756
% See also getGraphPanel, getBinodalPanel.
752757

753758
X = analysis.selectMeasurements(measure_code, group, '.getDensity()');
754-
Y = analysis.selectMeasurements(measure_code, group, '.getGroupAverageValue()');
759+
if subject == 1
760+
Y = analysis.selectMeasurements(measure_code, group, '.getGroupAverageValue()');
761+
else
762+
measurements = analysis.selectMeasurements(measure_code, group, '.getMeasureValues()');
763+
Y = cellfun(@(x) x(subject-1), measurements);
764+
end
755765
for i = 1:1:length(Y)
756766
y_unique_cell = Y{i};
757767
y_nodal_values = y_unique_cell;

braph2/workflows/Functional/AnalysisFNC_BUT.m

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -496,9 +496,9 @@ function cb_show_confidence_interval_max(src, ~)
496496
% See also getGraphPanel, getGlobalPanel.
497497

498498
X = analysis.selectMeasurements(measure_code, group, '.getThreshold()');
499-
if subject == 1
499+
if subject == 1
500500
Y = analysis.selectMeasurements(measure_code, group, '.getGroupAverageValue()');
501-
else
501+
else
502502
measurements = analysis.selectMeasurements(measure_code, group, '.getMeasureValues()');
503503
Y = cellfun(@(x) x(subject-1), measurements);
504504
end
@@ -756,7 +756,12 @@ function cb_show_confidence_interval_max(src, ~)
756756
% See also getGraphPanel, getBinodalPanel.
757757

758758
X = analysis.selectMeasurements(measure_code, group, '.getThreshold()');
759-
Y = analysis.selectMeasurements(measure_code, group, '.getGroupAverageValue()');
759+
if subject == 1
760+
Y = analysis.selectMeasurements(measure_code, group, '.getGroupAverageValue()');
761+
else
762+
measurements = analysis.selectMeasurements(measure_code, group, '.getMeasureValues()');
763+
Y = cellfun(@(x) x(subject-1), measurements);
764+
end
760765
for i = 1:1:length(Y)
761766
y_unique_cell = Y{i};
762767
y_nodal_values = y_unique_cell;

braph2/workflows/Functional/AnalysisFNC_WU.m

Lines changed: 60 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1874,6 +1874,8 @@ function update_subjects()
18741874

18751875
% declare variables
18761876
selected_brainmeasures = [];
1877+
selected_subject_index = 1;
1878+
sub = [];
18771879

18781880
% declare the uicontrols
18791881
ui_mainpanel = uipanel('Parent', uiparent, 'Units', 'normalized', 'Position', [0 0 1 1]);
@@ -1893,6 +1895,7 @@ function update_subjects()
18931895
ui_plot_measure_axes = get_from_varargin([], 'UIAxesBinodal', varargin{:});
18941896
ui_plot_hide_checkbox = uicontrol(ui_mainpanel, 'Style', 'checkbox');
18951897
fdr_threshold_edit = uicontrol(ui_mainpanel, 'style', 'edit');
1898+
ui_selected_subject = uicontrol(ui_mainpanel, 'Style', 'popup');
18961899
init_binodal_panel()
18971900
function init_binodal_panel()
18981901
GUI.setUnits(ui_mainpanel)
@@ -1965,25 +1968,29 @@ function init_binodal_panel()
19651968
set(ui_plot_hide_checkbox, 'TooltipString', 'Show/Hide Plot')
19661969
set(ui_plot_hide_checkbox, 'Callback', {@cb_show_plot})
19671970

1968-
set(ui_popup_binodalmeasures_group1, 'Position', [.02 .16 .15 .04])
1971+
set(ui_popup_binodalmeasures_group1, 'Position', [.02 .16 .15 .03])
19691972
set(ui_popup_binodalmeasures_group1, 'String', analysis.getCohort().getGroups().getKeys())
19701973
set(ui_popup_binodalmeasures_group1, 'Callback', {@cb_binodal_table})
19711974

1972-
set(ui_popup_binodalmeasures_group2, 'Position', [.02 .11 .15 .04])
1975+
set(ui_popup_binodalmeasures_group2, 'Position', [.02 .12 .15 .03])
19731976
set(ui_popup_binodalmeasures_group2, 'String', analysis.getCohort().getGroups().getKeys())
19741977
set(ui_popup_binodalmeasures_group2, 'Callback', {@cb_binodal_table})
19751978
set(ui_popup_binodalmeasures_group2, 'Enable', 'off')
19761979
set(ui_popup_binodalmeasures_group2, 'Visible', 'off')
19771980

1978-
set(ui_selectedmeasure_popup, 'Position', [.02 .06 .15 .04])
1981+
set(ui_selected_subject, 'Position', [.02 .09 .15 .03])
1982+
set(ui_selected_subject, 'String', {''})
1983+
set(ui_selected_subject, 'Callback', {@cb_select_subject})
1984+
1985+
set(ui_selectedmeasure_popup, 'Position', [.02 .05 .15 .03])
19791986
set(ui_selectedmeasure_popup, 'String', binodal_list)
19801987
set(ui_selectedmeasure_popup, 'Callback', {@cb_binodal_table})
19811988

1982-
set(ui_selectedbr1_popup, 'Position', [.02 .01 .07 .04])
1989+
set(ui_selectedbr1_popup, 'Position', [.02 .01 .07 .03])
19831990
set(ui_selectedbr1_popup, 'String', br_list)
19841991
set(ui_selectedbr1_popup, 'Callback', {@cb_binodal_table})
19851992

1986-
set(ui_selectedbr2_popup, 'Position', [.1 .01 .07 .04])
1993+
set(ui_selectedbr2_popup, 'Position', [.1 .01 .07 .03])
19871994
set(ui_selectedbr2_popup, 'String', br_list)
19881995
set(ui_selectedbr2_popup, 'Callback', {@cb_binodal_table})
19891996

@@ -2004,6 +2011,14 @@ function update_binodal_table()
20042011
selected_br1 = get(ui_selectedbr1_popup, 'Value');
20052012
selected_br2 = get(ui_selectedbr2_popup, 'Value');
20062013

2014+
subject = selected_subject_index;
2015+
if subject > 1
2016+
[~, subjects] = analysis.getCohort().getGroupSubjects(selected_index_1);
2017+
sub = subjects{subject-1};
2018+
else
2019+
sub = [];
2020+
end
2021+
20072022
fdr_t = get(fdr_threshold_edit, 'String');
20082023

20092024
if get(ui_checkbox_brainmeasures_meas, 'Value')
@@ -2016,7 +2031,11 @@ function update_binodal_table()
20162031

20172032
if exist('binodal_measurements', 'var')
20182033
binodal_measurements = binodal_measurements(~cellfun(@isempty, binodal_measurements));
2019-
set(ui_binodal_tbl, 'ColumnName', {'', ' measure ', ' group', ' value ', ' name ', ' label ', ' notes '})
2034+
if subject == 1
2035+
set(ui_binodal_tbl, 'ColumnName', {'', ' measure ', ' group ', ' group value ', ' name ', ' label ', ' notes '})
2036+
else
2037+
set(ui_binodal_tbl, 'ColumnName', {'', ' measure ', ' subject ', ' subject value ', ' name ', ' label ', ' notes '})
2038+
end
20202039
set(ui_binodal_tbl, 'ColumnFormat', {'logical', 'char', 'char', 'numeric', 'char', 'char', 'char'})
20212040
set(ui_binodal_tbl, 'ColumnEditable', [true false false false false false false])
20222041

@@ -2028,13 +2047,19 @@ function update_binodal_table()
20282047
else
20292048
data{i, 1} = false;
20302049
end
2031-
% binodal_values_cell = measurement.getMeasureValue();
2032-
% binodal_values = binodal_values_cell{1};
2033-
group_avg_value = measurement.getGroupAverageValue();
2034-
selected_binodal_value = group_avg_value(selected_br1, selected_br2);
2050+
if subject == 1
2051+
tmp = measurement.getGroupAverageValue();
2052+
output_value = tmp(selected_br1, selected_br2);
2053+
output_id = measurement.getGroup().getID();
2054+
else
2055+
global_values = measurement.getMeasureValues();
2056+
tmp = global_values{subject-1};
2057+
output_value = tmp(selected_br1, selected_br2);
2058+
output_id = sub.getID();
2059+
end
20352060
data{i, 2} = measurement.getMeasureCode();
2036-
data{i, 3} = measurement.getGroup().getID();
2037-
data{i, 4} = selected_binodal_value;
2061+
data{i, 3} = output_id;
2062+
data{i, 4} = output_value;
20382063
data{i, 5} = measurement.getID();
20392064
data{i, 6} = measurement.getLabel();
20402065
data{i, 7} = measurement.getNotes();
@@ -2156,14 +2181,22 @@ function update_group_popups()
21562181
set(ui_popup_binodalmeasures_group2, 'Visible', 'on')
21572182

21582183
set(fdr_threshold_edit, 'Visible', 'on')
2184+
2185+
set(ui_selected_subject, 'Enable', 'off')
2186+
set(ui_selected_subject, 'Visible', 'off')
21592187
else
21602188
set(ui_popup_binodalmeasures_group1, 'Enable', 'on')
21612189
set(ui_popup_binodalmeasures_group1, 'Visible', 'on')
21622190

21632191
set(ui_popup_binodalmeasures_group2, 'Enable', 'off')
21642192
set(ui_popup_binodalmeasures_group2, 'Visible', 'off')
2193+
set(ui_selected_subject, 'Enable', 'off')
2194+
set(ui_selected_subject, 'Visible', 'off')
2195+
21652196
if get(ui_checkbox_brainmeasures_meas, 'Value')
21662197
set(fdr_threshold_edit, 'Visible', 'off')
2198+
set(ui_selected_subject, 'Enable', 'on')
2199+
set(ui_selected_subject, 'Visible', 'on')
21672200
else
21682201
set(fdr_threshold_edit, 'Visible', 'on')
21692202
end
@@ -2177,7 +2210,7 @@ function init_plot_binodal_panel()
21772210
if get(ui_checkbox_brainmeasures_meas, 'Value')
21782211
analysis.getBinodalMeasurePlot(ui_plot_measure_panel, ui_plot_measure_axes, selected_measure, ...
21792212
analysis.getCohort().getGroups().getValue(get(ui_popup_binodalmeasures_group1, 'Value')), ...
2180-
get(ui_selectedbr1_popup, 'Value'), get(ui_selectedbr2_popup, 'Value'));
2213+
get(ui_selectedbr1_popup, 'Value'), get(ui_selectedbr2_popup, 'Value'), selected_subject_index);
21812214
elseif get(ui_checkbox_brainmeasures_comp, 'Value')
21822215
analysis.getBinodalComparisonPlot(ui_plot_measure_panel, ui_plot_measure_axes, selected_measure, ...
21832216
analysis.getCohort().getGroups().getValue(get(ui_popup_binodalmeasures_group1, 'Value')), ...
@@ -2205,6 +2238,7 @@ function cb_show_plot(~, ~)
22052238
end
22062239
end
22072240
function cb_binodal_table(~, ~)
2241+
update_subjects()
22082242
update_binodal_table()
22092243
init_plot_binodal_panel()
22102244
end
@@ -2307,9 +2341,22 @@ function deleteExtraChilds(ui_control)
23072341
end
23082342
end
23092343
end
2344+
function cb_select_subject(~, ~)
2345+
selected_subject_index = get(ui_selected_subject, 'value');
2346+
update_binodal_table();
2347+
init_plot_binodal_panel();
2348+
end
2349+
function update_subjects()
2350+
selected_group = get(ui_popup_binodalmeasures_group1, 'Value');
2351+
[~, subjects] = analysis.getCohort().getGroupSubjects(selected_group);
2352+
subject_labels_inner = cellfun(@(x) x.getID(), subjects, 'UniformOutput', false);
2353+
subject_labels = ['All Subjects' subject_labels_inner];
2354+
set(ui_selected_subject, 'String', subject_labels)
2355+
end
23102356

23112357
update_binodal_table()
23122358
init_plot_binodal_panel()
2359+
update_subjects()
23132360

23142361
if nargout > 0
23152362
binodal_panel = ui_mainpanel;

0 commit comments

Comments
 (0)