@@ -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