[Master Index]
[Index for Toolbox]
minnorm_parameters_cb
(Toolbox/minnorm_parameters_cb.m in BrainStorm 2.0 (Alpha))
Function Synopsis
hf = minnorm_parameters_cb(action,GUI,hf);
Help Text
MINNORM_PARAMETERS_CB - Minimum Norm GUI setup and execution
function hf = minnorm_parameters_cb(action,GUI,hf);
function hf = minnorm_parameters_cb; % Build and return handle to figure
function minnorm_parameters_cb(action); % switchyard
function minnorm_parameters_cb(StudySubject,GUI,hf); % initialize
Called with no action, it will build the GUI window using rap_parameters.fig
action may be either a string or a StudySubject structure
StudySubject must be a proper find_brainstorm_structure
In the initialization, GUI must contain the fields
GUI.Segment, vector of column indices to process in the data matrix
GUI.Rank, the rank of the signal subspace to use
GUI.DataName, the referentially qualified filename of the data set
GUI.ChannelFlag, +1 for each channel to be used
Cross-Reference Information
This function calls
This function is called by
Listing of function C:\BrainStorm_2001\Toolbox\minnorm_parameters_cb.m
function hf = minnorm_parameters_cb(action,GUI,hf);
%MINNORM_PARAMETERS_CB - Minimum Norm GUI setup and execution
% function hf = minnorm_parameters_cb(action,GUI,hf);
% function hf = minnorm_parameters_cb; % Build and return handle to figure
% function minnorm_parameters_cb(action); % switchyard
% function minnorm_parameters_cb(StudySubject,GUI,hf); % initialize
% Called with no action, it will build the GUI window using rap_parameters.fig
% action may be either a string or a StudySubject structure
% StudySubject must be a proper find_brainstorm_structure
% In the initialization, GUI must contain the fields
% GUI.Segment, vector of column indices to process in the data matrix
% GUI.Rank, the rank of the signal subspace to use
% GUI.DataName, the referentially qualified filename of the data set
% GUI.ChannelFlag, +1 for each channel to be used
%<autobegin> ---------------------- 26-May-2004 11:30:59 -----------------------
% --------- Automatically Generated Comments Block Using AUTO_COMMENTS ---------
%
% CATEGORY: Inverse Modeling
%
% Alphabetical list of external functions (non-Matlab):
% toolbox\get_user_directory.m
%
% Figure Files opened by this function:
% 'minnorm_parameters.fig'
%
% Format of strings below: Type:Style:Tag, "String", CallBack Type and Call
% <automatic> callback is <Tag>_Callback by Matlab default
%
% Callbacks by figure minnorm_parameters.fig
% figure::MinNorm Gui "" uses KeyPressFcn for dokeypress(gcbf)
% figure::MinNorm Gui "" uses ResizeFcn for doresize(gcbf)
% uicontrol:popupmenu:PopupReg "Regularization . . ." uses Callback for
% minnorm_parameters_cb ('set reg');
% uicontrol:pushbutton:ExecuteRAP "Execute" uses Callback for minnorm_parameters_cb('execute rap');
% uicontrol:pushbutton:Pushbutton1 "Quit" uses Callback for delete(gcbf)
% uimenu:: "" uses Callback for
% filemenufcn(gcbf,'FilePost')
% uimenu:: "" uses Callback for
% figure
% uimenu:: "" uses Callback for
% filemenufcn(gcbf,'FileOpen')
% uimenu:: "" uses Callback for
% close(gcbf)
% uimenu:: "" uses Callback for
% filemenufcn(gcbf,'FileExport')
% uimenu:: "" uses Callback for
% propedit(gcbf)
% uimenu:: "" uses Callback for
% filemenufcn(gcbf,'FilePreferences')
% uimenu:: "" uses Callback for
% pagesetupdlg(gcbf)
% uimenu:: "" uses Callback for
% filemenufcn(gcbf,'FilePrintSetup')
% uimenu:: "" uses Callback for
% printpreview(gcbf)
% uimenu:: "" uses Callback for
% printdlg
% uimenu:: "" uses Callback for
% editmenufcn(gcbf,'EditCopyFigure')
% uimenu:: "" uses Callback for
% editmenufcn(gcbf,'EditCopyOptions')
% uimenu:: "" uses Callback for
% domymenu('menubar','toggletoolbar',gcbf)
% uimenu:: "" uses Callback for
% %<noop>
% uimenu:: "" uses Callback for
% domymenu menubar addaxes
% uimenu:: "" uses Callback for
% domymenu menubar addarrow
% uimenu:: "" uses Callback for
% domymenu menubar addline
% uimenu:: "" uses Callback for
% domymenu menubar addtext
% uimenu:: "" uses Callback for
% domymenu menubar zoomin
% uimenu:: "" uses Callback for
% domymenu menubar zoomout
% uimenu:: "" uses Callback for
% domymenu menubar rotate3d
% uimenu:: "" uses Callback for
% winmenu(gcbo)
% uimenu:: "" uses Callback for
% %<noop>
% uimenu:: "" uses Callback for
% helpview([docroot '/mapfiles/plotedit.map'], 'plot_editor','PlotEditCollection')
% uimenu:: "" uses Callback for
% web([docroot '/techdoc/umg/umg.html']);
% uimenu:: "" uses Callback for
% helpwin
% uimenu:: "" uses Callback for
% helpwin helpinfo
% uimenu:: "" uses Callback for
% helpdesk
% uimenu:: "" uses Callback for
% demo
% uimenu:: "" uses Callback for
% uimenufcn(gcbf,'HelpAbout')
% uimenu:: "" uses Callback for
% doc subscribe
% uimenu::figMenuEdit "" uses Callback for
% editmenufcn(gcbf,'EditPost')
% uimenu::figMenuEditClear "" uses Callback for
% uimenufcn(gcbf,'EditClear')
% uimenu::figMenuEditCopy "" uses Callback for
% uimenufcn(gcbf,'EditCopy')
% uimenu::figMenuEditCut "" uses Callback for
% uimenufcn(gcbf,'EditCut')
% uimenu::figMenuEditPaste "" uses Callback for
% uimenufcn(gcbf,'EditPaste')
% uimenu::figMenuEditSelectAll "" uses Callback for
% uimenufcn(gcbf,'EditSelectAll')
% uimenu::figMenuEditUndo "" uses Callback for
% editmenufcn(gcbf,'EditUndo')
% uimenu::figMenuFileSave "" uses Callback for
% filemenufcn(gcbf,'FileSave')
% uimenu::figMenuFileSaveAs "" uses Callback for
% filemenufcn(gcbf,'FileSaveAs')
% uimenu::figMenuTools "" uses Callback for
% domymenu('menubar','updatetools',gcbf)
% uimenu::figMenuToolsAxesProps "" uses Callback for
% domymenu menubar axesprop
% uimenu::figMenuToolsLineProps "" uses Callback for
% domymenu menubar lineprop
% uimenu::figMenuToolsLockAxes "" uses Callback for
% domymenu menubar lockaxes
% uimenu::figMenuToolsPlotedit "" uses Callback for
% plotedit(gcbf)
% uimenu::figMenuToolsShowLegend "" uses Callback for
% domymenu menubar legend
% uimenu::figMenuToolsTextProps "" uses Callback for
% domymenu menubar textprop
% uitoggletool::ScribeSelectToolBtn "" uses DeleteFcn for plotedit(gcbf,'off')
%
% At Check-in: $Author: Mosher $ $Revision: 13 $ $Date: 5/26/04 9:59a $
%
% This software is part of BrainStorm Toolbox Version 2.0 (Alpha) 24-May-2004
%
% Principal Investigators and Developers:
% ** Richard M. Leahy, PhD, Signal & Image Processing Institute,
% University of Southern California, Los Angeles, CA
% ** John C. Mosher, PhD, Biophysics Group,
% Los Alamos National Laboratory, Los Alamos, NM
% ** Sylvain Baillet, PhD, Cognitive Neuroscience & Brain Imaging Laboratory,
% CNRS, Hopital de la Salpetriere, Paris, France
%
% See BrainStorm website at http://neuroimage.usc.edu for further information.
%
% Copyright (c) 2004 BrainStorm by the University of Southern California
% This software distributed under the terms of the GNU General Public License
% as published by the Free Software Foundation. Further details on the GPL
% license can be found at http://www.gnu.org/copyleft/gpl.html .
%
% FOR RESEARCH PURPOSES ONLY. THE SOFTWARE IS PROVIDED "AS IS," AND THE
% UNIVERSITY OF SOUTHERN CALIFORNIA AND ITS COLLABORATORS DO NOT MAKE ANY
% WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
% MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, NOR DO THEY ASSUME ANY
% LIABILITY OR RESPONSIBILITY FOR THE USE OF THIS SOFTWARE.
%<autoend> ------------------------ 26-May-2004 11:30:59 -----------------------
% ----------------------------- Script History ---------------------------------
% John C. Mosher, Ph.D.
% Sylvain Baillet, Ph.D.
% 19-May-2004 JCM Comments Cleaning
% ----------------------------- Script History ---------------------------------
linecolor = [.7 .7 .0]; % Line color for coordinates display
if(~exist('action')),
open('minnorm_parameters.fig');
hf = gcf; %the new figure handle
return
end
if(isstruct(action)), % call is rap_parameters_cb(StudySubject,GUI)
StudySubject = action;
action = 'initialize';
else
hf = gcbf; % the figure that called this
end
switch deblank(lower(action))
case 'initialize'
Names = fieldnames(GUI); % what did the user provide
temp = GUI; % will now overwrite
GUI = struct('DataName',[],'Results',[],'Segment',[],'Order',[],'Rank',[],...
'Corr',[],'ChannelFlag',[],'DisplayGraphics',[],'Tikhonov',[],'Column_norm',[]);
for i = 1:length(Names),
%map data in temp to data in GUI
GUI = setfield(GUI,Names{i},getfield(temp,Names{i}));
end
% is there a slicker way to do this? JCM 2/17/00
% so now I have the initial GUI parameters I need for RAP-MUSIC.
% Map into the uicontrols
ht = findobj(hf,'Tag','TextBrainStormStudy');
set(ht,'String',StudySubject.Study);
ht = findobj(hf,'Tag','TextBrainStormData');
set(ht,'String',GUI.DataName);
ht = findobj(hf,'Tag','TextBrainStormComment');
set(ht,'String',sprintf('Rank: %.0f, From index %.0f to %.0f',...
GUI.Rank,GUI.Segment(1),GUI.Segment(end)));
User = get_user_directory;
cd(User.STUDIES)
HeadModel = load(StudySubject.HeadModel);
ht = findobj(hf,'Tag','PopupImageGrid');
set(ht,'String',HeadModel.ImageGridName); % available names
set(ht,'Min',1,'Max',length(HeadModel.ImageGridName),'Value',1);
% store in the window user data
set(hf,'UserData',struct('StudySubject',StudySubject,'GUI',GUI));
case 'set textcorr'
str = get(gcbo,'String');
CORR = str2num(str);
CORR = max(0,CORR);
CORR = min(1,CORR);
h = findobj(gcbf,'Tag','SliderCorr');
set(h,'Value',CORR);
case 'set slidercorr'
CORR = get(gcbo,'Value');
h = findobj(gcbf,'Tag','EditCorr');
set(h,'String',sprintf('%.2f',CORR));
case 'set reg'
i = get(gcbo,'Value');
ht = findobj(hf,'Tag','EditReg'); % the edit field
switch i
case 1
set(ht,'String',' ')
str = get(gcbo,'String');
set(gcbo,'String','Select Method');
pause(1)
set(gcbo,'String',str)
case 2
% truncated SVD
set(ht,'String','100')
case 3
% energy truncation
set(ht,'String','.98')
case 4
% Tikhonov Condition
set(ht,'String','100')
case 5
% none, do nothing
set(ht,'String',' ')
end
case 'execute rap'
% collect up the stats
UD = get(hf,'UserData');
StudySubject = UD.StudySubject; %stored there
GUI = UD.GUI;
clear UD
ht = findobj(hf,'Tag','PopupImageGrid');
tmp = get(ht,'Value'); % which grid will we use
strtmp = get(ht,'String');
%GUI.iGrid = strmatch(lower(HeadModel.ImageGridName),lower(Comment));
User = get_user_directory;
cd(User.SUBJECTS)
load(StudySubject.SubjectTess);
GUI.iGrid = find(strcmp(lower(strtmp{tmp}),lower(Comment)));
ht = findobj(hf,'Tag','PopupReg');
hs = findobj(hf,'Tag','EditReg');
i = get(ht,'Value');
switch i
case 1
msgbox('You must select a regularization technique','Notice','modal');
return
case 2
% truncated svd
GUI.Condition = str2num(get(hs,'String'));
GUI.Energy = [];
GUI.Tikhonov = [];
case 3
% energy svd
GUI.Condition = [];
GUI.Energy = str2num(get(hs,'String'));
GUI.Tikhonov = [];
case 4
% Tikhonov Condition normalization
GUI.Condition = [];
GUI.Energy = [];
GUI.Tikhonov = str2num(get(hs,'String'));
case 5
% none
GUI.Condition = [];
GUI.Energy = [];
GUI.Tikhonov = [];
end
hcn = findobj(hf,'Tag','CheckboxColumnNorm');
GUI.Column_norm = get(hcn,'Value'); % 0 is no, 1 is yes
% now hash together a results name
[PATH,NAME,EXT,VER] = fileparts(GUI.DataName);
c = clock;
newname = fullfile(PATH,[NAME sprintf('_results_%02.0f%02.0f',c(4:5)) EXT VER]);
i = 0;
while(exist(newname,'file')),
i = i+1; % subtract another minute
c(5) = mod(c(5) - 1,60);
newname = fullfile(PATH,[NAME sprintf('_results_%02.0f%02.0f',c(4),c(5)) EXT VER]);
end
GUI.Results = newname;
more off % let the text flow freely
%% CHEAT %% for displaying graphic
GUI.DisplayGraphics = 1; % always display
[PATH,NAME,EXT,VER] = fileparts(StudySubject.SubjectTess);
TessRap = fullfile(PATH,[[NAME '_rap'] EXT VER]); % possible tesselation file
if(exist(TessRap,'file')), % there is a reduce one for rap
StudySubject.SubjectTess = TessRap; % map it in
end
minnorm_gui(StudySubject,GUI);
end
return
Produced by color_mat2html, a customized BrainStorm 2.0 (Alpha) version of mat2html on Tue Oct 12 12:05:14 2004
Cross-Directory links are: ON