Моделирование биологических систем с использованием BioUML Biosoft Лабоработория Биоинформатики КТИ ВТ СО РАН
План доклада Актуальность задачи BioUML: используемые технологии, архитектура, обзор основных модулей системы Моделирование биологических систем –математические модели –использование MATLAB/Simulink (не подходит) –визуальный синтаксис для моделирования биологических систем и принципы автоматической генерации математических моделей –иерархические модели
Организм Органы Ткани Клетки Метаболические путиГенные сети Химически вещества (~10 000) Белки и их комплексы (~ ) Гены (~40 000) Базы данных (более 500 баз данных, общий объем сотни гигабайт)
Актуальность задачи С завершением расшифровки многих геномов, включая геном человека, исследователи переходят к следующей стадии изучения, как работают живые (биологические) системы. Для этого необходимо интегрированные компьютерные системы, позволяющие решать широкий круг задач, включая: поиск информации в базах данных; формальное описание структуры биологических систем и их компонентов; построение математических моделей расчет моделей.
BioUML BioUML - Biological Unified Modeling Language – это интегрированная расширяемая среда для визуального моделирования биологических систем.
Используемые технологии Java – язык реализации системы BioUML ru.biosoft.access - библиотека для доступа и объектно-ориентированного представления информации из гетерогенных баз данных BeanExplorer ( компонетная технология (расширения JavaBeans) для автоматической генерации пользовательских интерфейсов и публикации данных в различном виде. MATLAB – используется для численного решения систем ОДУ и графического представления результатов.
Архитектура
Мета модель Мета модель определяет уровень абстракции для описания моделей биологических систем. Это описание состоит из 2 частей: 1. Логической структура системы, представляемая в виде кластеризованного графа. 2. Математическая модель системы, где с каждым элементом графа ассоциирована некоторая роль: вершины графа выступают в качестве переменных, а ребра графов – в качестве уравнений. DiagramElement kernel:DataElement title:String view:View role:Role Node location:Point image:Image Edge in:Node out:Node Compartment nodes:Node[] edges:Edge[] Diagram type:DiagramType Role diagramElement Constant value:double Variable initilaValue:double Equation variable:Variable equation:String ExecutableModel variables:Variable[] constants:Constant[] MatlabODEModel generateModel():File[] Meta model Dynamics model n n n n
Концепция модуля Чтобы обеспечить интеграцию различных баз данных в среду BioUML, мы вводим концепцию модуля. Если воспользоваться метафорой, то BioUML можно представить как операционную систему, а модули тогда будут являться отдельными программами. Как правило, модуль создается для отдельной базы данных и определяет способ представления информации из этой базы данных в виде объектов языка Java. Модуль также может содержать специфичные для этой базы данных типы диаграмм, представляемые в виде подклассов класса DiagramType и способы их графического отображения, задаваемые как расширения DiagramViewBuilder.
Модули баз данных На данный момент созданы модули для следующих баз данных: GeneNet ( база данных по генным сетям (ИЦиГ, Новосибирск); KEGG/Ligand ( Kyoto Encyclopedia of Genes and Genomes, база данных метаболических путей (Kyoto University, Japan); TRANSPATH ( база данных по путям передачи сигнала в клетке (Biobase GmbH, Germany).
BioUML viewer
BioUML editor
Универсальная система поиска информации по базам данных
Система поиска взаимодействующих друг с другом компонентов биологических систем
BioUML modeler система для визуального моделирования биологических систем
Пример: двухкамерная фармокинетическая модель В первую камеру (кровь) одномоментно были введены 100 единиц некоторого лекарственного вещества А. Из крови вещество А лекарство может переноситься во вторую камеру (печень), где происходит его расщепление некоторым ферментом Е с образованием продукта метаболизма B.
Пример: двухкамерную фармокинетическую модель Предположим, что скорость переноса лекарственного вещества А из крови в печень пропорциональна его количеству в крови с константой k1, а скорость переноса из печени в кровь пропорциональна количеству A в печени с константой k2. Концентрация фермента E в печени неизменна и равна E0, а динамика ферментативной реакции описывается уравнением Михаэлиса-Ментен с константой Km.
Математическая модель для описания динамики двухкамерной фармокинетической модели.
%constants declaration global k_1 k_2 k_3 k_E0 k_Km v_blood v_liver k_1 = 0.1 k_2 = 0.05 k_3 = 0.01 k_E0 = 1.0 k_Km = 0.1 v_blood = v_liver = %Model variables and their initial values y = [] y(1) = % y(1) - $blood.A y(2) = 0.0 % y(2) - $liver.A y(3) = 0.0 % y(3) - $liver.B y(4) = 1.0 % y(4) - $liver.E %numeric equation solving [t,y] = ode23('pharmo_simple_dy',[0 200],y) %plot the solver output plot(t, y(:,1),'-',t, y(:,2),'-',t, y(:,3),'-',t, y(:,4),'-') title ('Solving pharmo_simple problem') ylabel ('y(t)') xlabel ('x(t)') legend('$blood.A','$liver.A','$liver.B','$liver.E'); function dy = pharmo_simple_dy(t, y) % Calculates dy/dt for 'pharmo_simple' model. %constants declaration global k_1 k_2 k_3 k_E0 k_Km v_blood v_liver % calculates dy/dt for 'pharmo_simple' model dy = [ -k_1*y(1)+k_2*y(2) -k_3*k_E0*y(2)/(k_Km+y(2)/v_liver)-k_2*y(2)+k_1*y(1) k_3*k_E0*y(2)/(k_Km+y(2)/v_liver) 0]
Визуальная модель фармокинетической модели, построенная с использованием MATLAB/Simulink
Визуальный синтаксис для моделирования биологических систем на молекулярно- клеточном уровне A B eq1 eq2 R1 C eq3 eq4 R2 Соответствующая ему математическая модель Пример описания двух последовательных химических реакций
В первую камеру (кровь) одномоментно были введены 100 единиц некоторого лекарственного вещества А. Из крови вещество А лекарство может переноситься во вторую камеру (печень) В печени происходит его расщепление ферментом Е с образованием продукта метаболизма B
скорость переноса лекарственного вещества А из крови в печень пропорциональна его количеству в крови с константой k1 скорость переноса из печени в кровь пропорциональна количеству A в печени с константой k2 Концентрация фермента E в печени неизменна Динамика ферментативной реакции описывается уравнением Михаэлиса- Ментен с константой Km
BioUML modeler Автоматически генерируемый текст функции для вычисления dy/dt для фармокинетической модели. function dy = pharmo_simple_dy(t, y) % Calculates dy/dt for 'pharmo_simple' model. %constants declaration global k_1 k_2 k_3 k_E0 k_Km v_blood v_liver % calculates dy/dt for 'pharmo_simple' model dy = [ -k_1*y(1)+k_2*y(2) -k_3*k_E0*y(2)/(k_Km+y(2)/v_liver)-k_2*y(2)+k_1*y(1) k_3*k_E0*y(2)/(k_Km+y(2)/v_liver) 0]
BioUML modeler %constants declaration global k_1 k_2 k_3 k_E0 k_Km v_blood v_liver k_1 = 0.1 k_2 = 0.05 k_3 = 0.01 k_E0 = 1.0 k_Km = 0.1 v_blood = v_liver = %Model variables and their initial values y = [] y(1) = % y(1) - $blood.A y(2) = 0.0 % y(2) - $liver.A y(3) = 0.0 % y(3) - $liver.B y(4) = 1.0 % y(4) - $liver.E %numeric equation solving [t,y] = ode23('pharmo_simple_dy',[0 200],y) %plot the solver output plot(t, y(:,1),'-',t, y(:,2),'-',t, y(:,3),'-',t, y(:,4),'-') title ('Solving pharmo_simple problem') ylabel ('y(t)') xlabel ('x(t)') legend('$blood.A','$liver.A','$liver.B','$liver.E'); Автоматически генерируемый файл для численного расчета и графического представления результатов расчета.
Результаты численного расчета фармокинетической модели
Добавление стандартных типов реакций A B eq1 eq2 R1 мономолекулярная реакция k = 0.05 C eq3 eq4 R2 мономолекулярная реакция k = При использовании стандартных типов реакций пользователь должен указать: - тип (механизм) реакции; - роли компонентов (реагент, продукт реакции, катализатор и т.д.); - значения констант реакции. Исходя из этой информации соответствующие уравнения будут построены автоматически компонентом реакция
Подмодель: Иерархические модели A B eq1 eq2 R1 мономолекулярная реакция k = 0.05 C eq3 eq4 R2 мономолекулярная реакция k = Модель: A 5050 C 5050 A С подмодель A, C При использовании подмоделей пользователь должен указать соответствие между переменными модели и подмодели.
Иерархические модели: основные принципы Любая модель самодостаточна Любая модель может быть использована в качестве подмодели. Для этого пользователь должен указать соответствие между переменными модели и подмодели. При использовании одной и той же подмодели в разных моделях, набор согласуемых переменных может быть различен. Начальные значения переменных берутся из модели самого высокого уровня, если они в ней не определены – тогда из соответствующих подмоделей.
Система BioUML свободно доступна по адресу: