[[TracNav(xQTL)]] = [wiki:xQTL xQTL workbench] - Setup a new runnable analysis = === Create a parameter set === Similar to creating a ''!DataSet'' definition, you can define a ''!ParameterSet''. You can configure this by clicking the ''Configure analysis'' tab in the main menu, then go to ''Parameters''. Again, the structure is as follows: * Analysis: the complete definition an an analysis, including data, parameters and function call. * ''which has one'' !ParameterSet: the wrapper for a set of parameters which can be used in this analysis. (can be shared across analyses) For example: 'Rqtl_params'. * ''which has multiple'' !ParameterNames: the 'types' of parameters used. For example: 'method' or 'stepsize'. * ''which has multiple'' !ParameterValues: the possible values which can be filled in for this parameter. For example: 'yes', 'no', 'Scanone', ScanMQM', '2', '5', '10'. === Add the analysis === * In the main menu, click ''Configure analysis'' and then ''Analyses''. * Click on ''Add new record''. Give the new analysis a name and a description. * Select which ''!DataSet'' and ''!ParameterSet'' you wish to use. Each can be reused individually. * Set the !TargetFunctionName. See below. * Click ''Add'' to save the new analysis. === Target function === * An analysis must have a !TargetFunctionName. This name is used to 'pick out' the R function to be executed when running this analysis. * The convention is that any of the defined scripts has a function named 'run_' + !TargetFunctionName. * For example: You specify !TargetFunctionName with value 'MYFUNCTION'. When the R api is loaded on execution, the framework will look for a function named 'run_MYFUNCTION' in the stack of sourced scripts. It does not matter if the scripts are part of the framework, or user defined. * In the example data, the !TargetFunctionName for Rqtl_analysis is 'QTL'. One of the sourced scripts, 'QTLjob.R', has a function named 'run_QTL'. So one is selected as the target to run. Notice the name of the script, 'QTLjob.R', seems a convention as well. While not strictly the case, naming your script thusly may prevent confusion or error.