📄 pet_result_3v_ui.m
字号:
'Label','&Design LV and Design Scores Plot', ...
'Visible','off', ...
'Tag','OpenDesignPlot', ...
'Callback','pet_result_3v_ui(''OpenScoresPlot'',1)');
h2 = uimenu(h_pls, ...
'Label','B&rain Scores vs. Behavior Data Plot', ...
'Tag','OpenBrainPlot', ...
'Callback','pet_result_3v_ui(''OpenBrainPlot'')');
h2 = uimenu(h_pls, ...
'Label','&Voxel Intensity Response', ...
'Tag','OpenRFPlot', ...
'Callback','pet_result_3v_ui(''OpenResponseFnPlot'')');
h2 = uimenu(h_pls, ...
'Label','&Datamat Correlations Response', ...
'Tag','OpenRF1Plot', ...
'Callback','pet_result_3v_ui(''OpenCorrelationPlot'')');
h2 = uimenu(h_pls, ...
'Label','&Datamat Correlations Plot', ...
'Tag','OpenDatamatcorrsPlot', ...
'Callback','pet_result_3v_ui(''OpenDatamatcorrsPlot'')');
h2 = uimenu(h_pls, ...
'Label','&Multiple Voxels Extraction', ...
'Tag','MultipleVoxel', ...
'Callback','pet_result_ui(''MultipleVoxel'')');
h2 = uimenu(h_pls, ...
'Label','&Contrasts Information', ...
'Tag','OpenContrastWindow', ...
'Callback','pet_result_3v_ui(''OpenContrastWindow'')');
h2 = uimenu(h_pls, ...
'Label','Create Brain LV &Figure', ...
'separator', 'on', ...
'Tag','PlotNewFigure', ...
'visible', 'off', ...
'Callback','pet_result_3v_ui(''PlotOnNewFigure'')');
h2 = uimenu(h_pls, ...
'Label','Create Figure', ...
'separator', 'on', ...
'Callback','rri_create_fig_3v');
h2 = uimenu(h_pls, ...
'Label','Axial View Plot', ...
'separator', 'on', ...
'Tag','PlotAxialView', ...
'Callback','close(gcf);');
% Report submenu
%
h_pls = uimenu('Parent',h0, ...
'Label','&Report', ...
'Tag','WindowsMenu', ...
'Visible','on');
h2 = uimenu(h_pls, ...
'Label','&Set Cluster Report Options', ...
'Tag','SetClusterReportOptions', ...
'Callback','pet_result_3v_ui(''SetClusterReportOptions'')');
h2 = uimenu(h_pls, ...
'Label','&Load Cluster Report', ...
'Tag','LoadClsuterReport', ...
'Callback','pet_result_3v_ui(''LoadClusterReport'')');
h2 = uimenu(h_pls, ...
'Label','&Create Cluster Report', ...
'Tag','OpenClusterReport', ...
'Callback','pet_result_3v_ui(''OpenClusterReport'')');
h2 = uimenu(h_pls, ...
'Label','Cluster Mask', ...
'separator', 'on', ...
'check', 'off', ...
'Userdata', 1, ...
'Tag','ClusterMask', ...
'Callback','pet_result_3v_ui(''ClusterMask'')');
% Help submenu
%
Hm_topHelp = uimenu('Parent',h0, ...
'Label', '&Help', ...
'Tag', 'Help');
Hm_how = uimenu('Parent',Hm_topHelp, ...
'Label', '&How to use this window?', ...
'Callback','rri_helpfile_ui(''pet_result_hlp.txt'',''How to use PLS RESULT'');', ...
'visible', 'off', ...
'Tag', 'How');
Hm_new = uimenu('Parent',Hm_topHelp, ...
'Label', '&What''s new', ...
'Callback','rri_helpfile_ui(''whatsnew.txt'',''What''''s new'');', ...
'Tag', 'New');
Hm_about = uimenu('Parent',Hm_topHelp, ...
'Label', '&About this program', ...
'Tag', 'About', ...
'CallBack', 'plsgui_version');
set(gcf,'Name',sprintf('PET PLS Result: %s',PLSResultFile));
% set(colorbar_h,'units','pixels');
setappdata(gcf,'Colorbar',colorbar_h); % newcolor: was commented
setappdata(gcf,'BlvAxes',axes_h);
setappdata(gcf,'ClusterMaskSize',4);
setappdata(gcf,'ClusterMinSize',5);
setappdata(gcf,'ClusterMinDist',10);
setappdata(gcf,'template_file', []);
setappdata(gcf,'img_xhair',[]);
if isempty(setting) | ~isfield(setting,'rescale')
set(findobj(gcf,'Tag','RESCALECheckbox'),'value',1);
else
set(findobj(gcf,'Tag','RESCALECheckbox'),'value',setting.rescale);
end;
setappdata(gcf,'setting',setting);
setappdata(gcf,'old_setting',setting);
setappdata(gcf,'actualHRF',1);
return; % init
%---------------------------------------------------------------------------
%
function ResizeFigure(fig_w,fig_h)
fig_pos = get(gcbf,'Position');
fig_width = fig_pos(3);
fig_height = fig_pos(4);
if (fig_width < fig_w),
fig_pos(3) = fig_w;
set(gcbf,'Position',fig_pos);
end;
if (fig_height < fig_h),
fig_pos(2) = fig_pos(2)+fig_pos(4) - fig_h; % temp solution for linux
fig_pos(4) = fig_h;
set(gcbf,'Position',fig_pos);
end;
h = getappdata(gcbf,'BlvAxes');
set(h,'Units','pixels');
axes_pos = get(h,'Position');
% x_margin = 90; y_margin = 25;
x_margin = 40; y_margin = 25;
if fig_w == 440, x_margin = 25; end;
axes_pos(3) = fig_pos(3) - axes_pos(1) - x_margin;
axes_pos(4) = fig_pos(4) - axes_pos(2) - y_margin;
set(h,'Position',axes_pos);
set(h,'Units','pixels');
if fig_w == 440, return; end;
% h = getappdata(gcbf,'Colorbar');
% set(h,'Units','pixels');
% colorbar_pos = get(h,'Position');
% x_margin = 80; y_margin = 25;
% colorbar_pos(1) = fig_pos(3) - x_margin;
% colorbar_pos(4) = fig_pos(4) - colorbar_pos(2) - y_margin;
% set(h,'Position',colorbar_pos);
% set(h,'Units','pixels');
% set all other objects' locations
%
if ~isequal(get(gcbf,'Userdata'),'Clone')
SetObjPosition;
end;
return; % ResizeFigure
%---------------------------------------------------------------------------
%
function DeleteLinkedFigure()
brain_plot = getappdata(gcf,'brain_plot');
if ~isempty(brain_plot) & ishandle(brain_plot)
delete(brain_plot);
end;
rf_plot = getappdata(gcbf,'RFPlotHdl');
if ~isempty(rf_plot) & ishandle(rf_plot)
delete(rf_plot);
end;
rf1_plot = getappdata(gcbf,'RF1PlotHdl');
if ~isempty(rf1_plot) & ishandle(rf1_plot)
delete(rf1_plot);
end;
scores_fig = getappdata(gcbf,'ScorePlotHdl');
if ~isempty(scores_fig)
delete(scores_fig);
end;
bscores_fig = getappdata(gcbf,'BSPlotHdl');
if ~isempty(bscores_fig) & ishandle(bscores_fig)
delete(bscores_fig);
end;
eigen_fig = getappdata(gcbf,'EigenPlotHdl');
if ~isempty(eigen_fig) & ishandle(eigen_fig)
delete(eigen_fig);
end;
datamatcorrs_fig = getappdata(gcbf,'DatamatcorrsPlotHdl');
if ~isempty(datamatcorrs_fig) & ishandle(datamatcorrs_fig)
delete(datamatcorrs_fig);
end;
brain_fig = getappdata(gcbf,'brain_plot');
if ~isempty(brain_fig) & ishandle(brain_fig)
delete(brain_fig);
end;
contrast_fig = getappdata(gcbf,'ContrastFigHdl');
if ~isempty(contrast_fig) & ishandle(contrast_fig)
delete(contrast_fig);
end;
cluster_hdl = getappdata(gcbf,'cluster_hdl');
if ~isempty(cluster_hdl) & ishandle(cluster_hdl)
delete(cluster_hdl);
end;
return; % DeleteLinkedFigure
%---------------------------------------------------------------------------
%
function SetObjPosition(ObjName)
f_pos = get(gcf,'Position');
obj = getappdata(gcf,'ObjPosition');
% set the positions for all objects
%
if ~exist('ObjName','var') | isempty(ObjName)
for i=1:length(obj),
obj_pos = obj(i).pos;
obj_pos(2) = f_pos(4) - obj_pos(2);
set(findobj(gcf,'Tag',obj(i).name),'Position',obj_pos);
end;
return;
end;
% set the position for a specfic object
%
i = 1;
while i < length(obj),
if strcmp(ObjName,obj(i).name)
obj_pos = obj(i).pos;
obj_pos(2) = f_pos(4) - obj_pos(2);
set(findobj(gcf,'Tag',obj(i).name),'Position',obj_pos);
return;
end;
i = i + 1;
end;
return; % SetObjPosition
%---------------------------------------------------------------------------
%
function CreateObjPosRecord()
%
% set object location, notice that the y value is counted from the top
% of the figure, instead of bottom as default
%
obj(1).name = 'ResultFileLabel'; obj(1).pos = [19 40 70 16];
obj(2).name = 'ResultFile'; obj(2).pos = [90 40 144 16];
obj(3).name = 'LVIndexLabel'; obj(3).pos = [19 75 55 19];
obj(4).name = 'LVIndexEdit'; obj(4).pos = [77 75 38 23];
obj(5).name = 'LVNumberLabel'; obj(5).pos = [125 75 20 19];
obj(6).name = 'LVNumberEdit'; obj(6).pos = [145 75 38 19];
obj(7).name = 'SliceFrame'; obj(7).pos = [19 184 172 95];
obj(8).name = 'FirstSliceLabel'; obj(8).pos = [40 133 67 19];
obj(9).name = 'FirstSlice'; obj(9).pos = [115 133 57 22];
obj(10).name = 'LastSliceLabel'; obj(10).pos = [38 163 67 19];
obj(11).name = 'LastSlice'; obj(11).pos = [115 163 57 22];
obj(12).name = 'ThresholdFrame'; obj(12).pos = [19 325-111 172 125];
obj(13).name = 'BLVTitle'; obj(13).pos = [75 213-111 58 19];
obj(14).name = 'BLVValueLabel'; obj(14).pos = [28 240-111 76 19];
obj(15).name = 'BLVValue'; obj(15).pos = [110 240-111 67 19];
obj(16).name = 'ThresholdLabel'; obj(16).pos = [28 265-111 76 19];
obj(17).name = 'Threshold'; obj(17).pos = [110 265-111 67 22];
obj(18).name = 'MinValueLabel'; obj(18).pos = [28 290-111 76 19];
obj(19).name = 'MinValue'; obj(19).pos = [110 290-111 67 22];
obj(20).name = 'MaxValueLabel'; obj(20).pos = [28 315-111 76 19];
obj(21).name = 'MaxValue'; obj(21).pos = [110 315-111 67 22];
obj(22).name = 'BSRatioTitle'; obj(22).pos = [60 213-111 90 19];
obj(23).name = 'PValueLabel'; obj(23).pos = [30 240-111 105 19];
obj(24).name = 'PValue'; obj(24).pos = [132 240-111 56 19];
obj(25).name = 'BSThresholdLabel'; obj(25).pos = [28 260-111 76 19];
obj(26).name = 'BSThreshold'; obj(26).pos = [110 260-111 67 22];
obj(27).name = 'MinRatioLabel'; obj(27).pos = [28 290-111 76 19];
obj(28).name = 'MinRatio'; obj(28).pos = [110 290-111 67 22];
obj(29).name = 'MaxRatioLabel'; obj(29).pos = [28 315-111 76 19];
obj(30).name = 'MaxRatio'; obj(30).pos = [110 315-111 67 22];
obj(31).name = 'LocationFrame'; obj(31).pos = [19 420-111 172 85];
obj(32).name = 'XYZVoxelLabel'; obj(32).pos = [35 365-111 50 19];
obj(33).name = 'XYZVoxel'; obj(33).pos = [75 365-111 105 19];
obj(34).name = 'XYZmmLabel'; obj(34).pos = [35 390-111 70 19];
obj(35).name = 'XYZmm'; obj(35).pos = [35 408-111 145 19];
obj(36).name = 'RESCALECheckbox'; obj(36).pos = [19 347 172 28];
% obj(37).name = 'PLOTButton'; obj(37).pos = [50 410 110 40];
obj(37).name = 'CLOSEButton'; obj(37).pos = [19 460 172 40];
% obj(38).name = 'CLOSEButton'; obj(38).pos = [50 460 110 40];
% obj(38).name = 'CLOSEButton'; obj(38).pos = [115 460 67 28];
setappdata(gcf,'ObjPosition',obj);
return; % CreateObjPosRecord
%---------------------------------------------------------------------------
%
function rot_amount = load_pls_result()
cond_selection = [];
% wait message
old_pointer = get(gcf,'Pointer');
set(gcf,'Pointer','watch');
msg = 'Loading PLS result ... please wait';
set(findobj(gcf,'Tag','MessageLine'),'String',msg);
h = findobj(gcf,'Tag','ResultFile');
PLSresultFile = get(h,'UserData');
load(PLSresultFile);
rri_changepath('petresult');
% brainlv = brainlv * diag(s); % will be rescaled in 'set_blv_fields' below
setting = getappdata(gcf,'setting');
if isempty(setting)
lv_idx = 1;
rot_amount = 1;
else
lv_idx = setting.lv_idx;
rot_amount = setting.rot_amount;
end;
num_lv = size(brainlv,2);
if exist('ismultiblock','var')
set(gcf,'Name', ...
sprintf('PET Multiblock PLS Brain LV Plot: %s',PLSresultFile));
set(findobj(gcf,'Tag','OpenBrainPlot'), 'Visible', 'On');
set(findobj(gcf,'Tag','OpenBehavPlot'), 'Visible', 'Off');
set(findobj(gcf,'Tag','OpenDesignPlot'), 'Visible', 'On');
set(findobj(gcf,'Tag','OpenRFPlot'), 'Visible', 'On');
set(findobj(gcf,'Tag','OpenRF1Plot'), 'Visible', 'On');
set(findobj(gcf,'tag','OpenDatamatcorrsPlot'), 'visible', 'on');
setappdata(gcf,'ismultiblock',1);
setappdata(gcf,'isbehav',1);
setappdata(gcf,'datamatcorrs_lst',datamatcorrs_lst);
elseif exist('behavlv','var')
set(gcf,'Name', ...
sprintf('PET Behavioral PLS Brain LV Plot: %s',PLSresultFile));
set(findobj(gcf,'Tag','OpenBrainPlot'), 'Visible', 'On');
set(findobj(gcf,'Tag','OpenBehavPlot'), 'Visible', 'Off');
set(findobj(gcf,'Tag','OpenDesignPlot'), 'Visible', 'Off');
set(findobj(gcf,'Tag','OpenRFPlot'), 'Visible', 'On');
set(findobj(gcf,'Tag','OpenRF1Plot'), 'Visible', 'On');
set(findobj(gcf,'tag','OpenDatamatcorrsPlot'), 'visible', 'on');
setappdata(gcf,'isbehav',1);
setappdata(gcf,'datamatcorrs_lst',datamatcorrs_lst);
elseif exist('designlv','var')
set(gcf,'Name', ...
sprintf('PET Task PLS Brain LV Plot: %s',PLSresultFile));
set(findobj(gcf,'Tag','OpenBrainPlot'), 'Visible', 'Off');
set(findobj(gcf,'Tag','OpenBehavPlot'), 'Visible', 'Off');
set(findobj(gcf,'Tag','OpenDesignPlot'), 'Visible', 'On');
set(findobj(gcf,'Tag','OpenRFPlot'), 'Visible', 'On');
set(findobj(gcf,'Tag','OpenRF1Plot'), 'Visible', 'Off');
set(findobj(gcf,'tag','OpenDatamatcorrsPlot'), 'visible', 'off');
setappdata(gcf,'isbehav',0);
end
h = findobj(gcf,'Tag','LVIndexEdit');
set(h,'String',num2str(lv_idx),'Userdata',lv_idx);
h = findobj(gcf,'Tag','LVNumberEdit');
set(h,'String',num2str(num_lv),'Userdata',num_lv);
setappdata(gcf,'brainlv',brainlv);
setappdata(gcf, 's', s);
set_blv_fields(lv_idx);
if ~exist('boot_result','var') | isempty(boot_result)
ToggleView(0);
set(findobj(gcf,'Tag','ViewMenu'),'Visible','off');
else % show bootstrap ratio if exist
ToggleView(1);
set(findobj(gcf,'Tag','ViewMenu'),'Visible','on');
% set the bootstrap ratio field values
%
setappdata(gcf,'BSRatio',boot_result.compare);
set_bs_fields(lv_idx);
UpdatePValue;
end;
h = findobj(gcf,'Tag','OpenContrastWindow');
% if isequal(ContrastFile,'NONE') | isequal(ContrastFile,'BEHAV')
if ~exist('design','var')
set(h,'Visible','off');
else
set(h,'Visible','on');
end;
set(gcf,'Pointer',old_pointer);
set(findobj(gcf,'Tag','MessageLine'),'String','');
setappdata(gcf,'DatamatFileList', datamat_files);
setappdata(gcf,'RotateAmount',rot_amount);
setappdata(gcf,'CurrLVIdx',lv_idx);
setappdata(gcf,'Dims',dims);
setappdata(gcf,'cond_selection',cond_selection);
return; % load_pls_result
%-------------------------------------------------------------------------
%
function OpenBrainPlot()
h = findobj(gcf,'Tag','ResultFile');
PLSresultFile = get(h,'UserData');
brain_plot = getappdata(gcf,'brain_plot');
if ~isempty(brain_plot)
msg = 'ERROR: Brain scores plot is already been opened';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -