В этом примере показано, как создать пользовательскую функцию и включить ее в симуляцию модели.
Этот пример принимает, что у вас есть практическое знание:
MATLAB® приложение
Создание и сохранение программ MATLAB
Этот пример использует модель, описанную в Модели Дрожжей Гетеротримерный Цикл Белка G.
Эта таблица показывает, что реакции раньше моделировали цикл белка G и соответствующие параметры уровня (константы скорости) для каждой реакции. Для обратимых реакций параметр форвардного курса перечислен сначала.
| Нет. | Имя | Реакция1 | Параметры уровня |
|---|---|---|---|
| 1 | Взаимодействие лиганда приемника | L + R <-> RL | kRL, kRLm |
| 2 | Гетеротримерное формирование белка G | Gd + Gbg -> G | kG1 |
| 3 | G активация белка | RL + G -> Ga + Gbg + RL | kGa |
| 4 | Синтез приемника и ухудшение | R <-> null | kRdo, kRs |
| 5 | Ухудшение лиганда приемника | RL -> null | kRD1 |
| 6 | G деактивация белка | Ga -> Gd | kGd |
| 1 Легенда разновидностей: L = лиганд (альфа-фактор), R = факторный альфой приемник, Gd = неактивный G-alpha-GDP, Gbg = свободные уровни комплекса G-beta:G-gamma, G = неактивный комплекс Gbg:Gd, Ga = активный G-alpha-GTP | |||
Этот пример принимает что:
Ингибитор (Inhib разновидности), замедляет деактивацию активного белка G (реакция 6 выше, Ga –> Gd).
Изменение суммы ингибитора (Inhib разновидности), задан в пользовательской функции, inhibvalex.
Ингибитор (Inhib разновидности), влияет на реакцию путем изменения суммы параметра уровня kGd.
В этом примере показано, как создать и вызвать пользовательскую функцию в SimBiology® выражение. А именно, это показывает, как использовать пользовательскую функцию в выражении правила.
Можно использовать пользовательские функции в:
Выражения скорости реакции (ReactionRate свойство
Управляйте выражениями (Rule свойство
Выражения события (EventFcns свойство или Trigger свойство
Требования для использования пользовательских функций в выражениях SimBiology:
Создайте пользовательскую функцию. Для получения дополнительной информации смотрите function.
Измените текущую папку в папку, содержащую ваш пользовательский файл MATLAB. Сделайте это при помощи cd команда или при помощи поля Current Folder на панели инструментов рабочего стола MATLAB. В качестве альтернативы добавьте папку, содержащую ваш файл к пути поиска файлов. Сделайте это при помощи addpath команда или видит Папки Изменения на Пути поиска файлов.
Вызовите пользовательскую функцию в реакции SimBiology, правиле или выражении события.
Совет
Если ваше выражение правила или скорости реакции не непрерывно и дифференцируемо, смотрите Используя События, чтобы Обратиться к Разрывам в Выражениях Правила и Скорости реакции прежде, чем симулировать вашу модель.
Следующая процедура создает пользовательскую функцию, inhibvalex, который позволяет вам задать, как сумма ингибитора изменяется в зависимости от времени. Входные параметры время, начальная сумма ингибитора и параметр, который управляет суммой ингибитора. Выход функции является суммой ингибитора.
В рабочем столе MATLAB выберите File > New > Script, чтобы открыть редактор MATLAB.
Скопируйте и вставьте следующее объявление функции:
% inhibvalex.m function Cp = inhibvalex(t, Cpo, kel) % This function takes the input arguments t, Cpo, and kel % and returns the value of the inhibitor Cp. % You can later specify the input arguments in a % SimBiology rule expression. % For example in the rule expression, specify: % t as time (a keyword recognized as simulation time), % Cpo as a parameter that represents the initial amount of inhibitor, % and kel as a parameter that governs the amount of inhibitor. if t < 400 Cp = Cpo*exp(-kel*(t)); else Cp = Cpo*exp(-kel*(t-400)); end
Сохраните файл (назовите файл inhibvalex.m) в директории, которая находится на пути поиска файлов MATLAB, или к директории, к которой можно получить доступ.
Если местоположение файла не находится на пути поиска файлов MATLAB, измените рабочую директорию в расположение файла.
Загрузите gprotein проект в качестве примера, который включает переменную m1, объект модели:
sbioloadproject gproteinm1 объект модели появляется в рабочем пространстве MATLAB.
Следующая процедура создает выражение правила, которое вызывает пользовательскую функцию, inhibvalex, и задает эти три входных значения к этой функции.
Добавьте повторное правило присвоения в модель, которая задает эти три входных значения к пользовательской функции, inhibvalex:
rule1 = addrule(m1, 'Inhib = inhibvalex(time, Cpo, Kel)',... 'repeatedAssignment');
time вход является ключевым словом SimBiology, распознанным временем симуляции
Создайте эти два параметра, используемые rule1 управляйте и присвойте значения им:
p1 = addparameter(m1, 'Cpo', 250); p2 = addparameter(m1, 'Kel', 0.01);
Создайте разновидности, используемые rule1 правило:
s1 = addspecies(m1.Compartments, 'Inhib');Значение параметра уровня kGd затронут суммой ингибитора, существующего в системе. Добавьте правило в модель, чтобы описать это действие, но сначала изменить ConstantValue свойство параметра kGd так, чтобы это могло варьироваться правилом.
Измените ConstantValue свойство kGd параметр к false.
p3 = sbioselect(m1, 'Type', 'parameter', 'Name', 'kGd'); p3.ConstantValue = false;
Добавьте повторное правило присвоения в модель, чтобы задать как kGd параметр затронут Inhib разновидности.
rule2 = addrule(m1, 'kGd = 1/Inhib', 'repeatedAssignment');
Пользовательская функция, inhibvalex, вводит разрыв в модели когда время = 400. Чтобы гарантировать точные результаты симуляции, добавьте событие в модель, чтобы сбросить решатель во время разрыва. Установите событие инициировать во время разрыва (время = 400). Событие не должно изменить модель, поэтому создать функцию события, которая умножает значение разновидностей на 1.
addevent(m1, 'time>=400', 'G=1*G');
Сконфигурируйте настройки симуляции (configset object) для m1 объект модели, чтобы регистрировать все состояния во время симуляции.
cs = getconfigset(m1);
cs.RuntimeOptions.StatesToLog = 'all';
Симулируйте модель.
simDataObj = sbiosimulate(m1);
Постройте график результатов.
sbioplot(simDataObj);

График не показывает разновидности причитающихся процентов к широкому спектру в разновидностях, amounts/concentrations.
Постройте только разновидности интереса. Ga.
GaSimDataObj = selectbyname(simDataObj,'Ga');
sbioplot(GaSimDataObj);

Заметьте изменение в профиле разновидностей Ga во время = 400 секунды (время симуляции). Это - время, когда сумма ингибитора изменяется, чтобы отразить пересложение ингибитора к модели.
Постройте только ингибитор (Inhib разновидности).
InhibSimDataObj = selectbyname(simDataObj,'Inhib');
sbioplot(InhibSimDataObj)
