exponenta event banner

Создание и моделирование модели с помощью пользовательской функции

В этом примере показано, как создать пользовательскую функцию и включить ее в моделирование модели.

Обзор

Предпосылки для примера

В этом примере предполагается, что у вас есть рабочие знания по следующим вопросам:

  • Приложение MATLAB ®

  • Создание и сохранение программ MATLAB

Сведения о примерной модели

В этом примере используется модель, описанная в Model of the Yeast Heterotrimeric G Protein Cycle.

В этой таблице показаны реакции, используемые для моделирования цикла G-белка, и соответствующие параметры скорости (константы скорости) для каждой реакции. Для обратимых реакций параметр прямой скорости перечисляется первым.

Нет.ИмяReaction1Параметры скорости
1Взаимодействие рецептор-лигандL + R <-> RLkRL, kRLm
2Образование гетеротримерного G-белкаGd + Gbg -> GkG1
3Активация G-белкаRL + G -> Ga + Gbg + RLkGa
4Синтез и деградация рецепторовR <-> nullkRdo, kRs
5Деградация рецептора-лигандаRL -> nullkRD1
6Инактивация G-белкаGa -> GdkGd
1 Легенда видов: L = лиганд (альфа-фактор), R = рецептор альфа-фактора, Gd = неактивный G-альфа-ВВП, Gbg = свободные уровни G-бета: G-гамма комплекс, G = неактивный Gbg: Gd комплекс, Ga = активный G-альфа-GTP

Допущения примера

В этом примере предполагается, что:

  • Ингибитор (Inhib вид) замедляет инактивацию активного G-белка (реакция 6 выше, Ga –> Gd).

  • Изменение количества ингибитора (Inhib species) определяется в пользовательской функции, inhibvalex.

  • Ингибитор (Inhib species) влияет на реакцию, изменяя величину параметра скорости kGd.

О примере

В этом примере показано, как создать и вызвать пользовательскую функцию в выражении SimBiology ®. В частности, показано, как использовать пользовательскую функцию в выражении правила .

Сведения об использовании пользовательских функций в выражениях SimBiology

Пользовательские функции можно использовать в:

  • Выражения скорости реакции (ReactionRate собственность)

  • Выражения правил (Rule собственность)

  • Выражения событий (EventFcns собственность или Trigger собственность)

Требования к использованию пользовательских функций в выражениях SimBiology:

  • Создайте пользовательскую функцию. Дополнительные сведения см. в разделе function.

  • Измените текущую папку на папку, содержащую пользовательский файл MATLAB. Для этого используйте cd или с помощью поля Current Folder на панели инструментов рабочего стола MATLAB. Либо добавьте папку, содержащую файл, в путь поиска. Для этого используйте addpath или см. раздел Изменение папок в пути поиска.

  • Вызовите пользовательскую функцию в выражении реакции, правила или события SimBiology.

Совет

Если выражение правила или скорости реакции не является непрерывным и дифференцируемым, перед моделированием модели см. раздел Использование событий для устранения прерываний в выражениях скорости реакции и правила.

Создание пользовательской функции

Следующая процедура создает пользовательскую функцию, inhibvalex, что позволяет указать, как количество ингибитора изменяется с течением времени. Входными данными являются время, начальное количество ингибитора и параметр, который регулирует количество ингибитора. Выходом функции является количество ингибитора.

  1. На рабочем столе MATLAB выберите «Файл» > «Создать» > «Сценарий», чтобы открыть редактор MATLAB.

  2. Скопируйте и вставьте следующее объявление функции:

    % 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
  3. Сохраните файл (присвойте ему имя inhibvalex.m) в каталоге, который находится в пути поиска MATLAB, или в каталоге, к которому можно получить доступ.

  4. Если местоположение файла отсутствует в пути поиска MATLAB, измените рабочую папку на местоположение файла.

Загрузить пример модели

Загрузить gprotein пример проекта, который включает переменную m1, объект модели:

sbioloadproject gprotein

m1 объект модели появляется в рабочей области MATLAB.

Добавление пользовательской функции в пример модели

Следующая процедура создает выражение правила, вызывающее пользовательскую функцию. inhibvalexи определяет три входных значения для этой функции.

  1. Добавьте в модель повторяющееся правило назначения, определяющее три входных значения пользовательской функции. inhibvalex:

    rule1 = addrule(m1, 'Inhib = inhibvalex(time, Cpo, Kel)',...
                    'repeatedAssignment');

    time ввод является ключевым словом SimBiology, распознаваемым как время моделирования

  2. Создайте два параметра, используемые rule1 и назначьте им значения:

    p1 = addparameter(m1, 'Cpo', 250);
    p2 = addparameter(m1, 'Kel', 0.01);
    
  3. Создайте виды, используемые rule1 правило:

    s1 = addspecies(m1.Compartments, 'Inhib');

Определение правила для изменения значения параметра

Значение параметра скорости kGd влияет количество ингибитора, присутствующего в системе. Добавьте в модель правило, описывающее это действие, но сначала измените ConstantValue свойство параметра kGd чтобы его можно было варьировать по правилу.

  1. Изменить ConstantValue имущества kGd параметр для false.

    p3 = sbioselect(m1, 'Type', 'parameter', 'Name', 'kGd');
    p3.ConstantValue = false;
  2. Добавление повторяющегося правила назначения в модель для определения способа kGd на параметр влияет Inhib виды.

    rule2 = addrule(m1, 'kGd = 1/Inhib', 'repeatedAssignment');

Добавление события для сброса решателя с разрывом

Пользовательская функция, inhibvalex, вводит разрыв в модели, когда время = 400. Чтобы обеспечить точные результаты моделирования, добавьте в модель событие, чтобы сбросить решатель во время разрыва. Установите событие для запуска в момент разрыва (время = 400). Событие не нуждается в изменении модели, поэтому создайте функцию события, которая умножает значение вида на 1.

addevent(m1, 'time>=400', 'G=1*G');

Моделирование измененной модели

  1. Настройка параметров моделирования (configset object) для m1 объект модели для регистрации всех состояний во время моделирования.

    cs = getconfigset(m1);
    cs.RuntimeOptions.StatesToLog = 'all';
    
  2. Моделирование модели.

    simDataObj = sbiosimulate(m1);
  3. Постройте график результатов.

    sbioplot(simDataObj);
    

    На графике не показаны интересующие виды из-за широкого диапазона видовых количеств/концентраций.

  4. Постройте только интересующий вид. Ga.

    GaSimDataObj = selectbyname(simDataObj,'Ga');
    sbioplot(GaSimDataObj);
    

    Обратите внимание на изменение профиля видов Ga в момент времени = 400 секунды (время моделирования). Это время, когда количество ингибитора изменяется, чтобы отразить повторное добавление ингибитора к модели.

  5. Постройте график только для ингибитора (Inhib виды).

    InhibSimDataObj = selectbyname(simDataObj,'Inhib');
    sbioplot(InhibSimDataObj)
    

См. также

| |

Связанные темы