300 likes | 672 Views
Моделирование биологических систем с использованием BioUML Biosoft.Ru Лабоработория Биоинформатики КТИ ВТ СО РАН http://www.biosoft.ru. План доклада. Актуальность задачи BioUML : используемые технологии, архитектура, обзор основных модулей системы Моделирование биологических систем
E N D
Моделирование биологических систем с использованием BioUMLBiosoft.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 – используется для численного решения систем ОДУ и графического представления результатов.
Meta model n n Dynamics model n Compartment nodes:Node[] edges:Edge[] Node location:Point image:Image DiagramElement kernel:DataElement title:String view:View role:Role n Equation variable:Variable equation:String Edge in:Node out:Node Role diagramElement MatlabODEModel generateModel():File[] Variable initilaValue:double ExecutableModel variables:Variable[] constants:Constant[] Constant value:double Diagram type:DiagramType Мета модель Мета модель определяет уровень абстракции для описания моделей биологических систем. Это описание состоит из 2 частей: 1. Логической структура системы, представляемая в виде кластеризованного графа. 2. Математическая модель системы, где с каждым элементом графа ассоциирована некоторая роль: вершины графа выступают в качестве переменных, а ребра графов – в качестве уравнений.
Концепция модуля • Чтобы обеспечить интеграцию различных баз данных в среду 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 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 = 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
Визуальный синтаксис для моделирования биологических систем на молекулярно-клеточном уровне Пример описания двух последовательных химических реакций eq1 eq3 eq2 eq4 A B C R1 R2 100 0 0 Соответствующая ему математическая модель
В первую камеру (кровь) одномоментно были введены 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]
%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'); BioUML modeler Автоматически генерируемый файл для численного расчета и графического представления результатов расчета.
Результаты численного расчета фармокинетической модели
eq1 eq3 eq2 eq4 A B C R1 мономолекулярная реакция k = 0.05 R2 мономолекулярная реакция k = 0.001 Добавление стандартных типов реакций 100 0 0 • При использовании стандартных типов реакций пользователь должен указать: • - тип (механизм) реакции; • роли компонентов (реагент, продукт реакции, • катализатор и т.д.); • значения констант реакции. • Исходя из этой информации соответствующие уравнения будут построены автоматически компонентом ‘реакция’.
100 0 0 eq1 eq3 eq2 eq4 A B C R1 мономолекулярная реакция k = 0.05 R2 мономолекулярная реакция k = 0.001 Иерархические модели подмодель A, C A’ С’ 50 50 При использовании подмоделей пользователь должен указать соответствие между переменными модели и подмодели. Модель: Подмодель: A’ C’ 50 50
Иерархические модели: основные принципы • Любая модель самодостаточна • Любая модель может быть использована в качестве подмодели. Для этого пользователь должен указать соответствие между переменными модели и подмодели. • При использовании одной и той же подмодели в разных моделях, набор согласуемых переменных может быть различен. • Начальные значения переменных берутся из модели самого высокого уровня, если они в ней не определены – тогда из соответствующих подмоделей.
Система BioUML свободно доступна по адресу: http:// www.biouml.org