Home > src > createSoftEntropyConstraint_Dialog.m

# createSoftEntropyConstraint_Dialog

## PURPOSE

- create soft entropy constraint dialog

## SYNOPSIS

function varargout = createSoftEntropyConstraint_Dialog(varargin)

## DESCRIPTION

     - create soft entropy constraint dialog

     copyright 2009-2012 Blair Armstrong, Christine Watson, David Plaut

        This file is part of SOS

        SOS is free software: you can redistribute it and/or modify
        it for academic and non-commercial purposes
        under the terms of the GNU General Public License as published by
        the Free Software Foundation, either version 3 of the License, or
        (at your option) any later version.  For commercial or for-profit
        uses, please contact the authors (sos@cnbc.cmu.edu).

        SOS is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.

## CROSS-REFERENCE INFORMATION

This function calls:

- getdfName - extracts a dataframe name selected in the GUI
- sos_gui - sos main GUI
- validatePositiveInteger - helper function to validate that a string represents a positive integer
- validateRealNumber - helper function to validate that a string represents a real number
- verbosePrint - master print function that regulates cmd line output based on verbosity flags

This function is called by:

- sos_gui - sos main GUI

## SUBFUNCTIONS

- function createSoftEntropyConstraint_Dialog_OpeningFcn(hObject, eventdata, handles, varargin)
- function varargout = createSoftEntropyConstraint_Dialog_OutputFcn(hObject, eventdata, handles)
- function edit_name_Callback(hObject, eventdata, handles)
- function flag = validate_name(handles)
- function edit_name_CreateFcn(hObject, eventdata, handles)
- function popupmenu_sample1Selector_Callback(hObject, eventdata, handles)
- function populateSampleList(hObject)
- function popupmenu_sample1Selector_CreateFcn(hObject, eventdata, handles)
- function pushbutton_refreshSample1List_Callback(hObject, eventdata, handles)
- function popupmenu_sample1Selector_ButtonDownFcn(hObject, eventdata, handles)
- function popupmenu_sample1ColSelector_Callback(hObject, eventdata, handles)
- function populateColumnList(hObject,sampleSelector)
- function popupmenu_sample1ColSelector_CreateFcn(hObject, eventdata, handles)
- function pushbutton_refreshsample1ColSelector_Callback(hObject, eventdata, handles)
- function popupmenu_sample2Selector_Callback(hObject, eventdata, handles)
- function popupmenu_sample2Selector_CreateFcn(hObject, eventdata, handles)
- function pushbutton_refreshSample2List_Callback(hObject, eventdata, handles)
- function popupmenu_sample2ColSelector_Callback(hObject, eventdata, handles)
- function popupmenu_sample2ColSelector_CreateFcn(hObject, eventdata, handles)
- function pushbutton_refreshsample2ColSelector_Callback(hObject, eventdata, handles)
- function popupmenu_sample1ColSelector_ButtonDownFcn(hObject, eventdata, handles)
- function popupmenu_sample2Selector_ButtonDownFcn(hObject, eventdata, handles)
- function popupmenu_sample2ColSelector_ButtonDownFcn(hObject, eventdata, handles)
- function edit_nbin_Callback(hObject, eventdata, handles)
- function flag = validate_nbin(handles)
- function edit_nbin_CreateFcn(hObject, eventdata, handles)
- function popupmenu_desiredpvalCondition_Callback(hObject, eventdata, handles)
- function popupmenu_desiredpvalCondition_CreateFcn(hObject, eventdata, handles)
- function popupmenu_tails_Callback(hObject, eventdata, handles)
- function popupmenu_tails_CreateFcn(hObject, eventdata, handles)
- function pushbutton_createSoftEntropyConstraint_Callback(hObject, eventdata, handles)
- function popupmenu_type_Callback(hObject, eventdata, handles)
- function popupmenu_type_CreateFcn(hObject, eventdata, handles)
- function popupmenu_fncSelector_Callback(hObject, eventdata, handles)
- function popupmenu_fncSelector_CreateFcn(hObject, eventdata, handles)
- function edit_weight_Callback(hObject, eventdata, handles)
- function flag = validate_weight(handles)
- function edit_weight_CreateFcn(hObject, eventdata, handles)
- function edit_exp_Callback(hObject, eventdata, handles)
- function flag = validate_exp(handles)
- function edit_exp_CreateFcn(hObject, eventdata, handles)
- function popupmenu_pdSpreadSelector_Callback(hObject, eventdata, handles)
- function popupmenu_pdSpreadSelector_CreateFcn(hObject, eventdata, handles)

## SOURCE CODE

    0001 % - create soft entropy constraint dialog
    0002 %
    0003 % copyright 2009-2012 Blair Armstrong, Christine Watson, David Plaut
    0004 %
    0005 %    This file is part of SOS
    0006 %
    0007 %    SOS is free software: you can redistribute it and/or modify
    0008 %    it for academic and non-commercial purposes
    0009 %    under the terms of the GNU General Public License as published by
    0010 %    the Free Software Foundation, either version 3 of the License, or
    0011 %    (at your option) any later version.  For commercial or for-profit
    0012 %    uses, please contact the authors (sos@cnbc.cmu.edu).
    0013 %
    0014 %    SOS is distributed in the hope that it will be useful,
    0015 %    but WITHOUT ANY WARRANTY; without even the implied warranty of
    0016 %    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    0017 %    GNU General Public License for more details.
    0018
    0019 %    You should have received a copy of the GNU General Public License
    0020 %    along with SOS (see COPYING.txt).
    0021 %    If not, see <http://www.gnu.org/licenses/>.
    0022
    0023 function varargout = createSoftEntropyConstraint_Dialog(varargin)
    0024 % CREATESOFTENTROPYCONSTRAINT_DIALOG M-file for createSoftEntropyConstraint_Dialog.fig
    0025 %      CREATESOFTENTROPYCONSTRAINT_DIALOG, by itself, creates a new CREATESOFTENTROPYCONSTRAINT_DIALOG or raises the existing
    0026 %      singleton*.
    0027 %
    0028 %      H = CREATESOFTENTROPYCONSTRAINT_DIALOG returns the handle to a new CREATESOFTENTROPYCONSTRAINT_DIALOG or the handle to
    0029 %      the existing singleton*.
    0030 %
    0031 %      CREATESOFTENTROPYCONSTRAINT_DIALOG('CALLBACK',hObject,eventData,handles,...) calls the local
    0032 %      function named CALLBACK in CREATESOFTENTROPYCONSTRAINT_DIALOG.M with the given input arguments.
    0033 %
    0034 %      CREATESOFTENTROPYCONSTRAINT_DIALOG('Property','Value',...) creates a new CREATESOFTENTROPYCONSTRAINT_DIALOG or raises the
    0035 %      existing singleton*.  Starting from the left, property value pairs are
    0036 %      applied to the GUI before createSoftEntropyConstraint_Dialog_OpeningFcn gets called.  An
    0037 %      unrecognized property name or invalid value makes property application
    0038 %      stop.  All inputs are passed to createSoftEntropyConstraint_Dialog_OpeningFcn via varargin.
    0039 %
    0040 %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    0041 %      instance to run (singleton)".
    0042 %
    0043 % See also: GUIDE, GUIDATA, GUIHANDLES
    0044
    0045 % Edit the above text to modify the response to help createSoftEntropyConstraint_Dialog
    0046
    0047 % Last Modified by GUIDE v2.5 17-Sep-2010 13:18:27
    0048
    0049 % Begin initialization code - DO NOT EDIT
    0050 gui_Singleton = 1;
    0051 gui_State = struct('gui_Name',       mfilename, ...
    0052                    'gui_Singleton',  gui_Singleton, ...
    0053                    'gui_OpeningFcn', @createSoftEntropyConstraint_Dialog_OpeningFcn, ...
    0054                    'gui_OutputFcn',  @createSoftEntropyConstraint_Dialog_OutputFcn, ...
    0055                    'gui_LayoutFcn',  [] , ...
    0056                    'gui_Callback',   []);
    0057 if nargin && ischar(varargin{1})
    0058     gui_State.gui_Callback = str2func(varargin{1});
    0059 end
    0060
    0061 if nargout
    0062     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    0063 else
    0064     gui_mainfcn(gui_State, varargin{:});
    0065 end
    0066 % End initialization code - DO NOT EDIT
    0067
    0068
    0069 % --- Executes just before createSoftEntropyConstraint_Dialog is made visible.
    0070 function createSoftEntropyConstraint_Dialog_OpeningFcn(hObject, eventdata, handles, varargin)
    0071 % This function has no output args, see OutputFcn.
    0072 % hObject    handle to figure
    0073 % eventdata  reserved - to be defined in a future version of MATLAB
    0074 % handles    structure with handles and user data (see GUIDATA)
    0075 % varargin   command line arguments to createSoftEntropyConstraint_Dialog (see VARARGIN)
    0076
    0077 % Choose default command line output for createSoftEntropyConstraint_Dialog
    0078 handles.output = hObject;
    0079
    0080 % Update handles structure
    0081 guidata(hObject, handles);
    0082
    0083 % UIWAIT makes createSoftEntropyConstraint_Dialog wait for user response (see UIRESUME)
    0084 % uiwait(handles.figure_createSoftEntropyConstraint_Dialog);
    0085
    0086
    0087 % --- Outputs from this function are returned to the command line.
    0088 function varargout = createSoftEntropyConstraint_Dialog_OutputFcn(hObject, eventdata, handles)
    0089 % varargout  cell array for returning output args (see VARARGOUT);
    0090 % hObject    handle to figure
    0091 % eventdata  reserved - to be defined in a future version of MATLAB
    0092 % handles    structure with handles and user data (see GUIDATA)
    0093
    0094 % Get default command line output from handles structure
    0095 varargout{1} = handles.output;
    0096
    0097
    0098
    0099 function edit_name_Callback(hObject, eventdata, handles)
    0100 % hObject    handle to edit_name (see GCBO)
    0101 % eventdata  reserved - to be defined in a future version of MATLAB
    0102 % handles    structure with handles and user data (see GUIDATA)
    0103
    0104 % Hints: get(hObject,'String') returns contents of edit_name as text
    0105 %        str2double(get(hObject,'String')) returns contents of edit_name as a double
    0106     validate_name(handles);
    0107
    0108
    0109 function flag = validate_name(handles)
    0110
    0111     varName = get(handles.edit_name,'String');
    0112
    0113     %check to make sure that the name is a valid variable name:
    0114     valid = regexp(varName,'^[a-zA-Z]+\w*$', 'once');
    0115
    0116     if isempty(valid)
    0117         % name is not currently valid, tell the user.
    0118         msgbox('Only letters, numbers, and underscores are permitted in the name of the ttest object.  The first character must also be a letter.',...
    0119                 'Invalid name!');
    0120         flag = false;
    0121     else
    0122         % check to make sure that the new variable name doesn't already exist.
    0123         command = strcat('whos(''',varName,''')');
    0124         varExists = evalin('base',command);
    0125
    0126
    0127         % if a variable with this name already exists, warns the user
    0128         if isempty(varExists) == 0
    0129             msgbox('A variable with this name already exists and will be overridden if you continue',...
    0130                     'Variable name already in use!');
    0131         end
    0132
    0133         flag = true;
    0134     end
    0135
    0136
    0137
    0138 % --- Executes during object creation, after setting all properties.
    0139 function edit_name_CreateFcn(hObject, eventdata, handles)
    0140 % hObject    handle to edit_name (see GCBO)
    0141 % eventdata  reserved - to be defined in a future version of MATLAB
    0142 % handles    empty - handles not created until after all CreateFcns called
    0143
    0144 % Hint: edit controls usually have a white background on Windows.
    0145 %       See ISPC and COMPUTER.
    0146 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0147     set(hObject,'BackgroundColor','white');
    0148 end
    0149
    0150
    0151 % --- Executes on selection change in popupmenu_sample1Selector.
    0152 function popupmenu_sample1Selector_Callback(hObject, eventdata, handles)
    0153 % hObject    handle to popupmenu_sample1Selector (see GCBO)
    0154 % eventdata  reserved - to be defined in a future version of MATLAB
    0155 % handles    structure with handles and user data (see GUIDATA)
    0156
    0157 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_sample1Selector contents as cell array
    0158 %        contents{get(hObject,'Value')} returns selected item from popupmenu_sample1Selector
    0159     populateSampleList(hObject);
    0160
    0161
    0162 function populateSampleList(hObject)
    0163     % get a list of all populations in the base workspace:
    0164     vars = evalin('base','whos()');
    0165
    0166     samples = [];
    0167     for i=1:length(vars)
    0168         if strcmp(vars(i).class,'sample')
    0169             samples = [samples; {vars(i).name}]; %#ok<AGROW>
    0170         end
    0171     end
    0172
    0173
    0174
    0175     % assign that list to the options in the pop up menu
    0176     warning('off','MATLAB:hg:uicontrol:ParameterValuesMustBeValid');
    0177     set(hObject,'String',samples);
    0178
    0179 % --- Executes during object creation, after setting all properties.
    0180 function popupmenu_sample1Selector_CreateFcn(hObject, eventdata, handles)
    0181 % hObject    handle to popupmenu_sample1Selector (see GCBO)
    0182 % eventdata  reserved - to be defined in a future version of MATLAB
    0183 % handles    empty - handles not created until after all CreateFcns called
    0184
    0185 % Hint: popupmenu controls usually have a white background on Windows.
    0186 %       See ISPC and COMPUTER.
    0187 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0188     set(hObject,'BackgroundColor','white');
    0189 end
    0190
    0191
    0192 % --- Executes on button press in pushbutton_refreshSample1List.
    0193 function pushbutton_refreshSample1List_Callback(hObject, eventdata, handles)
    0194 % hObject    handle to pushbutton_refreshSample1List (see GCBO)
    0195 % eventdata  reserved - to be defined in a future version of MATLAB
    0196 % handles    structure with handles and user data (see GUIDATA)
    0197     populateSampleList(handles.popupmenu_sample1Selector);
    0198
    0199 % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    0200 % --- Otherwise, executes on mouse press in 5 pixel border or over popupmenu_sample1Selector.
    0201 function popupmenu_sample1Selector_ButtonDownFcn(hObject, eventdata, handles)
    0202 % hObject    handle to popupmenu_sample1Selector (see GCBO)
    0203 % eventdata  reserved - to be defined in a future version of MATLAB
    0204 % handles    structure with handles and user data (see GUIDATA)
    0205     populateSampleList(hObject);
    0206
    0207
    0208 % --- Executes on selection change in popupmenu_sample1ColSelector.
    0209 function popupmenu_sample1ColSelector_Callback(hObject, eventdata, handles)
    0210 % hObject    handle to popupmenu_sample1ColSelector (see GCBO)
    0211 % eventdata  reserved - to be defined in a future version of MATLAB
    0212 % handles    structure with handles and user data (see GUIDATA)
    0213     populateColumnList(hObject,handles.popupmenu_sample1Selector);
    0214
    0215 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_sample1ColSelector contents as cell array
    0216 %        contents{get(hObject,'Value')} returns selected item from popupmenu_sample1ColSelector
    0217 function populateColumnList(hObject,sampleSelector)
    0218     % get a list of all populations in the base workspace:
    0219
    0220     create = true;
    0221
    0222     % get the sample in the first list.
    0223     sampleMenuHandle = sampleSelector;
    0224     sampleName = getdfName(sampleMenuHandle,'sample 1');
    0225
    0226     if isempty(sampleName)
    0227         create = false;
    0228     end
    0229
    0230     if create == true
    0231         % add in all of the header names associated with that sample.
    0232         tmpColNames = evalin('base',[sampleName,'.header']);
    0233
    0234         % melt and refreeze cells
    0235         colNames = {};
    0236
    0237         for i=1:length(tmpColNames)
    0238             colNames = [colNames ; tmpColNames{i}]; %#ok<AGROW>
    0239         end
    0240
    0241
    0242     % assign that list to the options in the pop up menu
    0243         warning('off','MATLAB:hg:uicontrol:ParameterValuesMustBeValid');
    0244         set(hObject,'String',colNames);
    0245     end
    0246
    0247 % --- Executes during object creation, after setting all properties.
    0248 function popupmenu_sample1ColSelector_CreateFcn(hObject, eventdata, handles)
    0249 % hObject    handle to popupmenu_sample1ColSelector (see GCBO)
    0250 % eventdata  reserved - to be defined in a future version of MATLAB
    0251 % handles    empty - handles not created until after all CreateFcns called
    0252
    0253 % Hint: popupmenu controls usually have a white background on Windows.
    0254 %       See ISPC and COMPUTER.
    0255 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0256     set(hObject,'BackgroundColor','white');
    0257 end
    0258
    0259
    0260 % --- Executes on button press in pushbutton_refreshsample1ColSelector.
    0261 function pushbutton_refreshsample1ColSelector_Callback(hObject, eventdata, handles)
    0262 % hObject    handle to pushbutton_refreshsample1ColSelector (see GCBO)
    0263 % eventdata  reserved - to be defined in a future version of MATLAB
    0264 % handles    structure with handles and user data (see GUIDATA)
    0265     populateColumnList(handles.popupmenu_sample1ColSelector,handles.popupmenu_sample1Selector);
    0266
    0267
    0268 % --- Executes on selection change in popupmenu_sample2Selector.
    0269 function popupmenu_sample2Selector_Callback(hObject, eventdata, handles)
    0270 % hObject    handle to popupmenu_sample2Selector (see GCBO)
    0271 % eventdata  reserved - to be defined in a future version of MATLAB
    0272 % handles    structure with handles and user data (see GUIDATA)
    0273
    0274 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_sample2Selector contents as cell array
    0275 %        contents{get(hObject,'Value')} returns selected item from popupmenu_sample2Selector
    0276     populateSampleList(hObject);
    0277
    0278
    0279 % --- Executes during object creation, after setting all properties.
    0280 function popupmenu_sample2Selector_CreateFcn(hObject, eventdata, handles)
    0281 % hObject    handle to popupmenu_sample2Selector (see GCBO)
    0282 % eventdata  reserved - to be defined in a future version of MATLAB
    0283 % handles    empty - handles not created until after all CreateFcns called
    0284
    0285 % Hint: popupmenu controls usually have a white background on Windows.
    0286 %       See ISPC and COMPUTER.
    0287 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0288     set(hObject,'BackgroundColor','white');
    0289 end
    0290
    0291
    0292 % --- Executes on button press in pushbutton_refreshSample2List.
    0293 function pushbutton_refreshSample2List_Callback(hObject, eventdata, handles)
    0294 % hObject    handle to pushbutton_refreshSample2List (see GCBO)
    0295 % eventdata  reserved - to be defined in a future version of MATLAB
    0296 % handles    structure with handles and user data (see GUIDATA)
    0297     populateSampleList(handles.popupmenu_sample2Selector);
    0298
    0299 % --- Executes on selection change in popupmenu_sample2ColSelector.
    0300 function popupmenu_sample2ColSelector_Callback(hObject, eventdata, handles)
    0301 % hObject    handle to popupmenu_sample2ColSelector (see GCBO)
    0302 % eventdata  reserved - to be defined in a future version of MATLAB
    0303 % handles    structure with handles and user data (see GUIDATA)
    0304
    0305 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_sample2ColSelector contents as cell array
    0306 %        contents{get(hObject,'Value')} returns selected item from popupmenu_sample2ColSelector
    0307     populateColumnList(hObject,handles.popupmenu_sample2Selector);
    0308
    0309
    0310 % --- Executes during object creation, after setting all properties.
    0311 function popupmenu_sample2ColSelector_CreateFcn(hObject, eventdata, handles)
    0312 % hObject    handle to popupmenu_sample2ColSelector (see GCBO)
    0313 % eventdata  reserved - to be defined in a future version of MATLAB
    0314 % handles    empty - handles not created until after all CreateFcns called
    0315
    0316 % Hint: popupmenu controls usually have a white background on Windows.
    0317 %       See ISPC and COMPUTER.
    0318 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0319     set(hObject,'BackgroundColor','white');
    0320 end
    0321
    0322
    0323 % --- Executes on button press in pushbutton_refreshsample2ColSelector.
    0324 function pushbutton_refreshsample2ColSelector_Callback(hObject, eventdata, handles)
    0325 % hObject    handle to pushbutton_refreshsample2ColSelector (see GCBO)
    0326 % eventdata  reserved - to be defined in a future version of MATLAB
    0327 % handles    structure with handles and user data (see GUIDATA)
    0328     populateColumnList(handles.popupmenu_sample2ColSelector,handles.popupmenu_sample2Selector);
    0329
    0330
    0331 % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    0332 % --- Otherwise, executes on mouse press in 5 pixel border or over popupmenu_sample1ColSelector.
    0333 function popupmenu_sample1ColSelector_ButtonDownFcn(hObject, eventdata, handles)
    0334 % hObject    handle to popupmenu_sample1ColSelector (see GCBO)
    0335 % eventdata  reserved - to be defined in a future version of MATLAB
    0336 % handles    structure with handles and user data (see GUIDATA)
    0337     populateColumnList(hObject,handles.popupmenu_sample1Selector);
    0338
    0339
    0340 % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    0341 % --- Otherwise, executes on mouse press in 5 pixel border or over popupmenu_sample2Selector.
    0342 function popupmenu_sample2Selector_ButtonDownFcn(hObject, eventdata, handles)
    0343 % hObject    handle to popupmenu_sample2Selector (see GCBO)
    0344 % eventdata  reserved - to be defined in a future version of MATLAB
    0345 % handles    structure with handles and user data (see GUIDATA)
    0346     populateSampleList(hObject);
    0347
    0348
    0349 % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    0350 % --- Otherwise, executes on mouse press in 5 pixel border or over popupmenu_sample2ColSelector.
    0351 function popupmenu_sample2ColSelector_ButtonDownFcn(hObject, eventdata, handles)
    0352 % hObject    handle to popupmenu_sample2ColSelector (see GCBO)
    0353 % eventdata  reserved - to be defined in a future version of MATLAB
    0354 % handles    structure with handles and user data (see GUIDATA)
    0355     populateColumnList(hObject,handles.popupmenu_sample2Selector);
    0356
    0357
    0358
    0359 function edit_nbin_Callback(hObject, eventdata, handles)
    0360 % hObject    handle to edit_nbin (see GCBO)
    0361 % eventdata  reserved - to be defined in a future version of MATLAB
    0362 % handles    structure with handles and user data (see GUIDATA)
    0363
    0364 % Hints: get(hObject,'String') returns contents of edit_nbin as text
    0365 %        str2double(get(hObject,'String')) returns contents of edit_nbin as a double
    0366     validate_nbin(handles);
    0367
    0368
    0369 function flag = validate_nbin(handles)
    0370      str = get(handles.edit_nbin,'String');
    0371
    0372     errmsg = 'Bound value must be a number';
    0373     errtitle = 'Invalid bound value!';
    0374
    0375     if isempty(str)
    0376         flag = true;
    0377     else
    0378         flag = validatePositiveInteger(str,errmsg,errtitle);
    0379     end
    0380
    0381
    0382
    0383 % --- Executes during object creation, after setting all properties.
    0384 function edit_nbin_CreateFcn(hObject, eventdata, handles)
    0385 % hObject    handle to edit_nbin (see GCBO)
    0386 % eventdata  reserved - to be defined in a future version of MATLAB
    0387 % handles    empty - handles not created until after all CreateFcns called
    0388
    0389 % Hint: edit controls usually have a white background on Windows.
    0390 %       See ISPC and COMPUTER.
    0391 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0392     set(hObject,'BackgroundColor','white');
    0393 end
    0394
    0395
    0396 % --- Executes on selection change in popupmenu_desiredpvalCondition.
    0397 function popupmenu_desiredpvalCondition_Callback(hObject, eventdata, handles)
    0398 % hObject    handle to popupmenu_desiredpvalCondition (see GCBO)
    0399 % eventdata  reserved - to be defined in a future version of MATLAB
    0400 % handles    structure with handles and user data (see GUIDATA)
    0401
    0402 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_desiredpvalCondition contents as cell array
    0403 %        contents{get(hObject,'Value')} returns selected item from popupmenu_desiredpvalCondition
    0404
    0405
    0406 % --- Executes during object creation, after setting all properties.
    0407 function popupmenu_desiredpvalCondition_CreateFcn(hObject, eventdata, handles)
    0408 % hObject    handle to popupmenu_desiredpvalCondition (see GCBO)
    0409 % eventdata  reserved - to be defined in a future version of MATLAB
    0410 % handles    empty - handles not created until after all CreateFcns called
    0411
    0412 % Hint: popupmenu controls usually have a white background on Windows.
    0413 %       See ISPC and COMPUTER.
    0414 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0415     set(hObject,'BackgroundColor','white');
    0416 end
    0417
    0418
    0419 % --- Executes on selection change in popupmenu_tails.
    0420 function popupmenu_tails_Callback(hObject, eventdata, handles)
    0421 % hObject    handle to popupmenu_tails (see GCBO)
    0422 % eventdata  reserved - to be defined in a future version of MATLAB
    0423 % handles    structure with handles and user data (see GUIDATA)
    0424
    0425 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_tails contents as cell array
    0426 %        contents{get(hObject,'Value')} returns selected item from popupmenu_tails
    0427
    0428
    0429 % --- Executes during object creation, after setting all properties.
    0430 function popupmenu_tails_CreateFcn(hObject, eventdata, handles)
    0431 % hObject    handle to popupmenu_tails (see GCBO)
    0432 % eventdata  reserved - to be defined in a future version of MATLAB
    0433 % handles    empty - handles not created until after all CreateFcns called
    0434
    0435 % Hint: popupmenu controls usually have a white background on Windows.
    0436 %       See ISPC and COMPUTER.
    0437 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0438     set(hObject,'BackgroundColor','white');
    0439 end
    0440
    0441
    0442 % --- Executes on button press in pushbutton_createSoftEntropyConstraint.
    0443 function pushbutton_createSoftEntropyConstraint_Callback(hObject, eventdata, handles)
    0444 % hObject    handle to pushbutton_createSoftEntropyConstraint (see GCBO)
    0445 % eventdata  reserved - to be defined in a future version of MATLAB
    0446 % handles    structure with handles and user data (see GUIDATA)
    0447
    0448     type = getdfName(handles.popupmenu_type,'type');
    0449
    0450     mainWindowHandle = sos_gui;
    0451     mainWindowData = guidata(mainWindowHandle);
    0452
    0453     sosObjName = getdfName(mainWindowData.popupmenu_SOSSelector,'SOS');
    0454
    0455     if isempty(sosObjName) == 0
    0456         % we have a valid SOS object to add the test to
    0457         % validate all of the parameters for the test
    0458         create = validate_name(handles);
    0459         name = get(handles.edit_name,'String');
    0460
    0461         if create == true
    0462             sample1 = getdfName(handles.popupmenu_sample1Selector,'sample 1');
    0463
    0464             if isempty(sample1) == 0
    0465                 sample1Col = getdfName(handles.popupmenu_sample1ColSelector','sample 1 column');
    0466
    0467                 if isempty(sample1Col) == 0
    0468                    create = validate_nbin(handles);
    0469
    0470                    if create == true
    0471                        %
    0472                         nbin = get(handles.edit_nbin,'String');
    0473
    0474                         % check weight
    0475                         create = validate_weight(handles);
    0476                         if create == true
    0477                             weight = get(handles.edit_weight,'String');
    0478
    0479                             create = validate_exp(handles);
    0480                             if create == true
    0481                                 exp = get (handles.edit_exp,'String');
    0482
    0483                                     %all functions passed, retrieve the
    0484                                     %hard-coded popup menu data
    0485
    0486                                     fnc = getdfName(handles.popupmenu_fncSelector,...
    0487                                                     'fnc');
    0488                                     pdSpread = getdfName(handles.popupmenu_pdSpreadSelector,...
    0489                                                     'stat');
    0490
    0491
    0492                                     %all of the other options are in drop-down
    0493                                     %menus and as such necessarily will pass.
    0494                                     %run the command.
    0495
    0496                                     if isempty(nbin)
    0497                                         % run abbreviated command if no bin
    0498                                         % information supplied
    0499
    0500                                     command = [name,'=',sosObjName,'.addConstraint(',...
    0501                                         '''name'',''',name,''',',...
    0502                                         '''constraintType'',''',type,''',',...
    0503                                         '''pdSpread'',''',pdSpread,''',',...
    0504                                         '''fnc'',''',fnc,''',',...
    0505                                         '''sample1'',',sample1,',',...
    0506                                         '''s1ColName'',''',sample1Col,''',',...
    0507                                         '''weight'',',weight,','...
    0508                                         '''exponent'',',exp,');',...
    0509                                         ];
    0510
    0511                                     else
    0512                                         command = [name,'=',sosObjName,'.addConstraint(',...
    0513                                         '''name'',''',name,''',',...
    0514                                         '''constraintType'',''',type,''',',...
    0515                                         '''pdSpread'',''',pdSpread,''',',...
    0516                                         '''fnc'',''',fnc,''',',...
    0517                                         '''sample1'',',sample1,',',...
    0518                                         '''s1ColName'',''',sample1Col,''',',...
    0519                                         '''nbin'',',nbin,',',...
    0520                                         '''weight'',',weight,','...
    0521                                         '''exponent'',',exp,');',...
    0522                                         ];
    0523                                     end
    0524
    0525                                     verbosePrint(['Executing command: ','''',command,''''],'createSoftEntropyConstraint_Dialog_create');
    0526                                     evalin('base',command);
    0527                                     close(handles.figure_createSoftEntropyConstraint_Dialog);
    0528                             end
    0529                         end
    0530                    end
    0531                 end
    0532             end
    0533         end
    0534     end
    0535
    0536
    0537 % --- Executes on selection change in popupmenu_type.
    0538 function popupmenu_type_Callback(hObject, eventdata, handles)
    0539 % hObject    handle to popupmenu_type (see GCBO)
    0540 % eventdata  reserved - to be defined in a future version of MATLAB
    0541 % handles    structure with handles and user data (see GUIDATA)
    0542
    0543 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_type contents as cell array
    0544 %        contents{get(hObject,'Value')} returns selected item from popupmenu_type
    0545
    0546
    0547 % --- Executes during object creation, after setting all properties.
    0548 function popupmenu_type_CreateFcn(hObject, eventdata, handles)
    0549 % hObject    handle to popupmenu_type (see GCBO)
    0550 % eventdata  reserved - to be defined in a future version of MATLAB
    0551 % handles    empty - handles not created until after all CreateFcns called
    0552
    0553 % Hint: popupmenu controls usually have a white background on Windows.
    0554 %       See ISPC and COMPUTER.
    0555 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0556     set(hObject,'BackgroundColor','white');
    0557 end
    0558
    0559
    0560 % --- Executes on selection change in popupmenu_fncSelector.
    0561 function popupmenu_fncSelector_Callback(hObject, eventdata, handles)
    0562 % hObject    handle to popupmenu_fncSelector (see GCBO)
    0563 % eventdata  reserved - to be defined in a future version of MATLAB
    0564 % handles    structure with handles and user data (see GUIDATA)
    0565
    0566 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_fncSelector contents as cell array
    0567 %        contents{get(hObject,'Value')} returns selected item from popupmenu_fncSelector
    0568
    0569
    0570 % --- Executes during object creation, after setting all properties.
    0571 function popupmenu_fncSelector_CreateFcn(hObject, eventdata, handles)
    0572 % hObject    handle to popupmenu_fncSelector (see GCBO)
    0573 % eventdata  reserved - to be defined in a future version of MATLAB
    0574 % handles    empty - handles not created until after all CreateFcns called
    0575
    0576 % Hint: popupmenu controls usually have a white background on Windows.
    0577 %       See ISPC and COMPUTER.
    0578 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0579     set(hObject,'BackgroundColor','white');
    0580 end
    0581
    0582
    0583
    0584 function edit_weight_Callback(hObject, eventdata, handles)
    0585 % hObject    handle to edit_weight (see GCBO)
    0586 % eventdata  reserved - to be defined in a future version of MATLAB
    0587 % handles    structure with handles and user data (see GUIDATA)
    0588
    0589 % Hints: get(hObject,'String') returns contents of edit_weight as text
    0590 %        str2double(get(hObject,'String')) returns contents of edit_weight as a double
    0591     validate_weight(handles);
    0592
    0593
    0594 function flag = validate_weight(handles)
    0595      str = get(handles.edit_weight,'String');
    0596
    0597     errmsg = 'Weight must be a number';
    0598     errtitle = 'Invalid weight!';
    0599
    0600     flag = validateRealNumber(str,errmsg,errtitle);
    0601
    0602 % --- Executes during object creation, after setting all properties.
    0603 function edit_weight_CreateFcn(hObject, eventdata, handles)
    0604 % hObject    handle to edit_weight (see GCBO)
    0605 % eventdata  reserved - to be defined in a future version of MATLAB
    0606 % handles    empty - handles not created until after all CreateFcns called
    0607
    0608 % Hint: edit controls usually have a white background on Windows.
    0609 %       See ISPC and COMPUTER.
    0610 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0611     set(hObject,'BackgroundColor','white');
    0612 end
    0613
    0614
    0615
    0616 function edit_exp_Callback(hObject, eventdata, handles)
    0617 % hObject    handle to edit_exp (see GCBO)
    0618 % eventdata  reserved - to be defined in a future version of MATLAB
    0619 % handles    structure with handles and user data (see GUIDATA)
    0620
    0621 % Hints: get(hObject,'String') returns contents of edit_exp as text
    0622 %        str2double(get(hObject,'String')) returns contents of edit_exp as a double
    0623     validate_exp(handles);
    0624
    0625
    0626 function flag = validate_exp(handles)
    0627      str = get(handles.edit_exp,'String');
    0628
    0629     errmsg = 'Exponent must be a number';
    0630     errtitle = 'Invalid exponent!';
    0631
    0632     flag = validateRealNumber(str,errmsg,errtitle);
    0633
    0634 % --- Executes during object creation, after setting all properties.
    0635 function edit_exp_CreateFcn(hObject, eventdata, handles)
    0636 % hObject    handle to edit_exp (see GCBO)
    0637 % eventdata  reserved - to be defined in a future version of MATLAB
    0638 % handles    empty - handles not created until after all CreateFcns called
    0639
    0640 % Hint: edit controls usually have a white background on Windows.
    0641 %       See ISPC and COMPUTER.
    0642 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0643     set(hObject,'BackgroundColor','white');
    0644 end
    0645
    0646
    0647 % --- Executes on selection change in popupmenu_pdSpreadSelector.
    0648 function popupmenu_pdSpreadSelector_Callback(hObject, eventdata, handles)
    0649 % hObject    handle to popupmenu_pdSpreadSelector (see GCBO)
    0650 % eventdata  reserved - to be defined in a future version of MATLAB
    0651 % handles    structure with handles and user data (see GUIDATA)
    0652
    0653 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_pdSpreadSelector contents as cell array
    0654 %        contents{get(hObject,'Value')} returns selected item from popupmenu_pdSpreadSelector
    0655
    0656
    0657 % --- Executes during object creation, after setting all properties.
    0658 function popupmenu_pdSpreadSelector_CreateFcn(hObject, eventdata, handles)
    0659 % hObject    handle to popupmenu_pdSpreadSelector (see GCBO)
    0660 % eventdata  reserved - to be defined in a future version of MATLAB
    0661 % handles    empty - handles not created until after all CreateFcns called
    0662
    0663 % Hint: popupmenu controls usually have a white background on Windows.
    0664 %       See ISPC and COMPUTER.
    0665 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0666     set(hObject,'BackgroundColor','white');
    0667 end