Основы модульного моделирования
Модульный подход к моделированию биологических систем в последние годы активно развивается. Он подразумевает декомпозицию системы на подсистемы, каждая из которых может быть смоделирована и проверена независимо. Модель всей системы задается как совокупность моделей подсистем (модулей). Этот подход делает структуру сложных иерархических моделей более явной за счет выделения функциональных единиц и их взаимосвязей. Он также позволяет включать в сложные модели модели, разработанные разными авторами, фокусируясь на разных частях системы и используя разные масштабы и даже формализмы.
В платформе BioUML диаграмма, описывающая модульную модель, содержит соединенные между собой элементы – модули, каждый из которых ссылается на другую диаграмму (возможно, тоже модульную) в платформе. Модули взаимодействуют между собой за счет передачи сигналов между ними, которая осуществляется засчет портов.
В зависимости от направления передачи сигнала выделяется три типа портов: вход, выход и контакт (Рисунок 1).
Вход (input) - значение переменной подается на вход модуля и не может быть изменено модулем;
Выход (output) - значение переменной полностью определяется (вычисляется) внутри модуля и подается на вход другим модулям;
Контакт (contact) - переменная, значение которой могут изменять оба модуля.
Рисунок 1. Концепция модуля
Существует три типа доступности портов, они могут быть приватными, публичными и вынесенными:
Приватный порт (private) используется для изменения поведения модулей.
Публичный порт (public) используется для представления модульной модели в виде модцля и включения ее в другую модельную модель.
Вынесенный порт (propagated)…
Примечание
добавить что такое вынесенный порт и возможно дать объяснение попроще для приватного и публичного
Между выходом и входом устанавливается направленная связь (directed), означающая передачу сигнала из одного модуля в другой. Между контактами – ненаправленная связь (undirected), обозначающая обмен сигналами.
| Название | Обозначение | Описание |
|---|---|---|
| Подмодель | ![]() |
Модуль, содержащий математическую модель: модульная модель; SBML (SBML-SBGN) модель. |
| Переключатель | ![]() |
Модуль, в зависимости от условия, подающий на выход один из двух сигналов, поступающих на вход. |
| Константа | ![]() |
Модуль, подающий на выход константное значение. |
| Порты | ||
| Входной порт | ![]() |
Порт, определяющий входную переменную подмодели. |
| Выходной порт | ![]() |
Порт, определяющий выходную переменную подмодели. |
| Контактный порт | ![]() |
Порт, определяющий разделяемую переменную подмодели. |
| Шина | ![]() |
Переменная модульной модели. Несколько шин могут соответствовать одной переменной. |
| Связи | ||
| Направленная связь | ![]() |
Связь, означающая передачу сигнала из одного модуля в другой. |
| Ненаправленная связь | ![]() |
Связь, означающая обмен сигналами между модулями. |
Создание модульной модели
Для создания модульной модели создайте диаграмму следующего типа: композиционную или композиционную модель SBML в нотации SBGN. Однако, в модели второго типа будут отсутствовать дополнительные элементы, добавленные в BioUML.
Добавление модулей
В открывшейся диаграмме подмодель добавляется путем нажатия на иконку
, расположенной на панели инструментов.
Документ диаграммы подмодели выбирается нажатием на поле
Diagram и последующего выбора файла в открывшемся окне,
либо нажатием модели в области репозитория и переносом его в поле
Diagram (Рисунок 2).
Примечание
При работе с модульной моделью, включающей подмодели, при нажатии на подмодель, в отдельном окне нижней части рабочего пространства, будет отображаться ее диаграмма.
Рисунок 2. Добавление подмодели
Модулю переключателя соответствует иконка
, а константе -
, для которой в поле
Value задается значение. Переключатель и константа
добавляются на диаграмму таким же образом на диаграмму, как и подмодель.
Примечание
нужно добавить что-то еще и про переключатель, потому что совсем непонятно как он используется, и какой сигнал он подает на вход из двух. как и должно быть более детальное объяснение про использование констант.
Созданные подмодели отображаются в области поля операций во вкладке Model на горизонтальной панели и в открывшемся окне на вертикальной панели во вкладке Subdiagrams (Рисунок 3). В стобце Title указывается заголовок, отображающийся на графическом отображении подмодели. Столбец Diagram path содержит путь к диаграмме подмодели.
Рисунок 3. Вкладка Subdiagrams в поле операций
Создание портов
Чтобы создать порт перейдите в документ подмодели и нажмите на иконку
. В открывшемся окне в поле
Access type выберите
тип доступности порта, в поле
Port type - тип порта и в поле
Tittle - заголовок порта, который будет отображаться на диаграмме.
Из выпадаюшего списка в поле
Variable name укажите для какого ранее созданного элемента диаграммы будет создан порт
(Рисунок 4).
Рисунок 4. Добавление порта в подмодели
В подмодели порт, созданный для сущности (переменной), будет автоматически соединен с ней ребром, а в случае создания порта для параметра, порт не будет связан с какими-либо элементами диаграммы. Созданный порт в диаграмме, соответствующей подмодели, будет отображен на модульной диаграмме - внутри подмодели будут добавлены обозначения портов, что изображено на рисунке, описывающем концепцию модуля.
Примечание
Для того чтобы изменения, сделанные в подмодели отобразились на модульной диаграмме, сохраните диаграмму и затем в документе модульной модели нажмите на иконку
, расположенную на общей панели управления.
Чтобы добавить порт на верхнем уровне - в модульной диаграмме, для начала необходимо создать новый параметр. Далее, выберите соответсвуюший тип порта на панели инструментов. Входному порту соответствует иконка
,
выходному порту -
и контактному порту -
. В открывщемся окне в поле
Access Type выберите приватный тип доступности порта (private). Затем в полях
Module и
Base port name выберите подмодель и соответствующий в ней порт, а в поле
Variable name в выпадающем списке выберите параметр, для которого будет создан порт
(Рисунок 5). Связь будет создана автоматически.
Рисунок 5. Добавление приватного порта на верхнем уровне модульной модели
Для установления связи между входным и выходным портом в модульной модели, при ранее созданных портах в диаграммах подмодулей, нажмите на иконку
, означающей направленную
связь. После этого последовательно нажмите на входной и затем на выходной порт, расположенные внутри подмодулей. Связь между контактными портами создается путем нажатия на иконку
, обозначающей ненаправленную связь, и соединения контактных портов.
Созданные порты и связи отображаются в области поля операций во вкладке Model на горизонтальной панели и в открывшемся окне на вертикальной панели во вкладках Ports (Рисунок 6) и Connections (Рисунок 7), соответственно.
Рисунок 6. Вкладка Ports в поле операций
Рисунок 7. Вкладка Connections в поле операций
Создание шин
Шина является вспомогательным элементом на модульных диаграммах являются, позволяющих устанавливать связи сразу между несколькими модулями дистанционно. С одной шиной могут быть установлены связи только одного типа (направленные или ненаправленные), также не может быть установлено несколько входящих направленных связей.
Рисунок 8. Пример использования шин
Для добавления шины на диаграмму, нажмите на иконку
, расположенную на панели инструментов.
Опционально можно выбрать цвет для графического отображения шины в
сolor (Рисунок 9). Установление связи
между шиной и портом осуществуляется тем же образом, как было описано в секции «Cоздание портов».
Рисунок 9. Добавление шины
Созданные шины отображаются в области поля операций во вкладке Model на горизонтальной панели и в открывшемся окне на вертикальной панели во вкладке Buses (Рисунок 10).
Рисунок 10. Вкладка Buses в поле операций








