exponenta event banner

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, за исключением:
Display          = 'off';
FunctionTolerance = 1e-6*[Initial objective function value]
SwarmSize        = 10;
MaxIter          = 30;

particleswarm_hybrid

Требует Global Optimization Toolbox.

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

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, 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