User's Reference (SBPD)
Most up-to-date information
|
Project Representation - Overview
Project Syntax | Projects are described using an intuitive and user-friendly folder structure. Learn more here! |
---|---|
Project Representation | Projects contain models, experiment descriptions, and corresponding measurement data. They are the basis for the parameter estimation and tuning functionality. Furthermore, they allow a clear and useful organization of your modeling task. This section explains the internal storage format of SBPDprojects. |
MEX Simulation Function - Overview
MEX Simulation Function | The SBPD package creates and uses MEX simulation functions. These functions are compiled C-code versions of SBmodels linked together with the CVODES integrator and a MATLAB interface. In this way a simulation performance of stand-alone software applications is obtained, while still keeping MATLABs flexibility in handling the returned simulation data and the models. |
---|
Functions - Overview
Installation of SBPD | |
---|---|
installSBPD | Installation script for the SBPD package. |
helpSBPD | SBPD help function (requires internet connection). |
registerSBPD | Registration of SBPD (free of charge for non-commercial use). |
Project Creation and Handling | |
SBPDproject | Creating a new SBPDproject. |
SBPDgui | Graphical User Interface for parameter estimation on projects. |
SBPDstruct | Returns the internal data structure of an SBPDproject. |
SBPDexportproject | Export a project to a directory structure. |
SBPDsaveproject | Save a project in a MAT file (extension: .sbp). |
isSBPDproject | Checks if the given argument is an SBPDproject. |
SBPDinfo | Display information about the project. |
SBPDplotmeasurements | Visualize all measurements in the project. |
SBPDgetmodel | Get specified model from project. |
SBPDgetexperiment | Get specified experiment from project. |
SBPDgetmeasurement | Get specified measurement from project. |
SBPDcomparemeasurements | Compare measurements to model in project. |
SBPDupdatemodel | Update or add a model in a project. |
SBPDupdateexperiment | Update or add an experiment in a project. |
SBPDupdatemeasurement | Update or add a measurement in a project. |
SBPDexportestimation | Export estimation settings to a flat file. |
MEX Model Creation and Handling | |
SBPDmakeMEXmodel | Creating a MEX simulation function for a given SBmodel. |
makeTempMEXmodelSBPD | Creating a temporary MEX simulation function for a given SBmodel (in systems temp folder). |
mexcompileSBPD | Compilation of a given C model function to a MEX simulation function. |
makeparamvecSBPD | Creating full parameter vector and changing given parameters to given new values. |
makeinicondvectorSBPD | Creating full initial condition vector and changing given states to given new values. |
getparamindicesSBPD | Get parameter indices for given parameter names. |
getstateindicesSBPD | Get state indices for given state names. |
Modeling Functions | |
SBPDdirectoptss | Tune a model to a desired steady-state by adjusting the velocity parameters of the reaction kinetics. |
Kinetic Rate Laws | Several standard kinetic rate laws are inbuild in the SBPD package (listed at the bottom of this page). |
Simulation Functions | |
SBPDsimulate | Wrapper function for simulation of MEX models and SBmodels. |
SBPDsensitivity | Function for computing sensitivities of states, variables, and reactions in the model with respect to parameters. |
SBPDinsilicoexp | Performs an insilico experiment for given SBmodel and SBexperiment. Visualizes result or exports it to a SBmeasurement representation. Also Excel or CSV measurement files can directly be generated. |
SBPDinsilicoexpproj | Performs an insilico experiment directly on a model and experiment within a project. Per default a CSV measurement files is created. |
Parameter Identifiability Functions | |
SBPDidentifiability | Function for determining parameter identifiability based on correlation analysis of sensitivity trajectories. Directly applicable to SBPDprojects. |
SBPDparametercorrelation | Function for determining parameter correlations based on parametric sensitivities. |
Model Reduction Functions (Require the Symbolic Toolbox) | |
SBPDreducerateexpressions | Application of the reaction rate expression reduction to a model in a project. |
Parameter Estimation Functions | |
SBPDmanualtuning | Graphical user interface allowing to manually tune the models present in a project. |
SBPDmodeltuning | Graphical user interface allowing to manually tune a model to measurements (w/o the need of a project). |
SBPDparameterestimation | Allows to estimate parameters for the models in a project, using the experiments and measurements that are defined in the project. |
getparamictextSBPD | Auxiliary function to easily construct the text that is necessary to define the parameters and initial conditions to estimate + their upper and lower bounds. |
createrunestimationscriptSBPD | Auxiliary function creating a template m-script for running parameter estimations on a given project. |
SBPDanalyzeresiduals | Determines and analyzes the residuals for a given project. |
SBPDparameterfitanalysis | Generates data to analyze the obtained parameter fit with respect to correlations, local minima, etc. |
SBPDfahist | Plots histograms for the parameter values that have been estimated using the SBPDparameterfitanalysis function. |
SBPDfaclustering | Performs hierarchical clustering based on Euclidean distance of the parameter sets estimated using the SBPDparameterfitanalysis function. |
SBPDfaboxplot | Plots a box-and-whisker diagram for the estimation data, obtained using the SBPDparameterfitanalysis function. |
SBPDfacorr | Determines the correlation matrix for the parameter sets determined with the SBPDparameterfitanalysis function. |
SBPDfasigncorr | Determines a matrix of p-values for testing the hypothesis of no significant correlation based on the results generated by SBPDparameterfitanalysis. |
SBPDfadetcorr | Plots detailed pairwise correlations between parameters. |
cutoffdataSBPD | Used to select a cut-off threshold for the estimation data collected during the fit analysis. |
Symbolic Math Functions (require the Symbolic Toolbox) | |
SBPDsymjacobian | Determines the Jacobian of an SBmodel symbolically (requires the symbolic toolbox). |
Parameter Estimation Benchmark Projects | |
Benchmarks | The SBPD package includes several SBPDprojects that can be used as benchmarks for the evaluation of parameter estimation methods. |
Project Syntax - Full Description
The syntax of projects, as it is used by the SBTOOLBOX2 and SBPD, is best described by well documented examples.
For this purpose there are plenty of examples included in the SPBD package. Below you will find to almost each function description an executable
example. Additionally there is an introductory tutorial available that can be found here:
Project Representation - Full Description
The SBPDproject object collects models, experiment descriptions, and measurement data for modeling projects.
The internal data structure of an SBPDproject object has the following fields:
name | Name of the project (string) |
notes | Notes about the project (string) |
models | Cell-array with SBmodels as entries (cell-array) |
modeltypes | Vector with 0 or 1 entries, determining the type of the present models: 0=TEXT model, 1=TEXTBC model (vector) |
experiments.name | Name of the experiment (string) |
experiments.notes | Notes about this experiment (string) |
experiments.experiment | =0: SBexperiment object (SBexperiment) |
experiments.measurements | Cell-array with SBmeasurement objects corresponding to measurement data for the current experiment (cell-array) |
estimations | Not used yet (empty) |
Several models can be present in a project. These can, for example, represent different model hypotheses which then are evaluated against the experiments and measurement data that is available in the project. Several experiments can be present. Each experiment can have one or more measurement data object assigned to it.
MEX Simulation Function - Full Description
MEX simulation functions, created by the SBPD package, have the following calling syntax and functionality.
'filename' relates to the name of a MEX simulation function.
output = filename(): returns a vector with the models initial conditions
output = filename('states'): returns a cell array with the models state names
output = filename('parameters'): returns a cell array with the models parameter names
output = filename('parametervalues'): a returns a vector with the models parameter values
The following calls to a MEX simulation function perform simulation of the corresponding model and return the obtained data as a MATLAB structure:
output = filename(timevector)
output = filename(timevector, initialconditions)
output = filename(timevector, initialconditions, parametervector)
output = filename(timevector, initialconditions, parametervector, options)
timevector: Vector of time instants for which simulation data is
to be returned
initialconditions: Vector of initial conditions
parametervector: Vector containing a full set of parameter
values that are to be used instead of the nominal parameters,
stored in the model
options: Structure with options for the integrator. The available fields of this structure and their
possible settings are described below. If a certain field is not present in the options structure, default values
are used instead for the corresponding setting.
options.abstol: Absolute tolerance (default: 1e-6)
options.reltol: Relative tolerance (default: 1e-6)
options.minstep: Minimal integrator step size (default: 0)
options.maxstep: Maximal integrator step size (default: inf)
options.maxnumsteps: maximum number of steps to be
taken by the solver in its attempt to reach the next
output time (default: 100000)
options.xdotcalc: =0: integration is done, =1: the output argument consists of the RHS of the ODEs evaluated
at the given state and parameter values. Time information is neglected and it is assumed that time=0.
Event handling: If events are present in the model and they are fired during simulation the output data structure contains information about the time instants at which the events fired. For each such time instant it is also specified which event has fired (important in the case of more than one event in the model).
If several events are fired at the same time the event assignments are executed based on the same statevector, present at the time at which the events happened.
Important: If events are present in the model do not use to large timesteps in the timevector.
Functions - Full Description and Examples
Installation of SBPD
installSBPD | |
---|---|
Usage |
Installation function for the SBPD package. Prior to running it you should edit its contents to match your system. Standard calling syntax: >> installSBPD This function can be called with the optional syntax: >> installSBPD('quick') This adds the SBPD and all subdirectories to the MATLAB path. If you are in a computer environment in which MATLAB is not able to store the path settings you can run this quick installation function each time when starting MATLAB. Note that the quick installation does not build the necessary libraries. This is only done by calling installSBPD without the optional argument. Use this the first time when installing a new version of the package. |
Examples |
>> installSBPD
Clears the workspace and the desktop, closes all open figures, and sets the paths needed for the package. |
helpSBPD | |
---|---|
Usage |
helpSBPD: SBPD help function displaying the web based user reference information using the MATLAB web browser. To be able to use this function you need to have an active internet connection. USAGE: ====== helpSBPD helpSBPD 'helpSBPD functionname' EXAMPLES: ========= helpSBPD helpSBPD SBPDmanualtuning |
registerSBPD | |
---|---|
Usage |
The unregistered version of SBPD is valid for 30 days after installation. If you want to use it further, please register it. For non-commercial use it is, of course, free of charge. Registration can be done by running this script. USAGE: ====== registerSBPD() allows you to obtain a registration key registerSBPD('put the registration key here') finalizes the registration |
Project Creation and Handling
output = SBPDproject(input) | |
---|---|
Usage |
This function creates an SBPDproject object containing models, experiments,
measurements, and additional information.
input=[] Invoking SBPDproject without arguments returns an empty SBPDproject. Otherwise SBPDprojects can be created from a data structure that corresponds to the internal project data structure, described above, from a previously defined project projectin, from an MAT file file.sbp in which the project has been stored. Furthermore, a project can be read in from its folder structure, described above. The output consists of an SBPDproject object. |
Examples |
An example project is available in the SBPD/_EXAMPLES/Projects folder. Change into this folder, have a look at the
project folder Example Project. This project can be imported to an SBPDproject by typing:
>> project = SBPDproject('Example Project') Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = SBPDgui(input) | |
---|---|
Usage |
SBPDgui: Graphical user-interface for running parameter estimation tasks. More information you find in the "Help" menu of this GUI. |
Examples | Just run SBPDgui from the MATLAB command line and have a look at the documentation in the "Help" menu. |
output = SBPDstruct(input) | |
---|---|
Usage |
This function returns the internal data structure of an SBPDproject. input=[project] project is the SBPDproject for which to return the data structure. output=[structure] The output consists of the internal data structure of project, defined above. Note that instead of SBPDstruct also the MATLAB struct command can be used, resulting in exactly the same output. |
Examples |
First run the example from SBPDproject above. Then type: >> structure = SBPDstruct(project) This returns the internal data structure of the SBPDproject. Please have also a look at the runExample.m script in which many of the examples here are collected. |
SBPDexportproject(input) | |
---|---|
Usage |
Exports a given project to a projectfolder.
input=[project] project: SBPDproject object to export foldername: Name of the project folder to export to (default: foldername derived from project name) Note that even though Excel and CSV measurement data files are allowed in projects, during export only CSV files are used. These are much faster to import and a lot more portable accross platforms. |
Examples |
First run the example from SBPDproject above. Then type: >> SBPDexportproject(project,'exported project')
Please have also a look at the runExample.m script in which many of the examples here are collected. |
SBPDsaveproject(input) | |
---|---|
Usage |
Save an SBPDproject object as a binary MATLAB MAT file
with .sbp as extension. The name of the project object variable is the same
as the name of the file.
input=[project] project: SBPDproject object to export filename: Name of the project folder to export to (default: filename derived from project name) |
Examples |
First run the example from SBPDproject above. Then type: >> SBPDsaveproject(project,'project file')
Note that the space character in the filename disappears. The saved MAT file can be loaded by: project = SBPDproject('projectfile.sbp') Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = isSBPDproject(input) | |
---|---|
Usage | This function has a single input argument and simply checks if the input argument is an SBPDproject. If it is an SBPDproject 1 is returned. Otherwise 0. |
Examples |
First run the example from SBPDproject above. Then type: >> isSBPDproject(project)
>> isSBPDproject(523523)
Please have also a look at the runExample.m script in which many of the examples here are collected. |
SBPDinfo(input) | |
---|---|
Usage |
Quick dump of contents of an SBPDproject. Mainly used to check
if everything is correct and to determine the model, experiment, and
measurement indices.
input=[project] project: SBPDproject to get the information for. |
Examples |
First run the example from SBPDproject above. Then type: >> SBPDinfo(project)
Please have also a look at the runExample.m script in which many of the examples here are collected. |
SBPDplotmeasurements(input) | |
---|---|
Usage |
SBPDplotmeasurements: Plots all measurements in the given SBPDproject using SBplot. Very useful to get a quick overview over measurement results. The function opens a simple GUI where you in the upper left corner can select the experiment and measurement to display. If error bound information is available in the measurement data this is displayed. USAGE: ====== [] = SBPDplotmeasurements(project) [] = SBPDplotmeasurements(project,experimentindices) project: SBPDproject object experimentindices: vector with indices of the experiments for which to plot the measurement data. Per default the measurement data of all experiments is plotted. |
Examples |
First run the example from SBPDproject above. Then type: >> SBPDplotmeasurements(project)
Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = SBPDgetmodel(input) | |
---|---|
Usage |
Extract model(s) from the given project.
input=[project]
project: SBPDproject from which to get (a) model(s). If no model indices are specified, all the models are returned in a cell-array. If only a single model is returned the model is not stored in a cell-array. If a modelindices argument is specified the corresponding model(s) will be returned. |
Examples |
First run the example from SBPDproject above. Then type:
>> allmodels = SBPDgetmodel(project) Note that the location of a model in the folder does not necessarily determine the model index. The index of the model is easiest determined using the SBPDinfo function. Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = SBPDgetexperiment(input) | |
---|---|
Usage |
Extract experiment(s) from the given project.
input=[project]
project: SBPDproject from which to get (an) experiment(s). If no experiment indices are specified, all the experiments are returned in a cell-array. If only a single experiment is returned the experiment is not stored in a cell-array. If an experimentindices argument is specified the corresponding experiment(s) will be returned. |
Examples |
First run the example from SBPDproject above. Then type:
>> allexperiments = SBPDgetexperiment(project) Note that the location of an experiment in the folder does not necessarily determine the experiment index. The index of the experiment is easiest determined using the SBPDinfo function. Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = SBPDgetmeasurement(input) | |
---|---|
Usage |
Extract measurements(s) from the given project and experiment.
input=[project,experimentindex]
project: SBPDproject from which to get (an) experiment(s). If no measurement indices are specified, all the measurements for this experiment are returned in a cell-array. If only a single measurement is returned the measurement is not stored in a cell-array. If an measurementindices argument is specified the corresponding measurement(s) will be returned. |
Examples |
First run the example from SBPDproject above. Then type: >> measurements_exp5 = SBPDgetmeasurement(project,5) Note that the location of a measurement in the experiment folder does not necessarily determine the measurement index. The index of the measurement is easiest determined using the SBPDinfo function. Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = SBPDcomparemeasurements(input) | |
---|---|
Usage |
SBPDcomparemeasurements: Simulates the experiments in the project for the models in the project and compares the simulated results to the measurements. USAGE: ====== []/[plotdata] = SBPDcomparemeasurements(project,modelindices) []/[plotdata] = SBPDcomparemeasurements(project,modelindices, experimentindices) []/[plotdata] = SBPDcomparemeasurements(project,modelindices, experimentindices,OPTIONS) project: SBPDproject object modelindices: indices of the models in the project to use for comparison (scalar or vector) experimentindices: vector with indices of the experiments to do the comparison for OPTIONS: structure with integrator options. OPTIONS.abstol: abs tolerance OPTIONS.reltol: rel tolerance OPTIONS.minstep: min step-size of integrator OPTIONS.maxstep: max step-size of integrator OPTIONS.maxnumsteps: maximum number of steps to be taken by the solver in its attempt to reach the next output time DEFAULT VALUES: =============== modelindices: comparison carried out for all models in the project if modelindices is not given experimentindices: all experiments in the project OPTIONS.abstol: 1e-6 OPTIONS.reltol: 1e-6 OPTIONS.minstep: 0 OPTIONS.maxstep: inf OPTIONS.maxnumsteps: 500 Output Arguments: ================= If no output argument is given, the function plots the data using SBPDplot. Otherwise a datastructure (plotdata) is given back that can be used as input argument for SBPDplot. |
Examples |
First run the example from SBPDproject above. Then type: >> SBPDcomparemeasurements(project)
>> plotdata = SBPDcomparemeasurements(project,2) Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = SBPDupdatemodel(input) | |
---|---|
Usage |
Update or add a model in a project.
input=[project,model]
project: SBPDproject in which to update or add a model. The output of the function is the resulting project with updated or added model. |
Examples |
First run the example from SBPDproject above. Then type:
>> firstmodel = SBPDgetmodel(project,1) This adds the first model in the project as last (third) one. Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = SBPDupdateexperiment(input) | |
---|---|
Usage |
Update or add an experiment in a project.
input=[project,experiment]
project: SBPDproject in which to update or add an experiment. The output of the function is the resulting project with updated or added experiment. |
Examples |
First run the example from SBPDproject above. Then type:
>> firstexperiment = SBPDgetexperiment(project,1) This adds the first experiment in the project as last (third) one. |
output = SBPDupdatemeasurement(input) | |
---|---|
Usage |
Update or add a measurement in a project.
input=[project,experimentindex,measurement]
project: SBPDproject in which to update or add an experiment. The output of the function is the resulting project with updated or added measurement. |
Examples |
First run the example from SBPDproject above. Then type:
>> measurement = SBPDgetmeasurement(project,4,1) This adds the first measurement of the fourth experiment as last (second) to the same experiment. |
output = SBPDexportestimation(input) | |
---|---|
Usage |
SBPDexportestimation: Exports the selected estimation settings in an SBPDproject into a flat text file. USAGE: ====== SBPDexportestimation(project,estimationindex,filename) project: SBPDproject estimationindex: the index of the estimation to export filename: name of the file to write the estimation to (*.est) |
Examples |
MEX Model Creation and Handling
SBPDmakeMEXmodel(input) | |
---|---|
Usage |
This function converts an SBmodel to an executable C-code MEX model and links it with the CVODE integrator from SUNDIALS. USAGE: ====== [] = SBPDmakeMEXmodel(model) [] = SBPDmakeMEXmodel(model, MEXfile) [] = SBPDmakeMEXmodel(model, MEXfile, doNOTcompileFlag) model: SBmodel MEXfile: the name of the MEX file (default: models name) doNOTcompileFlag: =0 (default): create executable MEX simulation file =1: only create the source code but do not compile |
Examples |
As example we create a MEX simulation file for the Novak Tyson Cell-Cycle model.
Please change into the SBPD/_EXAMPLES folder and type:
>> model = SBmodel('NovakTysonModel.txt'); The last command creates a MEX file with the name 'novaktysonsim'. To learn more about the input and output arguments please read the section "MEX Simulation Function - Full Description" above. Here we are simply running a simple simulation over 400 time units and plot the results.
>> simdata = novaktysonsim([0:1:400]) The SBPDmakeMEXmodel function can also be used to create the C-code for the model without compiling it to a MEX simulation function:
>> model = SBmodel('NovakTysonModel.txt'); The last command creates a .c and a .h file. You can look at these files to get an idea about how you could write your own C-code models (if so wanted). When specifying a model as .c and .h files you can use the command mexcompileSBPD to create a MEX simulation function for this model. |
makeTempMEXmodelSBPD(input) | |
---|---|
Usage |
This function can be used to create a temporary MEX simulation function. Temporary means that it is created in the systems temp directory and that no name can be chosen, but that a unique temporary filename is automatically chosen and returned. USAGE: ====== [MEXmodel, MEXmodelfullpath] = makeTempMEXmodelSBPD(model) model: SBmodel to convert to a temporary MEX simulation function OUTPUT ARGUMENTS: ================= MEXmodel: name of the MEX simulation function (filename without .mex extension) MEXmodelfullpath: complete path to the created MEX simulation function (including mex extension). This information can be used to delete the function as soon as it is not needed anymore. |
Examples | This function should be self explaining and does not need any example. |
mexcompileSBPD(input) | |
---|---|
Usage |
Compiles an SBmodel that has been converted to a mexfile.h and mexfile.c and links it with the CVODE integrator from the SUNDIALS suite (http://www.llnl.gov/CASC/sundials/). USAGE: ====== [] = mexcompileSBPD(mexfile) mexfile: Basename of the model files (mexfile.c and mexfile.h) |
Examples |
First we create a C-code model. For this change into the SBPD/_EXAMPLES folder and type:
>> model = SBmodel('eventExample.txt'); Have a look at the created Ccodemodel.c and Ccodemodel.h files. The compilation to an executable MEX simulation model is done by: >> mexcompileSBPD('Ccodemodel') The model can now be simulated by typing:
>> time = [0:1:300]; |
output = makeparamvecSBPD(input) | |
---|---|
Usage |
The mex simulation functions take a full parameter value vector as an input. In order to construct such a vector while changing some but possibly not all parameter values this function can be used. USAGE: ====== [paramvector] = makeparamvecSBPD(model,parameters,parametervalues) model: SBmodel, ODE file model, or MEX file model parameters: Cell-array of parameter names for which to change the parametervalues parametervalues: Vector with the corresponding values for the parameters OUTPUT: ======= paramvector: Constructed initial condition vector |
Examples |
Please change into the SBPD/_EXAMPLES folder. We first create a MEX simulation function and simulate it using the default parameters.
>> model = SBmodel('Glycolysis.txt'); Now we want to change the parameter Glcx0 to 10 and simulate again. This does not require rebuilding the MEX simulation function, but instead you can type:
>> parametervector = makeparamvecSBPD('test',{'Glcx0'},[10]); You can also change several parameters at a time by specifying several names in the cell array and corresponding values in the vector. |
output = makeinicondvectorSBPD(input) | |
---|---|
Usage |
The mex simulation functions take a full initial condition vector as an input. In order to construct such a vector while changing some but possibly not all IC values this function can be used. USAGE: ====== [icvector] = makeinicondvectorSBPD(model,states,statevalues) model: SBmodel, ODE file model, or MEX file model states: Cell-array of state names for which to change the ICs statevalues: Vector with the corresponding values for the ICs of the states. OUTPUT: ======= icvector: Constructed initial condition vector |
Examples | This function should be self explaining and does not need any example. |
output = getparamindicesSBPD(input) | |
---|---|
Usage |
Determines a vector of model parameter indices, the order corresponding to the parameters argument. USAGE: ====== [output] = getparamindicesSBPD(model,parameters) model: SBmodel, ODE file model, or MEX simulation model parameters: Cell-array of parameter names OUTPUT: ======= output: Vector of parameter indices |
Examples | This function should be self explaining and does not need any example. |
output = getstateindicesSBPD(input) | |
---|---|
Usage |
Determines a vector of model state indices, the order corresponding to the states argument. USAGE: ====== [output] = getstateindicesSBPD(model,states) model: SBmodel, ODE file model, or MEX simulation model states: Cell-array of state names OUTPUT: ======= output: Vector of state indices |
Examples | This function should be self explaining and does not need any example. |
Modeling Functions
output = SBPDdirectoptss(input) | |
---|---|
Usage |
This function applies the direct optimization method to
impose a desired steady-state (in terms of state concentrations and
reaction rates) on the given model by adjusting the velocity rate
parameters of the reactions. Due to the latter, the function is only
applicable to models whos ODE right hand side are described by reactions
and stoichiometric coefficients. The adjustment of the velocity
parameters is done by multiplying determined numerical factors to the
rate expressions. Example:
R = k1*A - k2*B is changed to: R = factor*(k1*A-k2*B)
REFERENCE: input=[model, ssStates, ssReactions]
model: SBmodel to optimize The output argument is the optimized model. |
Examples | This function should be self explaining and does not need any example. Just try it and you will see :-) |
Simulation Functions
output = SBPDsimulate(input) | |
---|---|
Usage |
Function allowing to simulate SBmodels and MEX simulation functions. SBmodels are first converted to temporary MEX simulation functions, so that a conversion overhead is present. USAGE: ====== output = SBPDsimulate(model) output = SBPDsimulate(model, time) output = SBPDsimulate(model, time, ICs) output = SBPDsimulate(model, time, ICs, paramNames, paramValues) output = SBPDsimulate(model, time, ICs, paramNames, paramValues, ... OPTIONS) model: Name of MEX simulation function OR SBmodel time: Either simulation end time (scalar) or simulation time vector. ICs: Vector of initial conditions. paramNames: Cell-array with the names of the parameters for which the values are to be changed to given values. paramValues: Vector of parameter values for the given parameters. OPTIONS: structure with integrator options. OPTIONS.abstol: abs tolerance OPTIONS.reltol: rel tolerance OPTIONS.minstep: min step-size of integrator OPTIONS.maxstep: max step-size of integrator OPTIONS.maxnumsteps: maximum number of steps to be taken by the solver in its attempt to reach the next output time DEFAULT VALUES: =============== time: 20 ICs: values stored in the model paramNames: {} do not change any parameters paramValues: [] OPTIONS.abstol: 1e-6 OPTIONS.reltol: 1e-6 OPTIONS.minstep: 0 OPTIONS.maxstep: inf OPTIONS.maxnumsteps: 100000 Output Arguments: ================= If no output arguments are given, the result of the simulation is plotted after finished simulation. The output of SBPDsimulate is realized as a structure: output.time: vector with time instants for the results output.states: cell-array with state names output.statevalues: matrix with state values. Each row corresponds to one time instant output.variables: cell-array with variable names output.variablevalues: matrix with variable values. Each row corresponds to one time instant output.reactions: cell-array with reaction names output.reactionvalues: matrix with reaction values. Each row corresponds to one time instant In the case events are present in the model the following fields are present in the output structure additionally: output.events: cell-arra with the names of the events output.eventtimes: vector with time instants at which events happened output.eventflags: matrix of dimension: 'number of events' x 'number of event time instants'. Each column in this matrix correponds to one timeinstant in the output.eventtimes vector. The row numbers correspond to the numbers of the events. A "1" element in the matrix indicates that the corresponding event has happened at the corresponding time. A "0" element tells you that the event has not been fired at the corresponding instant. |
Examples |
Please change into the SBPD/_EXAMPLES folder and type:
>> model = SBmodel('eventExample.txt'); Please have a look at the simdata output of the simulation. The structure contains also information about the times at which events in the model fired and in the case that several events are present which event fired at what time. If you want to redo a simulation for a different parameter setting you do not need to edit the SBmodel and create the MEX simulation function again. You can instead specify the name of the parameters you want to change and the new values:
>> time = 40; |
output = SBPDsensitivity(input) | |
---|---|
Usage |
This is a wrapper function for MEX simulation functions for forward sensitivity analysis (parameters and initialconditions). The function can be used on SBmodels and MEX simulation functions. USAGE: ====== output = SBPDsensitivity(model, timevector) output = SBPDsensitivity(model, timevector, parameternames) output = SBPDsensitivity(model, timevector, parameternames, ... statenames) output = SBPDsensitivity(model, timevector, parameternames, ... statenames, options) output = SBPDsensitivity(model, timevector, parameternames, ... statenames, options, nomparamvalues, ... nomicvalues) model: SBmodel or MEX simulation function timevector: a vector of time steps at which to return the simulation data parameternames: cell-array containing the names of the parameters for which to calculate the sensitivities. (default: all parameters in the model) statenames: cell-array containing the names of the states for whose initial conditions to calculate the sensitivities. (default: no states) options: structure with options for the integrator and sensitivity calculation options.pertfactor: relative perturbation if parameter not equal to zero. Otherwise absolute peturbation options.abstol: absolute tolerance options.reltol: relative tolerance options.minstep: minimal integrator step size options.maxstep: maximal integrator step size options.maxnumsteps: maximum number of steps to be taken by the solver in its attempt to reach the next output time nomparamvalues: vector of nominal parameter values nomicvalues: vector of nominal initial condition values DEFAULT VALUES: =============== parameternames: (all parameters) statenames: (no states) options.pertfactor: 1e-5 options.abstol: 1e-6 options.reltol: 1e-6 options.minstep: 0 options.maxstep: inf options.maxnumsteps: 100000 nomparamvalues: parameter values stored in the model nomicvalues: initial condition values stored in the model Output Arguments: ================= If no output arguments are given, the result of the simulation is plotted after finished simulation (only states, variables, reactions). The sensitivities are not plotted! The output of SBPDsensitivity is realized as a structure: output.time: vector with time instants for the results output.states: cell-array with state names output.statevalues: matrix with state values. Each row corresponds to one time instant The following fields are only present in case options.simdata = 'all' is defined. output.variables: cell-array with variable names output.variablevalues: matrix with variable values. Each row corresponds to one time instant output.reactions: cell-array with reaction names output.reactionvalues: matrix with reaction values. Each row corresponds to one time instant In the case events are present in the model the following fields are present in the output structure additionally: output.events: cell-arra with the names of the events output.eventtimes: vector with time instants at which events happened output.eventflags: matrix of dimension: 'number of events' x 'number of event time instants'. Each column in this matrix correponds to one timeinstant in the output.eventtimes vector. The row numbers correspond to the numbers of the events. A "1" element in the matrix indicates that the corresponding event has happened at the corresponding time. A "0" element tells you that the event has not been fired at the corresponding instant. Sensitivity trajectoried are returned as follows: output.sensparameters: cell-array containing the names of the parameters for which sensitivities are determined output.paramtrajectories.states: cell-array containing one entry for each parameter in output.sensparameters (same order). Each entry consists of a matrix, where the columns correspond to state sensitivities wrt to the parameter and the rows correspond to the different integration time points, given in output.time. output.paramtrajectories.variables: same as above just for variables output.paramtrajectories.reactions: same as above just for reactions output.sensicstates: cell-array containing the names of the states for which initial conditions sensitivities are determined output.ictrajectories.states: cell-array containing one entry for each state in output.sensicstates (same order). Each entry consists of a matrix, where the columns correspond to state sensitivities wrt to the initial conditions and the rows correspond to the different integration time points, given in output.time. output.ictrajectories.variables: same as above just for variables output.ictrajectories.reactions: same as above just for reactions |
Examples |
Please change into the SBPD/_EXAMPLES folder and type:
>> model = SBmodel('NovakTysonModel.txt'); Please have a look at the senssimdata output of the simulation. The field 'senssimdata.sensparameters' contains a cell array with the names of the parameters for which the sensitivities have been computed. The field 'sensimdata.paramtrajectories' is a structure with three fields, containing the state, variable, and reaction sensitivities. Each element in these fields contains the sensitivity trajectories for the correponding parameter in the 'senssimdata.sensparameters' array (same order). (Same for initial condition sensitivities in the fields: 'senssimdata.sensicstates' and 'sensimdata.ictrajectories'). |
output = SBPDinsilicoexp(input) | |
---|---|
Usage |
SBPDinsilicoexp runs an in-silico experiment. Simulated data can be returned in the SBmeasurement format, plotted, or written in a CSV or Excel measurement file (the latter only under Windows). USAGE: ====== [] = SBPDinsilicoexp(model,experiment,timevector [,OPTIONS]) [] = SBPDinsilicoexp(model,experiment,timevector,measurements [,OPTIONS]) [] = SBPDinsilicoexp(model,experiment,timevector,measurements, filetypeFlag [,OPTIONS]) [] = SBPDinsilicoexp(model,experiment,timevector,measurements, filetypeFlag,filename [,OPTIONS]) [output] = SBPDinsilicoexp(model,experiment,timevector [,OPTIONS]) [output] = SBPDinsilicoexp(model,experiment,timevector, measurements [,OPTIONS]) model: SBmodel to perform the insilico experiment on experiment: SBexperiment object to apply timevector: Timevector to be used for simulation measurements: cell-array with the names of the components to measure (states, variables, reactions) filetypeFlag: 0=plot results, 1=CSV measurement file, 2=Excel measurement file filename: Name of the measurement file (or of the measurement) to generate OPTIONS: structure with integrator options. OPTIONS.abstol: abs tolerance OPTIONS.reltol: rel tolerance OPTIONS.minstep: min step-size of integrator OPTIONS.maxstep: max step-size of integrator OPTIONS.maxnumsteps: maximum number of steps to be taken by the solver in its attempt to reach the next output time DEFAULT VALUES: =============== measurements: all states are measured filetypeFlag: 0 (plot the results). If output argument is specified, the setting of the filetype flag is ignored filename: combination of model and experiment name OPTIONS.abstol: 1e-6 OPTIONS.reltol: 1e-6 OPTIONS.minstep: 0 OPTIONS.maxstep: inf OPTIONS.maxnumsteps: 500 Output Arguments: ================= output: An SBmeasurement object with the resulting data |
Examples |
First run the example from SBPDproject above. Then type:
>> model = SBPDgetmodel(project,2)
>> SBPDinsilicoexp(model,experiment,[0:5:120],{'Th','ThMP','ThDP'},1) Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = SBPDinsilicoexpproj(input) | |
---|---|
Usage |
SBPDinsilicoexpproj runs an in-silico experiment directly on a model and experiment within a project. Simulated data can be returned in the SBmeasurement format, plotted, or written in a CSV or Excel measurement file (the latter only under Windows). Note: In contrast to SBPDinsilicoexp, this function per default exports the insilico generated data to a CSV measurement file. USAGE: ====== [] = SBPDinsilicoexpproj(project,modelindex,experimentindex, timevector [,OPTIONS]) [] = SBPDinsilicoexpproj(project,modelindex,experimentindex, timevector,measurements [,OPTIONS]) [] = SBPDinsilicoexpproj(project,modelindex,experimentindex, timevector,measurements,filetypeFlag [,OPTIONS]) [] = SBPDinsilicoexpproj(project,modelindex,experimentindex, timevector,measurements,filetypeFlag,filename [,OPTIONS]) [output] = SBPDinsilicoexpproj(project,modelindex,e xperimentindex,timevector [,OPTIONS]) [output] = SBPDinsilicoexpproj(project,modelindex, experimentindex,timevector,measurements [,OPTIONS]) project: SBPDproject to perform the experiment on modelindex: Index of the model in the project to be used experimentindex: Index of the experiment to be used (scalar only) timevector: Timevector to be used for simulation measurements: cell-array with the names of the components to measure (states, variables, reactions) filetypeFlag: 0=plot results, 1=CSV measurement file, 2=Excel measurement file filename: Name of the measurement file (or of the measurement) to generate OPTIONS: structure with integrator options. OPTIONS.abstol: abs tolerance OPTIONS.reltol: rel tolerance OPTIONS.minstep: min step-size of integrator OPTIONS.maxstep: max step-size of integrator OPTIONS.maxnumsteps: maximum number of steps to be taken by the solver in its attempt to reach the next output time DEFAULT VALUES: =============== measurements: all states are measured filetypeFlag: 1 (export to CSV file). If output argument is specified, the setting of the filetype flag is ignored filename: combination of model and experiment name OPTIONS.abstol: 1e-6 OPTIONS.reltol: 1e-6 OPTIONS.minstep: 0 OPTIONS.maxstep: inf OPTIONS.maxnumsteps: 500 Output Arguments: ================= output: An SBmeasurement object with the resulting data |
Examples |
First run the example from SBPDproject above. Then type:
>> SBPDinsilicoexpproj(project,2,7,[0:5:120]) Please have also a look at the runExample.m script in which many of the examples here are collected. |
Parameter Identifiability Functions
output = SBPDidentifiability(input) | |
---|---|
Usage |
SBPDidentifiability: Performs parameter identifiability analysis for a given project, based on SBPDsensitivity and SBPDparametercorrelation. The model and the experiments to consider can be chosen. Timepoints to take into account are determined from the measurement data that are available in the project. More information can be found in the help text to the SBPDparametercorrelation function. USAGE: ====== output = SBPDidentifiability(project, parameters) output = SBPDidentifiability(project, parameters, options) project: SBPDproject to analyze parameters: Cell-array of parameternames for which to determine the identifiability options: structure with the following fields: options.pValueFlag: =0: plot correlations, =1: plot p-values options.pValueCutOff: pValue for which to make a decision if correlated or not. (For plotting purposes the pValues below the threshold are set to zero) options.modelindex: Index of the model in the project to consider options.experimentindices: Vector of indices indicating the experiments to consider options.integratoroptions.abstol: abs tolerance options.integratoroptions.reltol: rel tolerance options.integratoroptions.minstep: min step-size of integrator options.integratoroptions.maxstep: max step-size of integrator options.integratoroptions.maxnumsteps: maximum number of steps to be taken by the solver in its attempt to reach the next output time |
Examples |
First run the example from SBPDproject above. Then type:
>> modelindex = 1; Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = SBPDparametercorrelation(input) | |
---|---|
Usage |
Function for determining parameter correlations
based on parametric sensitivities. The result can be used to check
a priori identifiability of parameters for given experimental settings.
Several experiments can be combined. Measured states AND measured
variables can be considered.
The method is based on: This function determines correlations between parameters. The inputs to this function are parameter sensitivity trajectories returned from the SBAOsenssim function, reflecting the sensitivity of the states and variables to parameter changes during user-defined experiments. From this information a parameter correlation matrix is determined. Off-diagonal elements in this matrix that are close to +1 or -1 indicate problems in identifying the corresponding parameters independently. Elements that are close to zero indicate that there is no important correlation between the corresponding elements and thus these parameters should be identifiable independently without problem (for the defined experiments). A priori identifiability: The identifiability is a local property. For different sets of parameter values different correlation matrices can be obtained. Since unknown parameters are, by definition, unknown this might lead to problems interpreting the results. However, one possible approach is to run the identifiability analysis for different sets of parameter values, randomly chosen in certain intervals around a best initial guess.
input = [senssimdata,sensparameters,measuredcomponents]
senssimdata: Cell-array with output arguments from the sensitivity analysis function
SBPDsensitivity. The simulation should reflect (wrt, e.g., sampling
time, stimuli) the experiments that are planned to obtain
measurement data for the parameter estimation.
When called without an output argument the parameter correlation matrix
is graphically represented. For easier graphical interpretation the
absolute values of the matrix elements are taken. White color indicates a
perfect correlation and black color indicates no correlation between
parameters. If an output argument is given, the results are returned as a
MATLAB structure as follows: |
Examples |
Model Reduction Functions (Require the Symbolic Toolbox)
output = SBPDreducerateexpressions(input) | |
---|---|
Usage |
Function allowing the interactive and iterative
reduction of complex kinetic rate expressions. The function is directly
applicable to projects and will reduce a selected model of the project
using all or selected experiments from the project.
input = [project]
project: SBPDproject to consider for reduction. The output argument consists of the same SBPDproject as given by the input argument but with the fully reduced model added to it. |
Examples | Please have a look at the example script reduceExample.m in the SBPD\examples\ModredExample folder. |
Parameter Estimation Functions
output = SBPDmanualtuning(input) | |
---|---|
Usage |
SBPDmanualtuning: Allows to compare simulated experiments data to measurements and perform manual parameter tuning. Additionally it is possible to run simulations of selected experiments directly from the SBPDmanualtuning window, allowing for a deeper analysis of what happens in the system. USAGE: ====== [project] = SBPDmanualtuning(project) [project] = SBPDmanualtuning(project,modelindex) [project] = SBPDmanualtuning(project,estimation) [project] = SBPDmanualtuning(project,modelindex, ... additionalcomponents) [project] = SBPDmanualtuning(project,estimation, ... additionalcomponents) project: SBPDproject to tune manually. modelindex: The index of the model in the project to use for tuning. estimation: Same structure as used for parameter estimation (SBPDparameterestimation), defining the (global) parameters and their bounds, and modelindex. additionalcomponents: Cell-array containing the names of components (states or variables) that have not been measured but which should also be plotted in SBPDmanualtuning. DEFAULT VALUES: =============== modelindex: 1:n, where n is the number of the models in the project. This means that tuning is carried out for all models in the project if modelindex is not given estimation: all global parameters and all models, bounds: nominalvalue*[0.01 100] additionalcomponents: {} (none) Output Arguments: ================= The manually tuned project is given back. |
Examples |
First run the example from SBPDproject above. Then type: projecttuned = SBPDmanualtuning(project,2) Please have also a look at the runExample.m script in which many of the examples here are collected. |
output = SBPDmodeltuning(input) | |
---|---|
Usage |
SBPDmodeltuning: Allows to compare and tune a model to one or more sets of data. Here: No experiment description is required, the model is assumed to already include the experimental settings. USAGE: ====== modeltuned = SBPDmodeltuning(model,data) modeltuned = SBPDmodeltuning(model,data,options) model: SBmodel to tune data: Single SBmeasurement object or cell-array with SBmeasurement objects to which to fit the model options: still unused DEFAULT VALUES: =============== Output Arguments: ================= modeltuned: The tuned model with changed parameters |
Examples | Just try it out ... its straight-forward. |
output = SBPDparameterestimation(input) | |
---|---|
Usage |
This function performs parameter estimation for a given SBPD project. Multiple experiments per project and multiple measurements per experiment can easily be handled. Initial conditions can be estimated, global model parameters can be estimated, but also "local" parameters that depend on each experiment. USAGE: ====== [output] = SBPDparameterestimation(project,estimation) [output] = SBPDparameterestimation(project,estimation, noStopButtonFlag) project: SBPDproject for which to do the estimation noStopButtonFlag: 0: stop button, 1: no stop button estimation: Structure that defines what to do. estimation.modelindex: index of the model in the project for which to do the estimation (default: 1) estimation.experiments.indices: vector with indices of the experiments in the project for which to do the estimation (default: []: all experiments) estimation.experiments.measurementindices: cell-array with vector entries, definining the indices of the measurements to take into account for each selected experiment (default: {} (use all measurements available)) estimation.experiments.weight: vector with weights of the experiments in the project for which to do the estimation (default: all weights "1"). estimation.experiments.measurementweight: cell-array with vector entries, definining the weight of the measurements to take into account for each selected experiment (default: all weights "1"). Note that the measurementweights, if defined, override the weights on the experiments! Experiment weights are assigned equally to all measurements within the corresponding experiment. The parameters to be estimated and their upper and lower bounds can be specified in a cell-matrix in which the first column contains the names of the parameters, the second column the lower bounds and the third column the upper bounds. This cell-matrix needs to be assigned to the following field: estimation.parameters Alternatively, parameters and lower and upper bounds can be specified as follows: estimation.parameters.names: cell-array with names of parameters to be optimized (default: {} (estimate all parameters in the model)) estimation.parameters.lowbounds: lower bounds for the parameters. If scalar, then this scalar is multiplied to the initial guesses to obtain the lower bounds. Otherwise, a vector can be specified with the same length as the number of parameters to be optimized. (default: 1e-3 (1e-3*initialguess)) estimation.parameters.highbounds: upper bounds for the parameters. If scalar, then this scalar is multiplied to the initial guesses to obtain the upper bounds. Otherwise, a vector can be specified with the same length as the number of parameters to be optimized. (default: 1e3 (1e3*initialguess)) The local parameters to be estimated and their upper and lower bounds can be specified in a cell-matrix in which the first column contains the names of the parameters, the second column the lower bounds and the third column the upper bounds. This cell-matrix needs to be assigned to the following field: estimation.parameterslocal Alternatively, local parameters and lower and upper bounds can be specified as follows: estimation.parameterslocal.names: cell-array with names of parameters to be optimized locally (independently for each experiment). Initial guesses are obtained from the nominal model/nominal experiment. (default: {} (don't do any local estimation)) estimation.parameterslocal.lowbounds: same as for the parameters above, just for the parameters to be estimated locally. (default: 1e-3 (1e-3*initialguess)) estimation.parameterslocal.highbounds: same as for the parameters above, just for the parameters to be estimated locally. (default: 1e3 (1e3*initialguess)) The states for which to estimate the initial conditions and their upper and lower bounds can be specified in a cell-matrix in which the first column contains the names of the parameters, the second column the lower bounds and the third column the upper bounds. This cell-matrix needs to be assigned to the following field: estimation.initialconditions NOTE THAT: initial conditions are always estimated independently for each experiment! Alternatively, states and lower and upper bounds can be specified as follows: estimation.initialconditions.names: names of the states for which to optimize the initial conditions. Optimization is done for one experiment at a time. No starting guesses can be specified. These are taken from the model and the experiment description + measurements. (default: {} (don't estimate initial conditions)) estimation.initialconditions.lowbounds: scalar or vector. Same procedure as for parameter lowbounds. (default: 1e-3 (1e-3*nominalvalues)) estimation.initialconditions.higbounds: scalar or vector. Same procedure as for parameter highbounds. (default: 1e3 (1e3*nominalvalues)) estimation.optimization.method: name of an optimization function. This function has to be present in the MATLAB path and the input/output interface has to be the same as in the SBTOOLBOX2 optimization methods. (default: 'simplexSB') estimation.optimization.options: options for the optimization method (third input argument to the optimization method). It is assumed that these options are defined in a structure (see simplexSB.m as example). (default: [] (default options for optimization method)) estimation.integrator.options: options for the integration using MEX simulation files. These are defined as a structure. The available fields, etc. are documented in the help text of the SBPDsimulate function. (default: [] => standard options). estimation.initialconditionsFlag: 0=nominal from model or experiment description, 1=average from first timepoint in measurements (default: 1) estimation.displayFlag: show output or not (0=none, 1=final, 2=1+iterations, 3=2+othermessages (default: 2) estimation.scalingFlag: 0=no scaling, 1=scaling by max(abs()) values in measurements, 2=scaling by mean values of measurements, 3=scaling by min/max bounds: [x_measured(ti)-x(ti)]^2/[xmax(ti)-xmin(ti)]^2 This last scaling alternative is only possible, if all max and min values for all the measurements are defined in the measurement data. estimation.timescalingFlag: timescaling is useful in cases of nonequidistant sampling, where some ranges are tightly sampled and others aren't. If equidistant sampling then this flag has no effect. Otherwise the effect is maximal im it is set to 1, with decreasing effect as it increases. (default: 0) estimation.costfunction: string with the name of a custom costfunction for the estimation. The input output interface of this function needs to be compatible with the "defaultcostparameterestimationSBPD" function. (default: 'defaultcostparameterestimationSBPD') Output Arguments: ================= The output is given as a structure: parameters: cell-array with names of optimized parameters Popt: vector with values of optimized parameters parameterslocal: cell-array with names of locally optimized parameters (for each experiment indenpendently) PLOCALopt: vector with values of locally optimized parameters icnames: cell-array with names of states for which the initial conditions have been optimized ICopt: vector with values of optimized initial conditions FVALopt: optimal cost function value projectopt: SBPDproject with updated optimized model and initial conditions in the experiment descriptions estimation: The estimation input argument |
Examples | Please have also a look at the runEstimation.m script in the SBPD/_EXAMPLES/Projects folder. |
output = getparamictextSBPD(input) | |
---|---|
Usage |
getparamictextSBPD: This function aids in constructing the text that is needed to define the global and local parameters and the initial conditions for parameter estimation purposes. It works both on project and models. USAGE: ====== getparamictextSBPD(model) getparamictextSBPD(project) getparamictextSBPD(project,modelindex) getparamictextSBPD(model,OPTIONS) getparamictextSBPD(project,OPTIONS) getparamictextSBPD(project,modelindex,OPTIONS) [output] = getparamictextSBPD(model) [output] = getparamictextSBPD(project) [output] = getparamictextSBPD(project,modelindex) [output] = getparamictextSBPD(model,OPTIONS) [output] = getparamictextSBPD(project,OPTIONS) [output] = getparamictextSBPD(project,modelindex,OPTIONS) model: SBmodel project: SBPDproject modelindex: The index of the model in an SBPDproject to use OPTIONS: a structure with additional informations OPTIONS.lowerbounds: scalar factor, determining the lower bound for a parameter by: factor*"original parameter value". OPTIONS.highbounds: scalar factor, determining the upper bound for a parameter by: factor*"original parameter value". DEFAULT VALUES: =============== modelindex: 1 OPTIONS.lowbounds: 0.1 OPTIONS.highbounds: 10 Output Arguments: ================= If no output argument is specified, the determined text it written out in the matlab command window. Otherwise, the information is returned in a structure: output.completeText: The complete text. output.parametersText: Only the parameters with bounds output.initialConditionsText: Only the initial conditions with bounds Note that automatically no distinction between parameters can be made that are to be estimated locally or globally. Therefore, all parameters appear in the complete text in the global parameter section. Just copy and paste when you need it! |
Examples |
Please have also a look at the run_ex1.m script
in the SBPD/_EXAMPLES/benchmarkprojects folder.
You can see there how the parameters/initial conditions
and their respective upper and lower bounds are defined
for parameter estimation.
Now, type the following:
>> novak_tyson % this loads an SBmodel into "sbm" The purpose of this helper functions should now have become clear. |
output = createrunestimationscriptSBPD(input) | |
---|---|
Usage |
createrunestimationscriptSBPD: Creates a run estimation script for the given project and eventually given modelindex. This script can be seen as a template for parameter estimation and fit analysis tasks. USAGE: ====== createrunestimationscriptSBPD(project) createrunestimationscriptSBPD(project,modelindex) createrunestimationscriptSBPD(project,modelindex,filename) createrunestimationscriptSBPD(project,modelindex,filename, OPTIONS) project: SBPDproject modelindex: index of the model in the project to use filename: name of the run estimation file (*.m) OPTIONS: a structure with additional informations OPTIONS.lowerbounds: scalar factor, determining the lower bound for a parameter by: factor*"original parameter value". OPTIONS.highbounds: scalar factor, determining the upper bound for a parameter by: factor*"original parameter value". DEFAULT VALUES: =============== modelindex: 1 filename: 'runEstimation.m' OPTIONS.lowbounds: 0.1 OPTIONS.highbounds: 10 |
Examples |
Please change into the SBPD/_EXAMPLES/benchmarkprojects folder.
Load a project by typing:
>> sbp = SBPDproject('ex1 - Isomerization of alpha-pinene') Then create a runEstimation.m script by typing: >> createrunestimationscriptSBPD(sbp) Have a look at the created script. In lines 11 and 12 you have to enter the name of the project file to load (*.sbp) or the name of the project folder to load. In this case: ex1 - Isomerization of alpha-pinene. Then you are ready to run an estimation on this project. |
output = SBPDanalyzeresiduals(input) | |
---|---|
Usage |
SBPDanalyzeresiduals: Determines and analyzes the residuals for a given project. The function either returns the residuals and corresponding analysis information or plots the results. The residuals are statistically tested with the Null Hypothesis that they are normal with unspecified mean and variance. Currently, the means are not tested agains the hypothesis that they have all the properties of white noise. Furthermore, the autocorrelations of the (mean-free) residuals are calculated. USAGE: ====== SBPDanalyzeresiduals(project) SBPDanalyzeresiduals(project,modelindex) SBPDanalyzeresiduals(project,estimation) SBPDanalyzeresiduals(project,modelindex,alpha) SBPDanalyzeresiduals(project,estimation,alpha) [output] = SBPDanalyzeresiduals(project) [output] = SBPDanalyzeresiduals(project,modelindex) [output] = SBPDanalyzeresiduals(project,estimation) [output] = SBPDanalyzeresiduals(project,modelindex,alpha) [output] = SBPDanalyzeresiduals(project,estimation,alpha) project: SBPDproject to determine the residuals for. modelindex: The index of the model in the project to use for residual determination. estimation: Same structure as used for parameter estimation (SBPDparameterestimation), defining the experiments to take into account. Additionally, if defined the timescalingFlag is taken into account. alpha: The significance level for the test of the individual residuals against the Null Hypothesis that they are normally distributed. DEFAULT VALUES: =============== modelindex: 1 estimation: all experiments and measurements are taken into account alpha = 0.05 Output Arguments: ================= If no output argument is specified, the residuals and additional analysis information is plotted using the SBplot GUI. Otherwise, the results are returned as a structure with the following fields: output(e).name: Name of the e-th experiment output(e).measurement: Results for the measurements in the e-th experiment output(e).measurement(m).name: Name of the m-th measurement in the e-th experiment output(e).measurement(m).components: Names of the measured components for which the residuals have been determined. output(e).measurement(m).time: Timevector for the measurement output(e).measurement(m).timescalingFlag: Value of the timescalingFlag used for the analysis. This flag can be defined via the estimation input argument. Hint: Keep it either on the same value as for parameter estimation or set it to zero. output(e).measurement(m).residuals: Matrix with residuals (weighted according to the timescalingFlag setting). Rows correspond to time-points and columns to the measured components (same order as in output(e).measurement(m).components). output(e).measurement(m).pValue: are the p-values corresponding to each component residual. A pvalue is the probability of observing the given result (residuals) by chance given that the null hypothesis (residuals normally distributed) is true. Small values of pValue cast doubt on the validity of the null hypothesis. output(e).measurement(m).alpha: The significance level for the test of the individual residuals against the Null Hypothesis that they are normally distributed. (Same value as input argument "alpha" or default setting). output(e).measurement(m).H: Result of the hypothesis test for each component residuals. H=0 (alpha |
Examples | Please have a look at the run_ex1.m and run_ex2.m scripts in the SBPD/_EXAMPLES/benchmarkproblems folder. |
output = SBPDparameterfitanalysis(input) | |
---|---|
Usage |
Parameter estimation for the given project is repeated several times from randomly perturbed starting conditions. The estimated parameters values are stored and can subsequently can be used to obtain insight into correlations between parameters, local minima, etc. This function only generates the data, which then is analyzed by specialized functions (SBPDfaboxplot, SBPDfaclustering, SBPDfahist). USAGE: ====== [estdata] = SBPDparameterfitanalysis(project,estimation) [estdata] = SBPDparameterfitanalysis(project,estimation, ... ...nrestimations,perttype) [estdata] = SBPDparameterfitanalysis(project,estimation, ... ...nrestimations,perttype,noStopButtonFlag) project: SBPDproject for which to do the estimation estimation: Structure that defines what to do. Same structure as used for SBPDparameterestimation, thereforw not documented here again. nrestimations: number of estimations that are to be done from varying initial conditions perttype: =0: perturbed parameters/initial conditions chosen randomly distributed uniformly between the low and high bounds. >0: perturbed parameters obtained from an exponential distribution around the nominal values: ppert=p0*10^(randn(1)*perttype) noStopButtonFlag: 0: stop button, 1: no stop button DEFAULT VALUES: =============== estimation: same as in SBPDparameterestimation nrestimations: 50 perttype: 0.5 (exponential distribution around nominal parameter values/initial conditions noStopButtonFlag: 0 Output Arguments: ================= The output 'estdata' is given as a structure: nrestimations: number of estimations performed perttype: the chosen perturbation type parameters: cell-array with names of optimized parameters Popt: vector with values of optimized parameters parameterslocal: cell-array with names of locally optimized parameters (for each experiment indenpendently) PLOCALopt: vector with values of locally optimized parameters icnames: cell-array with names of states for which the initial conditions have been optimized ICopt: vector with values of optimized initial conditions FVALopt: optimal cost function value FVALstart: the cost at the starting conditions timeelapsed: the time needed for all the estimations |
Examples | Please have a look at the runAnalysis.m script in the SBPD/_EXAMPLES/FitAnalysis folder. |
SBPDfahist(input) | |
---|---|
Usage |
This function plots histograms for the parameter values that have been estimated using the SBPDparameterfitanalysis function. This gives a first impression over how well the parameters can be determined. The bins are equally distributed over the parameter range given by the upper and lower bounds. Results are displayed separately for global parameters, local parameters, and initial conditions. For each estimated local parameter and initial condition a new figure is displayed, since usually there will be several experiments. USAGE: ====== SBPDfahist(estdata) SBPDfahist(estdata,nrbins) estdata: The estimation data returned by the function SBPDparameterfitanalysis nrbins: Number of bins to sort the values into |
Examples | Please have a look at the runAnalysis.m script in the SBPD/_EXAMPLES/FitAnalysis folder. |
SBPDfaclustering(input) | |
---|---|
Usage |
This function performs hierarchical clustering based on Euclidean distance of the estimated parameter sets. If the estimates are grouped around a single minimum a single cluster tree should be seen. However, if the parameter sets lie around different local minima the tree will show several large branches. To normalize the data, the parameters are scaled such that the median of each single parameter is 1. USAGE: ====== SBPDfaclustering(estdata) SBPDfaclustering(estdata,fontsize) estdata: The estimation data returned by the function SBPDparameterfitanalysis fontsize: Fontsize for the dendrogram (default: 10) |
Examples | Please have a look at the runAnalysis.m script in the SBPD/_EXAMPLES/FitAnalysis folder. |
SBPDfaboxplot(input) | |
---|---|
Usage |
Plots a box-and-whisker diagram for the estimation data, visualizing the spread in the results. Separate plots are shown for global and local parameters and initial conditions. Determine also mean and standard deviation for all parameters and display them next to the names. To normalize the data, the parameters are scaled such that the median of each single parameter is 1. USAGE: ====== SBPDfaboxplot(estdata) SBPDfaboxplot(estdata, OPTIONS) estdata: The estimation data returned by the function SBPDparameterfitanalysis OPTIONS: Structure containing options for the function OPTIONS.boxWidth: Width of the boxes to be drawn OPTIONS.verticalFlag: Flag determining if the boxes are oriented vertically (=1) or horizontally (=0) DEFAULT VALUES: =============== OPTIONS.boxWidth: 0.5 OPTIONS.verticalFlag: 0 (plot horizontally) |
Examples | Please have a look at the runAnalysis.m script in the SBPD/_EXAMPLES/FitAnalysis folder. |
SBPDfacorr(input) | |
---|---|
Usage |
This function determines the correlation matrix for the parameter sets determined with the SBPDparameterfitanalysis function. The closer the magnitude of the values is to one, the more correlated the parameters. Results are generated only for the global parameters. USAGE: ====== SBPDfacorr(estdata) estdata: The estimation data returned by the function SBPDparameterfitanalysis |
Examples | Please have a look at the runAnalysis.m script in the SBPD/_EXAMPLES/FitAnalysis folder. |
SBPDfasigncorr(input) | |
---|---|
Usage |
A matrix of p-values for testing the hypothesis of no significant correlation is computed based on the results generated by SBPDparameterfitanalysis and displayed. Each p-value is the probability of getting a correlation as large as the observed value by random chance, when the true correlation is zero. If P(i,j) is small then the correlation between these two parameters is significant. Results are generated only for the global parameters. USAGE: ====== SBPDfasigncorr(estdata) SBPDfasigncorr(estdata,alpha) estdata: The estimation data returned by the function SBPDparameterfitanalysis alpha: A number between 0 and 1 to specify a confidence level of 100*(1-alpha)%. Default: alpha=0.05 |
Examples | Please have a look at the runAnalysis.m script in the SBPD/_EXAMPLES/FitAnalysis folder. |
SBPDfadetcorr(input) | |
---|---|
Usage |
Plots detailed pairwise correlations between parameters. Parameters to display on the X and Y axis should be selected. USAGE: ====== [project] = SBPDfadetcorr(estdata) estdata: The estimation data returned by the function SBPDparameterfitanalysis |
Examples | Please have a look at the runAnalysis.m script in the SBPD/_EXAMPLES/FitAnalysis folder. |
output = cutoffdataSBPD(input) | |
---|---|
Usage |
Function used to select a cut-off threshold for the estimation data collected during the fit analysis. Threshold can only be increased, since the cut-off data are thrown away. USAGE: ====== [estdataout] = cutoffdataSBPD(estdata) estdata: The estimation data returned by the function SBPDparameterfitanalysis Output Arguments: ================= estdataout: estdata structure (see SBPDparameterfitanalysis) |
Examples | Please have a look at the runAnalysis.m script in the SBPD/_EXAMPLES/FitAnalysis folder. |
Symbolic Math Functions (Require the Symbolic Toolbox)
output = SBPDsymjacobian(input) | |
---|---|
Usage |
Determines a symbolic Jacobian. This function requires the symbolic toolbox for MATLAB.
input = [model]
model: SBmodel output = [jacobian] jacobian: Cell-matrix containing the symbolic Jacobian. |
Examples | This function should be self explaining and does not need any example. |
Kinetic Rate Laws
Inbuild Kinetic Rate Laws | |
---|---|
Usage |
Some standard kinetic rate laws are built in the SBPD package and can be used in SBmodels.
Here only the names of the kinetic rate law functions are shown. To obtain more documentation about these rate laws please
type >> help "ratelawname" in MATLAB.
kin_allosteric_inihib_empirical_rev |
Examples | Please have also a look at the models that are present in the project folder in the SBPD/_EXAMPLES/Projects folder. These models make extensive use of the above functions. |
Parameter Estimation Benchmark Projects | |
---|---|
Usage |
The SBPD package includes several SBPDprojects that can be used as
benchmarks for the evaluation of parameter estimation methods.
These projects are located in the SBPD/_EXAMPLES/benchmarkproblems
folder and can be run using the following scripts:
run_ex1 - Isomerization of alpha-pinene To execute these scripts, please change into the SBPD/_EXAMPLES/benchmarkproblems folder, open the desired script and run it step by step. (Here the Cell-mode of the MATLAB editor is very useful!). |