Выполните оценку параметра
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.