Моделирование биологических систем с использованием BioUML Biosoft.Ru Лабоработория Биоинформатики КТИ ВТ СО РАН http://www.biosoft.ru План доклада • Актуальность задачи • BioUML: используемые технологии, архитектура, обзор основных модулей системы • Моделирование биологических систем – математические модели – использование MATLAB/Simulink (не подходит) – визуальный синтаксис для моделирования биологических систем и принципы автоматической генерации математических моделей – иерархические модели Организм Органы Ткани Клетки Метаболические пути Химически вещества (~10 000) Генные сети Белки и их комплексы (~ 100 000) Гены (~40 000) Базы данных (более 500 баз данных, общий объем сотни гигабайт) Актуальность задачи С завершением расшифровки многих геномов, включая геном человека, исследователи переходят к следующей стадии изучения, как работают живые (биологические) системы. Для этого необходимо интегрированные компьютерные системы, позволяющие решать широкий круг задач, включая: • поиск информации в базах данных; • формальное описание структуры биологических систем и их компонентов; • построение математических моделей • расчет моделей. BioUML BioUML - Biological Unified Modeling Language – это интегрированная расширяемая среда для визуального моделирования биологических систем. Используемые технологии • Java – язык реализации системы BioUML • ru.biosoft.access - библиотека для доступа и объектно-ориентированного представления информации из гетерогенных баз данных • BeanExplorer (http://www.beanexplorer.com) компонетная технология (расширения JavaBeans) для автоматической генерации пользовательских интерфейсов и публикации данных в различном виде. • MATLAB – используется для численного решения систем ОДУ и графического представления результатов. Архитектура Database search engine Formalized description and graphic notation for biological pathways Database module Data types Database - compartment - cell - molecule - gene - RNA - protein - reaction - relation Module type (Database adapter) - data types - data types meta information - transformers - graph query system Meta model kernel:DataElement title:String view:View role:Role Role - pathway - pathway simulation - generalized pathway Diagram type (Diagram adapter) Node DiagramElement Diagram types Compartment location:Point image:Image n nodes:Node[] edges:Edge[] - diagram view builder - diagram semantic controller n Edge Diagram in:Node out:Node type:DiagramType Diagram viewer/editor Graph layout & search engine diagramElement Dynamics model Equation Modeling tools Variable MATLAB ExecutableModel n variable:Variable equation:String initilaValue:double Constant value:double n variables:Variable[] constants:Constant[] XML MatlabODEModel generateModel():File[] XSLT HTML publisher Мета модель Мета модель определяет уровень абстракции для описания моделей биологических систем. Это описание состоит из 2 частей: 1. Логической структура системы, представляемая в виде кластеризованного графа. Meta model Node DiagramElement kernel:DataElement title:String view:View role:Role Role Compartment location:Point image:Image n nodes:Node[] edges:Edge[] n Edge Diagram in:Node out:Node type:DiagramType diagramElement Dynamics model 2. Математическая модель системы, где с каждым элементом графа ассоциирована некоторая роль: вершины графа выступают в качестве переменных, а ребра графов – в качестве уравнений. Equation Variable ExecutableModel n variable:Variable equation:String initilaValue:double Constant value:double n variables:Variable[] constants:Constant[] MatlabODEModel generateModel():File[] Концепция модуля • Чтобы обеспечить интеграцию различных баз данных в среду BioUML, мы вводим концепцию модуля. Если воспользоваться метафорой, то BioUML можно представить как операционную систему, а модули тогда будут являться отдельными программами. • Как правило, модуль создается для отдельной базы данных и определяет способ представления информации из этой базы данных в виде объектов языка Java. Модуль также может содержать специфичные для этой базы данных типы диаграмм, представляемые в виде подклассов класса DiagramType и способы их графического отображения, задаваемые как расширения DiagramViewBuilder. Модули баз данных На данный момент созданы модули для следующих баз данных: • GeneNet (http://wwwmgs.bionet.nsc.ru) база данных по генным сетям (ИЦиГ, Новосибирск); • KEGG/Ligand (http://www.kegg.com) Kyoto Encyclopedia of Genes and Genomes, база данных метаболических путей (Kyoto University, Japan); •TRANSPATH (http://transpath.gbf.de) база данных по путям передачи сигнала в клетке (Biobase GmbH, Germany). BioUML viewer BioUML editor Универсальная система поиска информации по базам данных Система поиска взаимодействующих друг с другом компонентов биологических систем BioUML modeler система для визуального моделирования биологических систем Пример: двухкамерная фармокинетическая модель В первую камеру (кровь) одномоментно были введены 100 единиц некоторого лекарственного вещества А. Из крови вещество А лекарство может переноситься во вторую камеру (печень), где происходит его расщепление некоторым ферментом Е с образованием продукта метаболизма B. Пример: двухкамерную фармокинетическую модель Предположим, что скорость переноса лекарственного вещества А из крови в печень пропорциональна его количеству в крови с константой k1, а скорость переноса из печени в кровь пропорциональна количеству A в печени с константой k2. Концентрация фермента E в печени неизменна и равна E0, а динамика ферментативной реакции описывается уравнением Михаэлиса-Ментен с константой Km. Математическая модель для описания динамики двухкамерной фармокинетической модели. dy/dt Y(0) dAblood k1 Ablood k 2 Aliver dt dAliver E0 Aliver k1 Ablood k2 Aliver k3 dt Km Aliver / Vliver dBliver E0 Aliver k3 dt Km Aliver / Vliver Ablood 100 Aliver 0 Blivver 0 %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 = 100.0 v_liver = 100.0 %Model variables and their initial values y = [] y(1) = 100.0 % 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 100 eq1 eq2 R1 B 0 eq3 eq4 R2 C 0 Соответствующая ему математическая модель dA eq1 dt dB eq 2 eq 3 dt dC eq 4 dt В первую камеру (кровь) Из крови вещество В печени А происходит его одномоментно были введены лекарство может расщепление ферментом Е с 100 единиц некоторого переноситься вообразованием вторую продукта лекарственного вещества А. камеру (печень)метаболизма B скорость переноса скорость переноса из печени Концентрация фермента Динамика E вферментативной лекарственного вещества А изв кровь пропорциональна печени неизменнареакции описывается крови в печень пропорциональна количеству A в печени с уравнением Михаэлисаего количеству в крови с константой k2 Ментен с константой Km константой k1 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 = 100.0 v_liver = 100.0 %Model variables and their initial values y = [] y(1) = 100.0 % 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 eq1 eq2 B eq3 eq4 C 100 0 0 R1 R2 мономолекулярная мономолекулярная реакция реакция k = 0.05 k = 0.001 При использовании стандартных типов реакций пользователь должен указать: - тип (механизм) реакции; - роли компонентов (реагент, продукт реакции, катализатор и т.д.); - значения констант реакции. Исходя из этой информации соответствующие уравнения будут построены автоматически компонентом ‘реакция’. Иерархические модели A’ 50 подмодель A, C С’ 50 При использовании подмоделей пользователь должен указать соответствие между переменными модели и подмодели. Модель: Подмодель: A’ 50 A 100 eq1 eq2 B eq3 eq4 C 0 0 R1 R2 мономолекулярная мономолекулярная реакция реакция k = 0.05 k = 0.001 C’ 50 Иерархические модели: основные принципы • Любая модель самодостаточна • Любая модель может быть использована в качестве подмодели. Для этого пользователь должен указать соответствие между переменными модели и подмодели. • При использовании одной и той же подмодели в разных моделях, набор согласуемых переменных может быть различен. • Начальные значения переменных берутся из модели самого высокого уровня, если они в ней не определены – тогда из соответствующих подмоделей. Система BioUML свободно доступна по адресу: http:// www.biouml.org