sbioparamestim
Perform parameter estimation
sbioparamestim
will be removed in a future release. Use sbiofit
instead.
Statistics and Machine Learning Toolbox™, Optimization Toolbox™, and Global Optimization Toolbox are recommended for this function.
Syntax
[k, result]= sbioparamestim(modelObj, tspan, xtarget, observed_array, estimated_array)
[___]= sbioparamestim(___, observed_array, estimated_array, k0)
[___]= sbioparamestim(___, observed_array, estimated_array, k0, method)
Arguments
k | Vector of estimated parameter values. For all optimization methods except
'fminsearch' , the parameters are constrained to be greater than
or equal to 0. | ||||||
result | Structure with fields that provide information about the progress of optimization. | ||||||
modelObj | SimBiology® model object. | ||||||
tspan | n-by-1 vector representing the time span of the target data
xtarget . | ||||||
xtarget | n-by-m matrix, where
n is the number of time samples and m is the
number of states to match during the simulation. The number of rows in
| ||||||
observed_array | Either of the following:
Note If duplicate names exist for any species or parameters, ensure there are no
ambiguities by specifying either an array of objects or a cell array of qualified
names, such as The length of | ||||||
estimated_array | Either of the following:
Note If duplicate names exist for any compartments, species, or parameters, ensure
there are no ambiguities by specifying either an array of objects or a cell array
of qualified names, such as | ||||||
k0 | Numeric vector containing the initial values of compartments, species, or
parameters to be estimated. The length of k0 must equal that of
estimated_array . If you do not specify k0 ,
or specify an empty vector for k0 , then
sbioparamestim takes initial values for compartments, species, or
parameters from modelObj , or, if there are active variants,
sbioparamestim uses any initial values specified in the active
variants. For details about variants, see Variant object . | ||||||
method | Optimization algorithm to use during the estimation process, specified by either of the following:
|
Function Descriptions
Function | Description | ||||||
---|---|---|---|---|---|---|---|
fminsearch |
Note
| ||||||
lsqcurvefit | Requires Optimization Toolbox.
| ||||||
lsqnonlin | Requires Optimization Toolbox.
| ||||||
fmincon | Requires Optimization Toolbox.
| ||||||
patternsearch | Requires Global Optimization Toolbox.
| ||||||
patternsearch_hybrid | Requires Global Optimization Toolbox.
The
| ||||||
ga | Requires Global Optimization Toolbox.
| ||||||
ga_hybrid | Requires Global Optimization Toolbox.
The
| ||||||
particleswarm | Requires Global Optimization Toolbox. sbioparamestim uses the following default
options for particleswarm (Global Optimization Toolbox), except
for:Display = 'off'; FunctionTolerance = 1e-6*[Initial objective function value] SwarmSize = 10; MaxIter = 30; | ||||||
particleswarm_hybrid | Requires Global Optimization Toolbox.
Display = 'off'; FunctionTolerance = 1e-6*[Initial objective function value] SwarmSize = 10; MaxIter = 30; HybridFcn = {@fmincon, [Fmincon Options, described above]} |
Note
sbioparamestim
does not support setting the
Vectorized
option to 'on'
in algorithms that support
this option.
Description
[k, result]= sbioparamestim(
estimates the initial values of compartments, species, and parameters of
modelObj
, tspan
, xtarget
, observed_array
, estimated_array
)modelObj
, a SimBiology model object, specified in estimated_array
, so as to match
the values of species and nonconstant parameters given by observed_array
with the target state, xtarget
, whose time variation is given by the time
span tspan
. If you have Optimization Toolbox installed, sbioparamestim
uses the lsqnonlin
(Optimization Toolbox) function as the default method for the parameter estimation. If you do
not have Optimization Toolbox installed, sbioparamestim
uses the MATLAB function fminsearch
as the default method for the
parameter estimation.
[___]= sbioparamestim(___,
specifies the initial values of compartments, species, and parameters listed in
observed_array
, estimated_array
, k0
)estimated_array
.
[___]= sbioparamestim(___,
specifies the optimization method to use. observed_array
, estimated_array
, k0
, method
)
Examples
Given a model and some target data, estimate all of its parameters without explicitly specifying any initial values:
Load a model from the project,
gprotein_norules.sbproj
. The project contains two models, one for the wild-type strain (stored in variablem1
), and one for the mutant strain (stored in variablem2
). Load the G protein model for the wild-type strain.sbioloadproject gprotein_norules m1;
Store the target data in a variable:
Gt = 10000; tspan = [0 10 30 60 110 210 300 450 600]'; Ga_frac = [0 0.35 0.4 0.36 0.39 0.33 0.24 0.17 0.2]'; xtarget = Ga_frac * Gt;
Store all model parameters in an array:
p_array = sbioselect(m1,'Type','parameter');
Store the species that should match target:
Ga = sbioselect(m1,'Type','species','Name','Ga'); % In this example only one species is selected. % To match more than one targeted species data % replace with selected species array.
Estimate the parameters:
[k, result] = sbioparamestim(m1, tspan, xtarget, Ga, p_array)
k = 0.0100 0.0000 0.0004 4.0000 0.0040 1.0000 0.0000 0.1100 result = fval: 1.4193e+06 residual: [9x1 double] exitflag: 2 iterations: 2 funccount: 27 algorithm: 'trust-region-reflective' message: [1x413 char]
Estimate parameters specified in p_array
for species
Ga
using different algorithms.
[k1,r1] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ... {},'fmincon'); [k2,r2] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ... {},'patternsearch'); [k3,r3] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ... {},'ga'); [k4,r4] = sbioparamestim(m1,tspan,xtarget,Ga,p_array, ... {},'particleswarm');
Estimate parameters specified in p_array
for species
Ga
, and change default optimization options to use user-specified
options.
myopt1 = optimoptions('Display','iter'); [k1,r1] = sbioparamestim(m1,tspan,xtarget, ... Ga,p_array,{},{'fmincon',myopt1}); myopt2 = optimoptions('MeshTolerance',1.0e-4); [k2,r2] = sbioparamestim(m1,tspan,xtarget, ... Ga,p_array,{},{'patternsearch',myopt2}); myopt3 = optimoptions('PopulationSize',25, 'Generations', 10); [k3,r3] = sbioparamestim(m1,tspan,xtarget, ... Ga,p_array,{},{'ga',myopt3}); myopt4 = optimoptions('particleswarm','Display','iter'); [k4,r4] = sbioparamestim(m1,tspan,xtarget,Ga,p_array,{},{'particleswarm',myopt4});
Algorithms
sbioparamestim
estimates parameters by attempting to minimize the
discrepancy between simulation results and the data to fit. The minimization uses one of these
optimization algorithms: fminsearch
(from MATLAB); lsqcurvefit
, lsqnonlinfit
, or
fmincon
(from Optimization Toolbox); or patternsearch
or ga
(from
Global Optimization Toolbox). All optimization methods require an objective function as an input. This
objective function takes as input a vector of parameter values and returns an estimate of the
discrepancy between simulation and data. When using lsqcurvefit
or
lsqnonlinfit
as the optimization method, this objective function
returns a vector of the residuals. For other optimization methods, the objective function
returns the 2-norm of the residuals.
References
[1] Yi, T-M., Kitano, H., and Simon, M.I. (2003) A quantitative characterization of the yeast heterotrimeric G protein cycle. PNAS 100, 10764–10769.
Version History
Introduced in R2006a