20110501 csseminar rybalkin_substructure_search
-
Upload
computer-science-club -
Category
Documents
-
view
763 -
download
0
Transcript of 20110501 csseminar rybalkin_substructure_search
Open-source software
Подструктурный поиск химическихсоединений в базах данных
Михаил Рыбалкин
01.05.2011
Введение. Разработка лекарств
I Количество веществ ∼ 30-40 млн.I Количество лекарственных веществ ∼ 1-2 тыс.
Аналоги лекарств
I Разработка лекарств ∼ 10-15 лет
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Введение. Разработка лекарств
I Количество веществ ∼ 30-40 млн.I Количество лекарственных веществ ∼ 1-2 тыс.
Аналоги лекарствI Разработка лекарств ∼ 10-15 лет
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Отступление: химические обозначения
N
CH3
NH2
CH
CC
CC
C
C
C
N C
C
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Свойства веществ
Амфетамин
Cтимулятор центральной нервной системы
C
N
Повышение артериальногодавления
Мезокарб
Антиоксиданты
O
O
C
C P
SkQ1I Проникает в клеткуI Антиоксидант
Академик Скулачев В.П.
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Свойства веществ
Амфетамин
Cтимулятор центральной нервной системы
C
N
Повышение артериальногодавления
Мезокарб
Антиоксиданты
O
O
C
C P
SkQ1I Проникает в клеткуI Антиоксидант
Академик Скулачев В.П.
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Виды поиска
Запрос:C
N
I Substructure (Подструктурный поиск)
N
O
N
O
O
I Similarity (Поиск по сходству)
C
NC
C
C
N
I Exact (Точный поиск)
N
C
CN
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Виды поиска
Запрос:C
N
I Substructure (Подструктурный поиск)
N
O
N
O
O
I Similarity (Поиск по сходству)
C
NC
C
C
N
I Exact (Точный поиск)
N
C
CN
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Виды поиска
Запрос:C
N
I Substructure (Подструктурный поиск)
N
O
N
O
O
I Similarity (Поиск по сходству)
C
NC
C
C
N
I Exact (Точный поиск)
N
C
CN
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Виды поиска
Запрос:C
N
I Substructure (Подструктурный поиск)
N
O
N
O
O
I Similarity (Поиск по сходству)
C
NC
C
C
N
I Exact (Точный поиск)
N
C
CN
Михаил Рыбалкин Подструктурный поиск 01.05.2011
"Поисковики" химических соединений
I PubChem - 32 млн. молекулI ChemSpider - 25 млн. молекул (использует Bingo)
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Структурированность данных
Текст Графы Изображения
ПогодваP
I Погода вСанкт-Петербурге
I Подробныйпрогноз погоды
P
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Использование графов
Химические соединения
Схемы взаимодействия протеинов
Социальные сети
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Исходные данные
Молекула - помеченный граф G (V ,E , fV , fE )I |V | < 200I Почти все графы планарныI d(G ) ≤ 7 (d(G ) ≤ 4)I |fV | < 118 – атомы.
Но есть дополнительные свойства: заряд, ...I |fE | = 4 – типы связей
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9 C10
N11C12
O13
0
1
2
3
4
5
6
7
8
9 10
1112
13
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Поиск во множестве молекул
Дано:I D = {G1,G2,G3, ...,Gk} – множество графовI Q – граф-запрос (|Q| < 20)
Подструктурный поиск:I Найти все граф, содержащие заданный подграф
DQ = {G ∈ D|Q ⊂ G}
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Поиск во множестве молекул (2)
O
O
C
C CCl
Cl
O
OCl
Cl
ON
N
C
O
NN
C
C
O
NN
C
NO
ON
N
N
ON
N
O
N
O
C
C
O
C
N
C
N O
ON
N
C O
O
O
N
NO
O
N
O
N N
NN
OO
OO
I Количество молекул ∼ 30 млн.I Необходимо выбирать подмножество для поиска
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Схема алгоритма
Преобработка данных – построение индекса:I Сохранение дополнительной информации
Скорость предобработки
Схема алгоритма поиска:1. Выбор множества кандидатов
Эффективность индекса2. Поиск изоморфного подграфа для каждого кандидата
Эффективность поиска изоморфного подграфа
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Поиск изоморфного подграфа
Subgraph isomorphism problem - NP-полная задача(Полиномиальный алгоритм?)
[Cordella 2004] – Поиск изоморфного подграфа для разреженных(ориентированных) графов
Рекурсивный обход с отсечением
Q :
1 2
4
5
3?⊂
G :
1 2 3
4
6
7 5
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Поиск изоморфного подграфа (2)
Требуется проверить Q ⊂ Gs ⊂ V (G )× V (Q) – частичное отображение, состояниеT (s) – множество пар, которые можно добавить к sT (s) = {min Vs(Q)} × Vs(G )
Шаг 1s = {}T (s) = {(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7)}
Q :
1 2
4
5
3?⊂
G :
1 2 3
4
5
6 7
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Поиск изоморфного подграфа (2)
Требуется проверить Q ⊂ Gs ⊂ V (G )× V (Q) – частичное отображение, состояниеT (s) – множество пар, которые можно добавить к sT (s) = {min Vs(Q)} × Vs(G )
Шаг 1s = {}T (s) = {(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7)}
Q :
1 2
4
5
3?⊂
G :
1 2 3
4
5
6 7
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Поиск изоморфного подграфа (2)
Требуется проверить Q ⊂ Gs ⊂ V (G )× V (Q) – частичное отображение, состояниеT (s) – множество пар, которые можно добавить к sT (s) = {min Vs(Q)} × Vs(G )
Шаг 2s = {(1, 1)}T (s) = {(2, 2)} продолжить дальше нельзя
Q :
1 2
4
5
3?⊂
G :
1 2 3
4
5
6 7
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Поиск изоморфного подграфа (2)
Требуется проверить Q ⊂ Gs ⊂ V (G )× V (Q) – частичное отображение, состояниеT (s) – множество пар, которые можно добавить к sT (s) = {min Vs(Q)} × Vs(G )
Шаг 3s = {(1, 2)}T (s) = {(2, 1), (2, 3)}
Q :
1 2
4
5
3?⊂
G :
1 2 3
4
5
6 7
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Поиск изоморфного подграфа (2)
Требуется проверить Q ⊂ Gs ⊂ V (G )× V (Q) – частичное отображение, состояниеT (s) – множество пар, которые можно добавить к sT (s) = {min Vs(Q)} × Vs(G )
Шаг 4s = {(1, 2), (2, 3)}T (s) = {(3, 1), (3, 4), (3, 5), (3, 6)}
Q :
1 2
4
5
3?⊂
G :
1 2 3
4
5
6 7
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Поиск изоморфного подграфа (2)
Требуется проверить Q ⊂ Gs ⊂ V (G )× V (Q) – частичное отображение, состояниеT (s) – множество пар, которые можно добавить к sT (s) = {min Vs(Q)} × Vs(G )
Шаг 5s = {(1, 2), (2, 3), (3, 4)}T (s) = {(4, 1), (4, 5), (4, 6), (4, 7)} продолжить дальше нельзя
Q :
1 2
4
5
3?⊂
G :
1 2 3
4
5
6 7
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Поиск изоморфного подграфа (3)
F (s, q, g) – можно ли к s добавить (q, g) (feasibility)Отсечение ветвей рекурсии:
F0
1
2
3
4* ↔
1
2
3
4*
FIn
1
23* → 1 2*
FNew
1
23* → 1 2*
Михаил Рыбалкин Подструктурный поиск 01.05.2011
"Приближенный" поиск[He 2006]: Closure-Tree: An Index Structure for Graph Queries
G1
A
B
AB1C1 B2
G2
C
C2
A
B
C
C1
B1
A
C2
B2
A
B C
B
A C
C
A B
B1
A C1
C1
B1
A
B1 C2
C2
A B2
B2
C2
A
B
A C A
C
B
B
A
B C A
C
B
C
A
B C A
B
C
B1
A
B1 C2
C1
B1
A
B1
A C1 A
C2
B2
C2
A
B1 C2
B2
C2
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Возможные улучшения
I Инварианты окрестностей атомов
I Симметричность графов
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Битовые отпечатки молекулФингерпринты (fingerprints)
I Каждый бит соответствует свойству
Свойства:I Фиксированный набор свойств
I Универсальные свойства – множество подграфовограниченного размера
I ЦепочкиI ПодграфыI ПоддеревьяI Циклы
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Битовые отпечатки молекулФингерпринты (fingerprints)
I Каждый бит соответствует свойству
Свойства:I Фиксированный набор свойствI Универсальные свойства – множество подграфов
ограниченного размера
I ЦепочкиI ПодграфыI ПоддеревьяI Циклы
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Битовые отпечатки молекулФингерпринты (fingerprints)
I Каждый бит соответствует свойству
Свойства:I Фиксированный набор свойствI Универсальные свойства – множество подграфов
ограниченного размераI ЦепочкиI ПодграфыI ПоддеревьяI Циклы
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Построение битовых отпечатковГраф:
C
C
C C
CNO
Поддеревья до 4 вершин:C N O CO
CN CCC
C C CC
O
CC
N
C
C
C
O
C
C
CNC
CCO
CC C
NC
CC
C
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Реверсивный поиск[Avis 1993]: Reverse Search for Enumeration
1 2
4 53
76
• • •
• • •
Приложения: перебор подграфов, триангуляций, поддеревьев,вершин многогранника, ...
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Организация индексаБитовые отпечатки считываются с диска
Транспонированное представление:
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Организация индексаБитовые отпечатки считываются с диска
Транспонированное представление:
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Closure tree
[He 2006]: Closure-Tree: An Index Structure for Graph Queries
A
B C
D
A
B D
C
A
B C B D
C
G1 G2 G4 G5
A
B D
G3
A
B C B D
C1=closure(G1,G2)
B {C,D}
C2=closure(G3,G4,G5) C3=closure(C1,C2)
{D, } {C, }
{A, } {A, }
{C, D, }
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Особенности химического поиска
Химический поиск сложнее поиска подграфаI Логические выражения
SMARTS – SMiles ARbitrary Target Specification
I Ароматичность
I Стереохимия
CH3
CH3
CH3 CH3
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Особенности химического поиска
Химический поиск сложнее поиска подграфаI Логические выражения
SMARTS – SMiles ARbitrary Target SpecificationI Ароматичность
I Стереохимия
CH3
CH3
CH3 CH3
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Особенности химического поиска
Химический поиск сложнее поиска подграфаI Логические выражения
SMARTS – SMiles ARbitrary Target SpecificationI Ароматичность
I Стереохимия
CH3
CH3
CH3 CH3
Михаил Рыбалкин Подструктурный поиск 01.05.2011
ЗаключениеI Алгоритм поиска изоморфного подграфа
I Метод реверсивного поиска
I Алгоритм построение "фингерпринтов"и выбора кандидатовдля подструктурного поиска
I Организация индекса
Ссылки на литературу:[Cordella 2004] A (sub)graph isomorphism algorithm for matching
large graphs; Cordella, L.P., Foggia, P., Sansone,C.,Vento, M., 2004
[Avis 1993] Reverse Search for Enumeration; David Avis, KomeiFukuda, 1993
[He 2006] Closure-Tree: An Index Structure for Graph Queries;Huahai He, Ambuj K. Singh, 2006
Михаил Рыбалкин Подструктурный поиск 01.05.2011
Дополнительная информацияBingo – open-source chemistry search engine
(MS SQL Server, Oracle, Postgres?)
Контакты и ссылки:I http://ggasoftware.com/I http://ggasoftware.com/opensource/bingoI [email protected]
C
C
S
S
C
C
C
C
I
O O
B
B
B
Михаил Рыбалкин Подструктурный поиск 01.05.2011