Analysis EVRIGUI Object: Difference between revisions

From Eigenvector Research Documentation Wiki
Jump to navigation Jump to search
imported>Jeremy
imported>Jeremy
No edit summary
Line 14: Line 14:
These methods can be used to retrieve the specified data as a DataSet object:
These methods can be used to retrieve the specified data as a DataSet object:
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
|        .getXblock      || Returns Calibration X-block
|        <tt>.getXblock</tt>     || Returns Calibration X-block
|-
|-
|        .getXblockVal  || Returns Validation X-block
|        <tt>.getXblockVal</tt>   || Returns Validation X-block
|-
|-
|        .getYblock      || Returns Calibration Y-block
|        <tt>.getYblock</tt>     || Returns Calibration Y-block
|-
|-
|        .getYblockVal  || Returns Validation Y-block
|        <tt>.getYblockVal</tt>   || Returns Validation Y-block
|}
|}


These methods can be used to set (i.e. "load") the specified data. Note that all take a single parameter as input and this parameter must be a DataSet object. If the object is not a valid DataSet object, an error will be thrown.
These methods can be used to set (i.e. "load") the specified data. Note that all take a single parameter as input and this parameter must be a DataSet object. If the object is not a valid DataSet object, an error will be thrown.
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
  |        .setXblock(dataset)      || Sets the Calibration X-block
  |        <tt>.setXblock(dataset)</tt>     || Sets the Calibration X-block
|-
|-
|        .setXblockVal(dataset)  || Sets the Validation X-block
|        <tt>.setXblockVal(dataset)</tt>   || Sets the Validation X-block
|-
|-
|        .setYblock(dataset)      || Sets the Calibration Y-block
|        <tt>.setYblock(dataset)</tt>     || Sets the Calibration Y-block
|-
|-
|        .setYblockVal(dataset)  || Sets the Validation Y-block
|        <tt>.setYblockVal(dataset)</tt>   || Sets the Validation Y-block
|}
|}


Line 37: Line 37:
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
|-
|-
|        .setModel(model)
|        <tt>.setModel(model)</tt>  || Loads the given model into the Analysis GUI and switches the analysis method to that specified by the model. See the <tt>.apply</tt> method to apply the model to validation or test data.
|-
|-
|        .getModel
|        <tt>.getModel</tt>    || Returns the currently calibrated model (if any)
|}
|}


Similarly, predictions can be loaded or retrieved using these methods:
Similarly, predictions can be loaded or retrieved using these methods:
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
|        .setPrediction(prediction)
|        <tt>.setPrediction(prediction)</tt>
|-
|-
|        .getPrediction
|        <tt>.getPrediction</tt>
|}
|}


The "drop" method is a simplified loading method. Any valid data, model or prediction can be "dropped" on a valid Analysis EVRIGUI object and the GUI will attempt to load the given data into the most logical location based on the GUI's current status. Since this may be ambiguious to the script or program accessing the EVRIGUI object where the data will be loaded, it is often recommended that an explict .set____ command (see above) be used in most cases.
The "drop" method is a simplified loading method. Any valid data, model or prediction can be "dropped" on a valid Analysis EVRIGUI object and the GUI will attempt to load the given data into the most logical location based on the GUI's current status. Since this may be ambiguious to the script or program accessing the EVRIGUI object where the data will be loaded, it is often recommended that an explict .set____ command (see above) be used in most cases.
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
|        .drop(dataset)
|        <tt>.drop(dataset)</tt>    || Attempt to load the specified DataSet into the most logical data location in the GUI
|-
|-
|        .drop(model)
|        <tt>.drop(model)</tt>      || Attemp to load the specified model into the GUI (see also <tt>.setModel</tt> above)
|}
|}


Clearing of data, models, and predictions can be achieved using these methods. In all cases, if the given data or model is already cleared, no error occurrs.
Clearing of data, models, and predictions can be achieved using these methods. In all cases, if the given data or model is already cleared, no error occurrs.
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
|        .clearAll        || Clears all data, models, and predictions (return to initial startup state)
|        <tt>.clearAll</tt>         || Clears all data, models, options, and predictions (return to initial startup state)
|-
|-
|        .clearBothCal    || Clears both X and Y Calibration Data
|        <tt>.clearBothCal</tt>     || Clears both X and Y Calibration Data
|-
|-
|        .clearBothVal    || Clears both X and Y Validation Data
|        <tt>.clearBothVal</tt>     || Clears both X and Y Validation Data
|-
|-
|        .clearModel      || Clears current model
|        <tt>.clearModel</tt>       || Clears current model
|-
|-
|        .clearXblock      || Clears Calibration X-block
|        <tt>.clearXblock</tt>     || Clears Calibration X-block
|-
|-
|        .clearXblockVal  || Clears Validation X-block
|        <tt>.clearXblockVal</tt>   || Clears Validation X-block
|-
|-
|        .clearYblock      || Clears Calibration Y-block
|        <tt>.clearYblock</tt>     || Clears Calibration Y-block
|-
|-
|        .clearYblockVal  || Clears Validation Y-block
|        <tt>.clearYblockVal</tt>   || Clears Validation Y-block
|}
|}


Line 128: Line 128:
These methods provide simple access to simple GUI actions such as controlling the visibility of the GUI and closing or creating the GUI
These methods provide simple access to simple GUI actions such as controlling the visibility of the GUI and closing or creating the GUI
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
|        .getVisibility    || Returns 1 (one) if the GUI is currently visible (not hidden) and 0 (zero) otherwise
|        <tt>.getVisibility</tt>   || Returns 1 (one) if the GUI is currently visible (not hidden) and 0 (zero) otherwise
|-
|-
|        .setVisibility(vis)    || When input is 1 (one), the GUI is made visible. When input is 0 (zero), the GUI is hidden from view and from the task bar (when relevent). Note that some methods may make a hidden GUI visible again even if this value has been set to zero.
|        <tt>.setVisibility(vis)</tt>   || When input is 1 (one), the GUI is made visible. When input is 0 (zero), the GUI is hidden from view and from the task bar (when relevent). Note that some methods may make a hidden GUI visible again even if this value has been set to zero.
|-
|-
|        .close            || Forces the GUI to close
|        <tt>.close</tt>           || Forces the GUI to close
|-
|-
|        .create          || Used to create a new Analysis GUI - '''NOTE:''' This method is called automatically by the main EVRIGUI object and should not be called directly by the user (an error will always be thrown in that situation)
|        <tt>.create</tt>           || Used to create a new Analysis GUI - '''NOTE:''' This method is called automatically by the main EVRIGUI object and should not be called directly by the user (an error will always be thrown in that situation)
|}
|}


Line 144: Line 144:


{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
|        .getOptions      || Returns the current options for the given analysis method. Note that, if the user or an outside program has not modified the options, this will be returned as an empty matrix. In that case, the default function options are generally used
|        <tt>.getOptions</tt>       || Returns the current options for the given analysis method. Note that, if the user or an outside program has not modified the options, this will be returned as an empty matrix. In that case, the default function options are generally used
|-
|-
|        .setOptions(opts)      ||  Sets the current options for the given analysis method to the options structure passed as "opts". Note that some options are always overridden (e.g. the automatic generation of plots controlled in many functions through the .plots option is always ignored, even if set here to be "on")
|        <tt>.setOptions(opts)</tt>       ||  Sets the current options for the given analysis method to the options structure passed as "opts". Note that some options are always overridden (e.g. the automatic generation of plots controlled in many functions through the .plots option is always ignored, even if set here to be "on")
|}
|}




Line 155: Line 154:


{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
|        .getXblockId    || Returns Shared Data object to Calibration X-block
|        <tt>.getXblockId</tt>     || Returns Shared Data object to Calibration X-block
|-
|-
|        .getXblockValId  || Returns Shared Data object to Validation X-block  
|        <tt>.getXblockValId</tt> || Returns Shared Data object to Validation X-block  
|-
|-
|        .getYblockId    || Returns Shared Data object to Calibration Y-block
|        <tt>.getYblockId</tt>     || Returns Shared Data object to Calibration Y-block
|-
|-
|        .getYblockValId  || Returns Shared Data object to Validation Y-block  
|        <tt>.getYblockValId</tt> || Returns Shared Data object to Validation Y-block  
|-
|-
|        .getModelId      || Returns Shared Data object to Model
|        <tt>.getModelId</tt>     || Returns Shared Data object to Model
|-
|-
|        .getPredictionId || Returns Shared Data object to Predictions
|        <tt>.getPredictionId</tt> || Returns Shared Data object to Predictions
|}
|}


===Generic Object Access===
===Generic Object Access===


The generic .getObject method returns the object specified using a keyword string from Analysis GUI. This is the actual DataSet, model, or other object itself (not the shared data object) Valid keywords are internal and may be subject to chage. As a result this function is not recommended for most uses. Instead, the user is directed to the general .get____ commands described earlier in this document. This method does, however, provide access to objects which may not be accessible through the other .get____ methods.
The generic <tt>.getObject</tt> method returns the object specified using a keyword string from Analysis GUI. This is the actual DataSet, model, or other object itself (not the shared data object) Valid keywords are internal and may be subject to chage. As a result this function is not recommended for most uses. Instead, the user is directed to the general .get____ commands described earlier in this document. This method does, however, provide access to objects which may not be accessible through the other .get____ methods.


        .getObject('object_keyword')  -returns specified object from GUI  
{| border="1" cellspacing="0" cellpadding="5" style="margin-left:3em" |-
 
|        <tt>.getObject('object_keyword')</tt> || Returns specified object from GUI  
        .validmethods
|}

Revision as of 17:28, 17 March 2009

These are the methods defined for Analysis GUI when accessed through an EVRIGUI object. The following methods are called by referring to the given EVRIGUI object, followed by the method to be accessed. For example, given an EVRIGUI object in the workspace called "obj", the following call sets the Calibration X-block data to a given DataSet object called "data":

  obj.setXblock(data);

And this would retrieve the curently loaded Calibration X-block data:

  data = obj.getXblock;

The specific methods available are described in the sections below.

Loading and Retrieving Data and Models

These methods can be used to retrieve the specified data as a DataSet object:

.getXblock Returns Calibration X-block
.getXblockVal Returns Validation X-block
.getYblock Returns Calibration Y-block
.getYblockVal Returns Validation Y-block

These methods can be used to set (i.e. "load") the specified data. Note that all take a single parameter as input and this parameter must be a DataSet object. If the object is not a valid DataSet object, an error will be thrown.

.setXblock(dataset) Sets the Calibration X-block
.setXblockVal(dataset) Sets the Validation X-block
.setYblock(dataset) Sets the Calibration Y-block
.setYblockVal(dataset) Sets the Validation Y-block

Models can be set (loaded) or retrieved using the following two methods:

.setModel(model) Loads the given model into the Analysis GUI and switches the analysis method to that specified by the model. See the .apply method to apply the model to validation or test data.
.getModel Returns the currently calibrated model (if any)

Similarly, predictions can be loaded or retrieved using these methods:

.setPrediction(prediction)
.getPrediction

The "drop" method is a simplified loading method. Any valid data, model or prediction can be "dropped" on a valid Analysis EVRIGUI object and the GUI will attempt to load the given data into the most logical location based on the GUI's current status. Since this may be ambiguious to the script or program accessing the EVRIGUI object where the data will be loaded, it is often recommended that an explict .set____ command (see above) be used in most cases.

.drop(dataset) Attempt to load the specified DataSet into the most logical data location in the GUI
.drop(model) Attemp to load the specified model into the GUI (see also .setModel above)

Clearing of data, models, and predictions can be achieved using these methods. In all cases, if the given data or model is already cleared, no error occurrs.

.clearAll Clears all data, models, options, and predictions (return to initial startup state)
.clearBothCal Clears both X and Y Calibration Data
.clearBothVal Clears both X and Y Validation Data
.clearModel Clears current model
.clearXblock Clears Calibration X-block
.clearXblockVal Clears Validation X-block
.clearYblock Clears Calibration Y-block
.clearYblockVal Clears Validation Y-block


Model Creation and Method Settings

These methods allow creation of models and manipulation of the basic modeling parameters.

Creating Models

.calibrate Calculates or recalculates a model if the model is non-existant or out of date with the current settings, and/or applies the current model to the validation data, if loaded. This is equivalent to clicking on the "Calibrate" (gears) button on the Analysis GUI.
.apply Identical to the .calibrate method.

Analysis Methods and Settings

The .setMethod method changes the current analysis method (i.e. modeling method) of the Analysis GUI. This is any of the modeling techniques available in the Analysis GUI Analysis_Menu.

.setMethod('method') Sets the Analysis method to 'method' (e.g. 'pca', 'pls', 'parafac'). If the requested method is not the currently selected method, any existing model and prediction are cleared.

The .getComponents and .setComponents methods allow reviewing and changing of the number of components used in a factor-based model. Changing this property will cause the model to be cleared (requiring the use of the .calibrate method described above.) Note that some analysis methods (e.g. 'mlr' and 'cluster') do not use the Components settings and any values returned or set using these methods will be ignored.

.getComponents Returns the number of components currently selected.
.setComponents(n) Sets the number of components to use in a model. After this value is changed, the .calibrate method should be called to request an update of the model. Any value set here will not be reflected in the model until the after .calibrate method is called.

Preprocessing

The preprocessing methods allow getting and setting the current X and Y-block preprocessing methods. Currently, these set methods require complex preprocessing structure inputs and require knowledge and use of the Preprocess functionality in PLS_Toolbox.

.getXPreprocessing Return the current X-block preprocessing structure
.getYPreprocessing Return the current Y-block preprocessing structure
.setXPreprocessing(p) Sets the X-block preprocessing to the structure passed as p
.setYPreprocessing(p) Sets the Y-block preprocessing to the structure passed as p

Toolbar Buttons

These methods allow the automatic "pressing" of any of the Toolbar buttons. The .getButtons method returns a list of all the current toolbar buttons as a list of their "tags" (unique names). The .pressButton method can then be used with any one of these tags to simulate the clicking of the given button. By using these methods, an outside program can automatically bring up plots like scores and loadings plots, or start up "helper GUIs" like the PLSDA_Class_Groups_Interface.

.getButtons Returns a cell array of strings indicating the tags for each of the current toolbar buttons.
.pressButton(tag) Equivalent to the user clicking the toolbar button specified by the given tag.

Generic GUI Methods

These methods provide simple access to simple GUI actions such as controlling the visibility of the GUI and closing or creating the GUI

.getVisibility Returns 1 (one) if the GUI is currently visible (not hidden) and 0 (zero) otherwise
.setVisibility(vis) When input is 1 (one), the GUI is made visible. When input is 0 (zero), the GUI is hidden from view and from the task bar (when relevent). Note that some methods may make a hidden GUI visible again even if this value has been set to zero.
.close Forces the GUI to close
.create Used to create a new Analysis GUI - NOTE: This method is called automatically by the main EVRIGUI object and should not be called directly by the user (an error will always be thrown in that situation)

Advanced Methods

Analysis Method Options

These methods allows access and manipulation of the low-level "Analysis Method" options. These options are specific to each method and often change very fundamental aspects of how the modeling algorithms operate. It is possible to cause completely failure to model or get unexpected models using these options so their use is only recommended for expert users. The options being set here are equivalent to the options which are passed to the specific modeling functions (in Matlab: pls.m, pca.m, parafac.m) and the individual function for the currently selected method (see .setMethod above) should be consulted in setting these options.

.getOptions Returns the current options for the given analysis method. Note that, if the user or an outside program has not modified the options, this will be returned as an empty matrix. In that case, the default function options are generally used
.setOptions(opts) Sets the current options for the given analysis method to the options structure passed as "opts". Note that some options are always overridden (e.g. the automatic generation of plots controlled in many functions through the .plots option is always ignored, even if set here to be "on")


Shared Data Object Access

Within Matlab, these methods can be used to access a Shared Data object which gives direct, dynamic access to the data and model being used in the GUI. This allows an advanced user to view and/or modify the used data directly. Changes to the object are automatically acted on by the GUI (e.g. clearing of models and updating of plots when Data changes.) However, the use of Shared Data objects is for advanced users only and describing their use is beyond the scope of this document. See the Shared Data object documentation for more information on using Shared Data.

.getXblockId Returns Shared Data object to Calibration X-block
.getXblockValId Returns Shared Data object to Validation X-block
.getYblockId Returns Shared Data object to Calibration Y-block
.getYblockValId Returns Shared Data object to Validation Y-block
.getModelId Returns Shared Data object to Model
.getPredictionId Returns Shared Data object to Predictions

Generic Object Access

The generic .getObject method returns the object specified using a keyword string from Analysis GUI. This is the actual DataSet, model, or other object itself (not the shared data object) Valid keywords are internal and may be subject to chage. As a result this function is not recommended for most uses. Instead, the user is directed to the general .get____ commands described earlier in this document. This method does, however, provide access to objects which may not be accessible through the other .get____ methods.

.getObject('object_keyword') Returns specified object from GUI