Расширенная нотация SBGN в BioUML ================================= .. |equations| image:: /images/sbgn/equations.png .. |relations| image:: /images/sbgn/relations.png .. |constraint| image:: /images/sbgn/constraint.png .. |event| image:: /images/sbgn/event.png .. |function| image:: /images/sbgn/function.png .. |tabular| image:: /images/sbgn/tabular.png .. |folder| image:: /images/icons/folder.png .. |option| image:: /images/icons/option.png .. |edit| image:: /images/icons/edit.png SBGN нотация, используемая в BioUML, была расширена *дополнительными элементами* для полного представления моделей SBML. Графическая нотация SBGN совместима с SBML, хотя она больше полагается на пути, состоящих из сущностей и процессов между ними. Таким образом, она не охватывает каждый отдельный объект в моделях SBML. В частности, нет визуального представления «математических» объектов: уравнений, функций, событий и т.п. Дополнительной мотивацией для добавления новых элементов является тот факт, что существует множество математических объектов моделей биологических систем (в частности - физиологических моделей), которые не представлены сетью биохимических реакций, а содержат набор уравнений ОДУ. .. raw:: html
Таблица 1. Дополнительные элементы введенные BioUML к SBGN нотации
Название Обозначение Описание
Уравнения Уравнения Математические уравнения в модели:
- присваивание
- алгебраические уравнения
- дифференциальные уравнения
Зависимости Зависимости Зависимость между уравнениями генерируются автоматически и описывают, как переменная, рассчитанная в одном уравнении, влияет на переменную, рассчитанную в другом уравнении. Было выделено три типа:
- черная стрелка - неопределенная зависимость
- синяя стрелка – отрицательная зависимость
- красная стрелка - положительная зависимость
Событие Событие Дискретное событие, которое описывает мгновенные изменения переменных модели при выполнении определенного условия.
Например, изменение приема лекарств после определенного момента времени
Функция Функция Функция принимает значения аргументов и вычисляет выходные данные
Ограничение Ограничение Ограничение - это условие, которое проверяется во время моделирования.
Если условие нарушается, то либо выдается сообщение об ошибке, либо моделирование останавливается в зависимости от опций симулятора
Табличный элемент Табличный элемент Табличный элемент используется для расчета переменных модели на основе данных в указанной таблице.
Например, в этом случае столбец таблицы t соответствует времени, а столбец x_values содержит числовые данные для переменной модели x.
Существует два способа обработки табличных данных: сплайн-аппроксимация и кусочно-заданная функция
.. _equations: Уравнения и зависимости ----------------------- .. |alg_equation| image:: /images/sbgn/alg_equation.png :height: 30px .. |ode_equation| image:: /images/sbgn/ode.png :height: 50px .. |assignment_equation| image:: /images/sbgn/assignment_equation.png :height: 30px .. |math_equation| image:: /images/icons/math_equation.png В BioUML была введена графическая нотация для **уравнений**, которые включают следуюшие типы :ref:`(Рисунок 1) `: .. _Pic.1_6: .. figure:: images/sbgn/equations.png :width: 30% :alt: Уравнения :align: center Рисунок 1. Элемент уравнений в BioUML - **Обыкновенное дифференциальное уравнение** задает динамику некоторой переменной x зависимостью вида: |ode_equation| Вместе с начальными условиями эти уравнения формирует задачу Коши, которая может быть численно решена одним из методов, встроенных в BioUML. - **Алгебраическое уравнение** задает зависимости между переменными модели, которые должны быть выполнены в процессе расчета модели. В частности, это могут быть различные законы сохранения. Общий вид зависимости: |alg_equation| Формируют систему (в общем случае нелинейных) алгебраических уравнений. - **Правило присваивания** напрямую выражают значения одних переменных через другие уравнениями вида: |assignment_equation| Присваивания делятся на два типа: присваивания, которые выполняются один раз в начальный момент времени (начальное присваивание) и присваивания, выражающие зависимости, которые должны быть выполнены в течение всего времени функционирования модели. Поскольку присваивания первого типа просто задают начальные значения переменных системы, в дальнейшем будем говорить только о присваиваниях второго типа. Для того, чтобы *создать уравнение*, нажмите на иконку |math_equation|, расположенную на :ref:`панели инструментов ` и затем на диаграмму, где планируется разместить уравнение. После создания уравнения на диаграмме, нажмите на него правой кнопкой мыши и выберите |edit| Edit. В поле |option| Type выберите *тип уравнения*: обыкновенное дифференциальное уравнение (rate), алгебраическое уравнение (algebraic), правило присваивания (initial assignment) и скалярное (scalar). Для всех типов уравнений, кроме алгебраического, в поле :guilabel:`Variable` введите *имя переменной* (кроме алгебраических уравнений), для которой будет определена зависимость. В поле |option| Equation вводится *формула*. Добавленные уравнения отображаются в области :doc:`поля операций ` во вкладке :guilabel:`Model` на горизонтальной панели и в открывшемся окне на вертикальной панели во вкладке :guilabel:`Equations` :ref:`(Рисунок 2) `. В строке, соответствующей уравнению, возможно измененить переменную в столбце Variable, формулу в Equation и тип уравнения в Type, и так же можно добавить описание для уравнения в столбце Comment. .. _Pic.2_6: .. figure:: images/interface/equations.png :width: 100% :alt: Уравнения :align: center Рисунок 2. Вкладка Equations в поле операций **Зависимости** между уравнениями генерируются автоматически и описывают, как переменная, рассчитанная в одном уравнении, влияет на переменную, рассчитанную в другом уравнении. Существует три типа зависимостей: .. figure:: images/sbgn/relations.png :width: 30% :alt: Зависимости :align: center Например, заданы два уравнения, где в 1-ом уравнении, переменная v2 влияет на значение переменной v1: v1 = f1(v2, ...) v2 = f2(x, y, z) Тогда переменные v2 и в v1 связаны: - положительной связью, если увеличение v2 вызывает увеличение v1; - отрицательной связью, если увеличение v2 вызывает уменьшение v1; - неопределенной связью – изменение v2 не влияет на v1, при фиксированных остальных значениях и заданных начальных значениях всей модели. .. figure:: images/diagrams/arterial_model.png :width: 100% :alt: Уравнения :align: center Рисунок 3. Модель артериальной системы, состоящей на основе уравнений и зависимостей между ними .. _event: Событие ------- .. |event_icon| image:: /images/icons/math_event.png **Событие** заключается в скачкообразном изменении значений переменных модели при выполнении определенного условия (например, в определенный момент времени или при заданном соотношении между переменными) :ref:`(Рисунок 4) `. .. _Pic.4_6: .. figure:: /images/sbgn/event.png :width: 20% :alt: Событие :align: center Рисунок 4. Элемент события в BioUML Чтобы *добавить событие* нажмите на иконку |event_icon|, расположенную на :ref:`панели инструментов ` и затем на диаграмму, где планируется разместить событие. После создания события, нажмите на него правой кнопкой мыши и выберите поле |edit| Edit. В опциях |folder| Role в поле |option| Trigger устанавливается *триггер* - условие для запуска события. В поле |option| Delay задается *время*, через которое происходит выполнение события. *Приоритет* указывает на порядок, в котором должны быть выполнены события в том случае, если их времена выполнения совпадают, и указывается в поле |option| Priority. В опциях |folder| Assignments в полях |option| Variable и |option| Expression указывается переменная, к которой будет применено событие и формула, соответственно. .. note:: дополнить про индикаторы (Use trigger time values и др). примеры использования событий Добавленные события отображаются в области :doc:`поля операций ` во вкладке :guilabel:`Model` на горизонтальной панели и в открывшемся окне на вертикальной панели во вкладке :guilabel:`Events` :ref:`(Рисунок 5) `. .. _Pic.5_6: .. figure:: /images/interface/events.png :width: 100% :alt: Событие :align: center Рисунок 5. Вкладка Events в поле операций .. _function: Функция ------- .. |function_icon| image:: /images/icons/math_function.png **Функция** может использоваться в уравнениях или реакциях модели :ref:`(Рисунок 6) `. .. _Pic.6_6: .. figure:: /images/sbgn/function.png :width: 20% :alt: Функция :align: center Рисунок 6. Элемент функции в BioUML Для *добавления функции* нажмите иконку |function_icon|, расположенную на :ref:`панели инструментов ` и затем на диаграмму, где планируется разместить функцию. После создания функции, нажмите на нее правой кнопкой мыши и выберите поле |edit| Edit. В опциях |folder| Role в поле |option| Right Hand Side введите *правую часть уравнения*. В поле |option| Formula вводится функция, соответствующая следующему образцу: ``function function_name(a1, ..., an) = Right Hand Side``, где function_name - заданный *идентификатор функции* в поле |option| Name; a1, ... , an - *аргументы функции*. .. note:: При использовании функции в уравнении или реакции пишется только левая часть функции, включающая ее название и аргументы. Добавленные функции отображаются в области :doc:`поля операций ` во вкладке :guilabel:`Model` на горизонтальной панели и в открывшемся окне на вертикальной панели во вкладке :guilabel:`Functions` :ref:`(Рисунок 7) `. .. _Pic.7_6: .. figure:: /images/interface/function.png :width: 100% :alt: Функция :align: center Рисунок 7. Вкладка Functions в поле операций .. _constraint: Ограничение ----------- .. |math_сonstraint| image:: /images/icons/math_constraint.png **Ограничение** - это условие, которое проверяется во время моделирования. Если условие нарушается, то либо выдается сообщение об ошибке, либо моделирование останавливается в зависимости от опций симулятора :ref:`(Рисунок 8) `. .. _Pic.8_6: .. figure:: /images/sbgn/constraint.png :width: 20% :alt: Элемент ограничения в BioUML :align: center Рисунок 8. Элемент ограничения в BioUML Для *добавления ограничения* нажмите иконку |math_сonstraint|, расположенную на :ref:`панели инструментов ` и затем на диаграмму, где планируется разместить ограничение. .. note:: добавить описание для ограничений, их использование и опции. Добавленные ограничения отображаются в области :doc:`поля операций ` во вкладке :guilabel:`Model` на горизонтальной панели и в открывшемся окне на вертикальной панели во вкладке :guilabel:`Сonstraints` :ref:`(Рисунок 9) `. .. _Pic.9_6: .. figure:: /images/interface/constraints.png :width: 100% :alt: Вкладка Сonstraints в поле операций :align: center Рисунок 9. Вкладка Сonstraints в поле операций .. _table: Табличный элемент ----------------- .. |table| image:: /images/icons/table.png Чтобы *добавить табличный элемент* нажмите иконку |table|, расположенную на :ref:`панели инструментов ` и затем на диаграмму, где планируется разместить таблицу. .. note:: добавить описание для табличного элемента, их использование и опции.