exponenta event banner

sbiosteadystate

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

Синтаксис

[success, variant_out] = sbiosteadystate(model)
[success, variant_out] = sbiosteadystate(model, variant_in)
[success, variant_out] = sbiosteadystate(model, variant_in, scheduleDose)
[success, variant_out, model_out] = sbiosteadystate(model,___)
[success, variant_out, model_out, exitInfo] = sbiosteadystate(model,___)
[___] = sbiosteadystate(___, Name,Value)

Описание

пример

[success, variant_out] = sbiosteadystate(model) попытки найти устойчивое состояние модели SimBiology®, model. Функция возвращает success, который является true, если устойчивое состояние было найдено, и variant object SimBiology, 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, содержащий модель, m1. Модель имеет пять реакций и четыре разновидности.

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

Отобразите образцовые реакции.

m1.Reactions
   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)
   SimBiology Species Array

   Index:    Compartment:    Name:          InitialAmount:    InitialAmountUnits:
   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

   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.

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

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

   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


   SimBiology Model - cell 

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

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

m2.Species
   SimBiology Species Array

   Index:    Compartment:    Name:          InitialAmount:    InitialAmountUnits:
   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, заданная как model object SimBiology.

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

Введенный в R2016a