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