sbiosteadystate

Нахождение устойчивого состояния модели SimBiology

Описание

пример

[success, variant_out] = sbiosteadystate(model) пытается найти устойчивое состояние SimBiology® модель, model. Функция возвращается success, что true если найдено устойчивое состояние и SimBiology Variant object, variant_outсо всеми нестационарными видами, отсеками и параметрами модели, имеющими установившиеся значения. Если установившееся состояние не было найдено, то success является false и variant_out содержит последние значения, найденные алгоритмом.

пример

[success, variant_out] = sbiosteadystate(model, variant_in) применяет альтернативные количественные значения, хранимые в объекте варианта SimBiology, variant_in, в модель перед попыткой найти статические значения.

пример

[success, variant_out] = sbiosteadystate(model, variant_in, scheduleDose) применяет объект дозы графика SimBiology, scheduleDose, или вектор запланированных доз к соответствующим величинам модели, прежде чем пытаться найти значения устойчивого состояния. Допускаются только дозы во время = 0, то есть время дозы каждого объекта дозы должно быть 0. Чтобы задать дозу без указания варианта, установите variant_in в пустой массив, [].

пример

[success, variant_out, model_out] = sbiosteadystate(model,___) также возвращает модель SimBiology, model_out это копия входного model с состояниями, установленными на найденное установившееся решение. Кроме того, model_out все начальные правила назначения отключены.

пример

[success, variant_out, model_out, exitInfo] = sbiosteadystate(model,___) также возвращает выходную информацию об установившемся состоянии расчета.

пример

[___] = sbiosteadystate(___, Name,Value) использует дополнительные опции, заданные одним или несколькими Name,Value аргументы в виде пар.

Примеры

свернуть все

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

Загрузите образец проекта SimBiology, содержащий модель, м1. Модель имеет пять реакций и четыре вида.

sbioloadproject('gene_reg.sbproj','m1')

Отобразите реакции модели.

m1.Reactions
ans = 
   SimBiology Reaction Array

   Index:    Reaction:                    
   1         DNA -> DNA + mRNA            
   2         mRNA -> mRNA + protein       
   3         DNA + protein <-> DNA_protein
   4         mRNA -> null                 
   5         protein -> null              

Вычисление в установившемся состоянии пытается найти значения в установившемся состоянии непостоянных величин. Чтобы выяснить, какие величины модели являются непостоянными в этой модели, используйте sbioselect.

sbioselect(m1,'Where','Constant*','==',false)
ans = 
   SimBiology Species Array

   Index:    Compartment:    Name:          Value:    Units:  
   1         unnamed         DNA            50        molecule
   2         unnamed         DNA_protein    0         molecule
   3         unnamed         mRNA           0         molecule
   4         unnamed         protein        0         molecule

Существует четыре вида, которые не являются постоянными, и начальные количества трех из них равны нулю.

Использование sbiosteadystate найти значения устойчивого состояния для этих непостоянных видов.

[success,variantOut] = sbiosteadystate(m1)
success = logical
   1

variantOut = 
   SimBiology Variant - SteadyState (inactive)

   ContentIndex:     Type:        Name:             Property:           Value:
   1                 compartment  unnamed           Capacity            1
   2                 species      DNA               InitialAmount       8.79024
   3                 species      DNA_protein       InitialAmount       41.2098
   4                 species      mRNA              InitialAmount       1.17203
   5                 species      protein           InitialAmount       23.4406
   6                 parameter    Transcription.k1  Value               0.2
   7                 parameter    Translation.k2    Value               20
   8                 parameter    [Binding/Unbin... Value               0.2
   9                 parameter    [Binding/Unbin... Value               1
   10                parameter    [mRNA Degradat... Value               1.5
   11                parameter    [Protein Degra... Value               1

Начальные количества всех видов модели были установлены на установившиеся значения. DNA является консервативным видом, поскольку общее число DNA и DNA_protein равно 50.

Можно также использовать вариант для хранения альтернативных начальных сумм и их использования во время расчета устойчивого состояния. Например, можно установить начальное количество ДНК 100 молекул вместо 50.

variantIn = sbiovariant('v1');
addcontent(variantIn,{'species','DNA','InitialAmount',100});
[success2,variantOut2,m2] = sbiosteadystate(m1,variantIn)
success2 = logical
   1

variantOut2 = 
   SimBiology Variant - SteadyState (inactive)

   ContentIndex:     Type:        Name:             Property:           Value:
   1                 compartment  unnamed           Capacity            1
   2                 species      DNA               InitialAmount       12.7876
   3                 species      DNA_protein       InitialAmount       87.2124
   4                 species      mRNA              InitialAmount       1.70502
   5                 species      protein           InitialAmount       34.1003
   6                 parameter    Transcription.k1  Value               0.2
   7                 parameter    Translation.k2    Value               20
   8                 parameter    [Binding/Unbin... Value               0.2
   9                 parameter    [Binding/Unbin... Value               1
   10                parameter    [mRNA Degradat... Value               1.5
   11                parameter    [Protein Degra... Value               1

m2 = 
   SimBiology Model - cell 

   Model Components:
     Compartments:      1
     Events:            0
     Parameters:        6
     Reactions:         5
     Rules:             0
     Species:           4
     Observables:       0

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

m2.Species
ans = 
   SimBiology Species Array

   Index:    Compartment:    Name:          Value:     Units:  
   1         unnamed         DNA            12.7876    molecule
   2         unnamed         DNA_protein    87.2124    molecule
   3         unnamed         mRNA           1.70502    molecule
   4         unnamed         protein        34.1003    molecule

Входные параметры

свернуть все

SimBiology модель, заданная как SimBiology Model object.

SimBiology вариант, заданный как Variant object. Альтернативные значения количества, сохраненные в варианте, применяются к модели перед нахождением устойчивого состояния.

Информация о дозах, заданная как объект дозы графика SimBiology. Доза должна быть болюсной, то есть не должно быть задержки во времени или времени введения для дозы. Другими словами, его LagParameterName и DurationParameterName свойства должны быть пустыми, и время дозы (Time свойство) должно быть 0. Для получения дополнительной информации о том, как создать болюсную дозу, смотрите Создание Доз Программно.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'AbsTol',1e-6 задает использование значения абсолютной погрешности 10–6.

Метод для вычисления устойчивого состояния model, заданная как разделенная разделенными запятой парами, состоящая из 'Method' и вектор символов 'auto', 'simulation', или 'algebraic'. Значение по умолчанию ('auto') поведение состоит в том, чтобы использовать 'algebraic' способ сначала. Если этот метод неудачен, функция использует 'simulation' способ.

Для метода симуляции функция моделирует модель и использует конечное дифференцирование, чтобы обнаружить установившееся состояние. Для получения дополнительной информации смотрите Simulation Method.

Для алгебраического метода функция вычисляет устойчивое состояние, найдя корень функции потока алгебраически. Для нелинейных моделей этот метод требует Optimization Toolbox™. Для получения дополнительной информации см. Алгебраический метод.

Примечание

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

Пример: 'Method','algebraic'

Абсолютная погрешность для обнаружения сходимости, заданный как разделенная разделенными запятой парами, состоящая из 'AbsTol' и положительный, настоящий скаляр.

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

Когда вы используете метод симуляции, абсолютная погрешность используется для определения сходимости при нахождении решения устойчивого состояния путем прямого интегрирования следующим образом: (dSdt<AbsTol)or(dSdt<RelTolS), где S является вектором неконстантных видов, параметров и отсеков.

Относительная погрешность для обнаружения сходимости, заданный как разделенная разделенными запятой парами, состоящая из 'RelTol' и положительный, настоящий скаляр. Этот аргумент пары "имя-значение" используется для simulation только метод. Алгоритм сходится и сообщает об устойчивом состоянии, если алгоритм находит состояния модели путем прямого интегрирования, такого что (dSdt<AbsTol)or(dSdt<RelTolS), где S является вектором непостоянных видов, параметров и отсеков.

Максимальное время симуляции перед завершением без устойчивого состояния, заданное как разделенная разделенными запятой парами, состоящая из 'MaxStopTime' и положительное целое число. Этот аргумент пары "имя-значение" используется для simulation только метод.

Минимальное время симуляции перед поиском устойчивого состояния, заданное как разделенная разделенными запятой парами, состоящая из 'MinStopTime' и положительное целое число. Этот аргумент пары "имя-значение" используется для simulation только метод.

Выходные аргументы

свернуть все

Флаг, чтобы указать, найдено ли устойчивое состояние модели, возвращается как true или false.

Вариант SimBiology, возвращенный как вариант объекта. Вариант включает все виды, параметры и отделения модели с непостоянными величинами, имеющими установившиеся значения.

SimBiology модель в установившемся состоянии, возвращенная как объект модели. model_out является копией входа modelс непостоянными видами, параметрами и отсеками, установившимися в установившихся значениях. Кроме того, model_out все начальные правила назначения отключены. Симуляция модели в установившемся состоянии требует, чтобы начальные правила назначения были неактивными, поскольку эти правила могут изменять значения в variant_out.

Примечание

  • Если вы решите совершить variant_out в вход model который имеет начальные правила назначения, затем model не ожидается, чтобы быть в установившемся состоянии, потому что правила возмущают систему, когда вы симулируете model.

  • model_out находится в установившемся состоянии, только если моделируется без каких-либо доз.

Выход информации об установившемся расчете, возвращенный как вектор символов. Информация содержит различные сообщения для соответствующих условий выхода.

  • Steady state found (simulation) - Установившееся состояние определяется с помощью метода симуляции.

  • Steady state found (algebraic) - Устойчивое состояние найдено с помощью алгебраического метода.

  • Steady state found (unstable) - Нестабильное установившееся состояние найдено с помощью алгебраического метода.

  • Steady state found (possibly underdetermined) - устойчивое состояние, которое, возможно, не асимптотически стабильно, найдено с помощью алгебраического метода.

  • No Steady state found - Установившегося состояния не обнаружено.

  • Optimization Toolbox (TM) is missing - Для метода задано значение 'algebraic' для нелинейных моделей и Optimization Toolbox отсутствует.

Подробнее о

свернуть все

Метод симуляции

sbiosteadystate моделирует модель до тех пор, пока MaxStopTime. Во время симуляции функция аппроксимирует градиент, используя конечное дифференцирование (прямое различие) с течением времени, чтобы обнаружить установившееся состояние.

Алгебраический метод

sbiosteadystate пытается найти устойчивое состояние модели алгебраически путем нахождения корня v функции потока. Функция потока включает уравнения реакции, правила скорости и алгебраические уравнения, то есть v(X,P) = 0, где X и P являются неконстантными величинами и параметрами модели. Таким образом, обеспечивается сохранение массы, накладываемое уравнениями реакции.

Для нелинейных моделей, sbiosteadystate использование fmincon (Optimization Toolbox), чтобы получить начальное предположение для корня. Решение, найденное fmincon затем улучшается fsolve (Optimization Toolbox). Чтобы обнаружить сходимость, sbiosteadystate использует абсолютную погрешность ('AbsTol'). Другими словами, OptimalityTolerance, FunctionTolerance, и StepTolerance опции соответствующей оптимизационной функции устанавливаются в 'AbsTol' значение.

Для линейных моделей, sbiosteadystate находит корни функции потока, v путем решения линейной системы, заданной уравнениями реакции и сохранения. Для линейных моделей нет ни скорости, ни алгебраических уравнений.

Введенный в R2016a