sbioparamestim

Выполните оценку параметра

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®.

tspann-by-1 вектор, представляющий отрезок времени целевых данных xtarget.
xtarget

n-by-m матрица, где n является количеством выборок времени и m, является количеством состояний, чтобы соответствовать во время симуляции. Количество строк в xtarget должен равняться количеству строк в tspan.

observed_array

Любое из следующего:

  • Массив объектов (разновидности, отсек или непостоянный параметр) в modelObj, чьи значения должны быть соответствующими во время процесса оценки

  • Массив ячеек из символьных векторов или вектор строки, содержащий имена объектов (разновидности, отсек или непостоянный параметр) в modelObj, чьи значения должны быть соответствующими во время процесса оценки

Примечание

Если двойные названия существуют для каких-либо разновидностей или параметров, гарантируют, что нет никаких неоднозначностей путем определения или массива объектов или массива ячеек полностью определенных имен, таких как compartmentName.speciesName или reactionName.parameterName. Например, для разновидности под названием sp1 это находится в отсеке под названием comp2, полностью определенным именем является comp2.sp1.

Длина observed_array должен равняться количеству столбцов в xtarget. sbioparamestim принимает что порядок элементов в observed_array совпадает с порядком столбцов в xtarget.

estimated_array

Любое из следующего:

  • Массив объектов (отсек, разновидности или параметр) в modelObj чьи начальные значения должны быть оценены

  • Массив ячеек из символьных векторов или вектор строки, содержащий имена объектов (отсек, разновидности или параметр) в modelObj чьи начальные значения должны быть оценены

Примечание

Если двойные названия существуют для каких-либо отсеков, разновидностей, или параметров, гарантируют, что нет никаких неоднозначностей путем определения или массива объектов или массива ячеек полностью определенных имен, таких как compartmentName.speciesName или reactionName.parameterName. Например, для параметра под названием param1 ограниченный по объему к реакции под названием reaction1, полностью определенным именем является reaction1.param1.

k0Числовой вектор, содержащий начальные значения отсеков, разновидностей или параметров, которые будут оценены. Длина k0 должен равняться тому из estimated_array. Если вы не задаете k0, или задайте пустой вектор для k0, затем sbioparamestim принимает начальные значения для отсеков, разновидностей или параметров от modelObj, или, если существуют активные варианты, sbioparamestim использование любые начальные значения задано в активных вариантах. Для получения дополнительной информации о вариантах, смотрите Variant object.
method

Алгоритм оптимизации, чтобы использовать во время процесса оценки, заданного любым из следующего:

  • Вектор символов (или строка) определение одной из следующих функций:

    • 'fminsearch'

    • 'lsqcurvefit'

    • 'lsqnonlin'

    • 'fmincon'

    • 'patternsearch'

    • 'patternsearch_hybrid'

    • 'ga'

    • 'ga_hybrid'

    • 'particleswarm'

    • 'particleswarm_hybrid'

    Для описаний как sbioparamestim использует предыдущие функции, см. таблицу Function Descriptions.

  • Двухэлементный массив ячеек, с первым элементом, являющимся одной из предыдущих функций и вторым элементом, являющимся структурой опций или объектом. Используйте структуру или объект подходящих вариантов для каждого метода, перечисленного затем.

    МетодСтруктура опций или объект
    'fminsearch'optimset

    'fmincon'

    'lsqcurvefit'

    'lsqnonlin'

    'particleswarm'

    'particleswarm_hybrid'

    'patternsearch'

    'patternsearch_hybrid'

    'ga'

    'ga_hybrid'

    optimoptions

    Совет

    Используйте двухэлементный массив ячеек, чтобы обеспечить вашу собственную структуру опций для алгоритма оптимизации.

    Если у вас есть Parallel Computing Toolbox™, можно включить параллельные вычисления для более быстрых данных, соответствующих:

    1. Открытие пула рабочего MATLAB®:

      parpool

    2. Установка аргумента пары "имя-значение" 'UseParallel' к true в структуре опций или объекте.

Функциональные описания

ФункцияОписание
fminsearch

sbioparamestim использует структуру опций по умолчанию, сопоставленную с fminsearch, за исключением:

Display = 'off'
TolFun = 1e-6* (Начальное значение целевой функции)

Примечание

'fminsearch' метод оптимизации без ограничений, который может привести к отрицательным величинам для параметров.

lsqcurvefit

Требует Optimization Toolbox.

sbioparamestim использует структуру опций по умолчанию, сопоставленную с lsqcurvefit, за исключением:

Display = 'off'
FiniteDifferenceStepSize = значение SolverOptions.RelativeTolerance свойство конфигурации модели сопоставлено с modelObj, с минимумом eps^(1/3)
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
TypicalX = 1e-6* (Начальные значения компонентов, которые будут оценены)
lsqnonlin

Требует Optimization Toolbox.

sbioparamestim использует структуру опций по умолчанию, сопоставленную с lsqnonlin, за исключением:

Display = 'off'
FiniteDifferenceStepSize = значение SolverOptions.RelativeTolerance свойство конфигурации модели сопоставлено с modelObj, с минимумом eps^(1/3)
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
TypicalX = 1e-6* (Начальные значения компонентов, которые будут оценены)
fmincon

Требует Optimization Toolbox.

sbioparamestim использует структуру опций по умолчанию, сопоставленную с fmincon, за исключением:

Algorithm = 'interior-point'
Display = 'off'
FiniteDifferenceStepSize = значение SolverOptions.RelativeTolerance свойство конфигурации модели сопоставлено с modelObj, с минимумом eps^(1/3)
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
TypicalX = 1e-6* (Начальные значения компонентов, которые будут оценены)
patternsearch

Требует Global Optimization Toolbox.

sbioparamestim использует структуру опций по умолчанию, сопоставленную с patternsearch, за исключением:

Display = 'off'
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
MeshTolerance = 1.0e-3
AccelerateMesh = true
patternsearch_hybrid

Требует Global Optimization Toolbox.

sbioparamestim вызывает patternsearch функция с дополнительной опцией SearchMethod = {@searchlhs,10,15}. Эта опция добавляет дополнительный поисковый шаг, который использует латинскую выборку гиперкуба.

sbioparamestim функционируйте использует структуру опций по умолчанию, сопоставленную с patternsearch, за исключением:

Display = 'off'
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
MeshTolerance = 1.0e-3
AccelerateMesh = true
SearchMethod = {@searchlhs,10,15}
ga

Требует Global Optimization Toolbox.

sbioparamestim использует структуру опций по умолчанию, сопоставленную с ga, за исключением:

Display = 'off'
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
PopulationSize = 10
Generations = 30
MutationFcn = @mutationadaptfeasible
ga_hybrid

Требует Global Optimization Toolbox.

sbioparamestim вызывает ga функция с дополнительной опцией HybridFcn = {@fmincon, fminopt}, где fminopt тот же набор опций по умолчанию sbioparamestim использование для fmincon. Эта опция вызывает дополнительную основанную на градиенте минимизацию после того, как шаг генетического алгоритма закончится.

sbioparamestim функционируйте использует структуру опций по умолчанию, сопоставленную с ga, за исключением:

Display = 'off'
FunctionTolerance = 1e-6* (Начальное значение целевой функции)
PopulationSize = 10
Generations = 30
MutationFcn = @mutationadaptfeasible
HybridFcn = {@fmincon, structure of name/value pairs for fmincon}
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.

sbioparamestim вызывает particleswarm функция с дополнительной опцией HybridFcn = {@objFcn, options}. Целевая функция, objFcn, одна из этих поддерживаемых функций: patternsearchfminsearch, fminunc, или fminconОпции структура опций для этих функций и их значений.

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) задает метод оптимизации, чтобы использовать.

Примеры

Учитывая модель и некоторые целевые данные, оцените все его параметры, явным образом не задавая начальных значений:

  1. Загрузите модель из проекта, gprotein_norules.sbproj. Проект содержит две модели, один для деформации дикого типа (сохраненный в переменной m1), и один для деформации мутанта (сохраненный в переменной m2). Загрузите модель белка G для деформации дикого типа.

    sbioloadproject gprotein_norules m1;
  2. Храните целевые данные в переменной:

    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;
  3. Сохраните все параметры модели в массиве:

    p_array = sbioselect(m1,'Type','parameter');
  4. Сохраните разновидности, которые должны совпадать с целью:

    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.
  5. Оцените параметры:

    [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] И, T-M., Kitano, H., и Саймон, M.I. (2003) А количественная характеристика дрожжей гетеротримерный цикл белка G. PNAS 100, 10764–10769.

Смотрите также

|

Введен в R2006a