В этом примере показано, как создать пользовательскую функцию и включить ее в симуляцию модели.
Этот пример принимает, что у вас есть практическое знание:
Приложение MATLAB®
Создание и сохранение программ MATLAB
Этот пример использует модель, описанную в Модели Дрожжей Гетеротримерный Цикл Белка G.
Эта таблица показывает, что реакции раньше моделировали цикл белка G и соответствующие параметры уровня (константы скорости) для каждой реакции. Для обратимых реакций параметр форвардного курса перечислен сначала.
Нет. | Имя | Reaction1 | Параметры уровня |
---|---|---|---|
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 gprotein
m1
объект модели появляется в рабочем пространстве 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)