реакции

advertisement
Моделирование
биологических систем с
использованием
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
Download