Выполните оценку параметра
sbioparamestim
будет удалено в следующем релизе. Использовать sbiofit
вместо этого.
Для этой функции рекомендованы Statistics and Machine Learning Toolbox™, Optimization Toolbox™ и Global Optimization Toolbox.
[k, result]= sbioparamestim(modelObj, tspan, xtarget, observed_array, estimated_array)
[___]= sbioparamestim(___, observed_array, estimated_array, k0)
[___]= sbioparamestim(___, observed_array, estimated_array, k0, method)
k | Вектор предполагаемых значений параметров. Для всех методов оптимизации, кроме 'fminsearch' параметры ограничены, чтобы быть больше или равными 0. | ||||||
result | Структура с полями, которые обеспечивают информацию о прогрессе оптимизации. | ||||||
modelObj | SimBiology® объект модели. | ||||||
tspan | n вектор -by-1, представляющий временной промежуток целевых данных xtarget . | ||||||
xtarget | n -by - m матрица, где n - количество временных выборок, а m - количество состояний, которое совпадает во время симуляции. Количество строк | ||||||
observed_array | Одно из следующих:
Примечание Если дублирующие имена существуют для любого вида или параметров, убедитесь, что нет неоднозначностей, задав либо массив объектов, либо массив ячеек с квалифицированными именами, такими как Длина | ||||||
estimated_array | Одно из следующих:
Примечание Если дублирующие имена существуют для каких-либо отсеков, видов или параметров, убедитесь, что нет неоднозначностей, задав либо массив объектов, либо массив ячеек с квалифицированными именами, такими как | ||||||
k0 | Числовой вектор, содержащий начальные значения отсеков, видов или параметров, которые будут оценены. Длина k0 должен равняться таковой у estimated_array . Если вы не задаете k0 , или укажите пустой вектор для k0 , затем sbioparamestim принимает начальные значения для отсеков, видов или параметров из modelObj или, если существуют активные варианты, sbioparamestim использует любые начальные значения, заданные в активных вариантах. Для получения дополнительной информации о вариантах смотрите Variant object . | ||||||
method | Алгоритм оптимизации для использования в процессе оценки, заданный одним из следующих:
|
Описания функций
Функция | Описание | ||||||
---|---|---|---|---|---|---|---|
fminsearch |
Примечание
| ||||||
lsqcurvefit | Требуется Optimization Toolbox.
| ||||||
lsqnonlin | Требуется Optimization Toolbox.
| ||||||
fmincon | Требуется Optimization Toolbox.
| ||||||
patternsearch | Требуется Global Optimization Toolbox.
| ||||||
patternsearch_hybrid | Требуется Global Optimization Toolbox.
The
| ||||||
ga | Требуется Global Optimization Toolbox.
| ||||||
ga_hybrid | Требуется Global Optimization Toolbox.
The
| ||||||
particleswarm | Требуется Global Optimization Toolbox. sbioparamestim использует следующие опции по умолчанию для particleswarm (Global Optimization Toolbox), за исключением:Display = 'off'; FunctionTolerance = 1e-6*[Initial objective function value] SwarmSize = 10; MaxIter = 30; | ||||||
particleswarm_hybrid | Требуется Global Optimization Toolbox.
Display = 'off'; FunctionTolerance = 1e-6*[Initial objective function value] SwarmSize = 10; MaxIter = 30; HybridFcn = {@fmincon, [Fmincon Options, described above]} |
Примечание
sbioparamestim
не поддерживает установку Vectorized
опция для 'on'
в алгоритмах, поддерживающих эту опцию.
[k, result]= sbioparamestim(
оценивает начальные значения отсеков, видов и параметров modelObj
, tspan
, xtarget
, observed_array
, estimated_array
)modelObj
, объект модели SimBiology, указанный в estimated_array
, так чтобы соответствовать значениям видов и неконстантным параметрам, заданным observed_array
с целевым состоянием, xtarget
, чье изменение времени определяется промежутком времени tspan
. Если установлен Optimization Toolbox, sbioparamestim
использует lsqnonlin
(Optimization Toolbox) функционирует как метод по умолчанию для оценки параметра. Если у вас нет установленного Optimization Toolbox, sbioparamestim
использует функцию MATLAB fminsearch
как метод по умолчанию для оценки параметра.
[___]= sbioparamestim(___,
задает начальные значения отсеков, видов и параметров, перечисленных в observed_array
, estimated_array
, k0
)estimated_array
.
[___]= sbioparamestim(___,
задает используемый метод оптимизации. observed_array
, estimated_array
, k0
, method
)
Учитывая модель и некоторые целевые данные, оцените все ее параметры, явно не задавая никаких начальных значений:
Загрузите модель из проекта, gprotein_norules.sbproj
. Проект содержит две модели, одна для штамма дикого типа (хранится в переменной m1
), и единицу для мутантного штамма (хранится в переменном m2
). Загрузите модель G-белка для штамма дикого типа.
sbioloadproject gprotein_norules m1;
Сохраните целевые данные в переменной:
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;
Сохраните все параметры модели в массиве:
p_array = sbioselect(m1,'Type','parameter');
Сохраните виды, которые должны совпадать с целевыми:
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.
Оцените параметры:
[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]
Оценочные параметры, указанные в p_array
для видовых Ga
использование различных алгоритмов.
[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');
Оценочные параметры, указанные в p_array
для видовых Ga
и измените опции оптимизации по умолчанию, чтобы использовать пользовательские опции.
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});
sbioparamestim
оценивает параметры путем попытки минимизировать расхождение между результатами симуляции и данными в соответствии. Минимизация использует один из следующих алгоритмов оптимизации: fminsearch
(от MATLAB); lsqcurvefit
, lsqnonlinfit
, или fmincon
(из Optimization Toolbox); или patternsearch
или ga
(из Global Optimization Toolbox). Все методы оптимизации требуют целевой функции как вход. Эта целевая функция принимает за вход вектор значений параметров и возвращает оценку расхождения между симуляцией и данными. При использовании lsqcurvefit
или lsqnonlinfit
в качестве метода оптимизации эта целевая функция возвращает вектор невязок. Для других методов оптимизации целевая функция возвращает 2-норму невязок.
[1] Yi, T-M., Kitano, H. and Simon, M.I. (2003) Количественная характеристика дрожжевого гетеротримерного G-белкового цикла. PNAS 100, 10764-10769.