20110501 csseminar rybalkin_substructure_search

40
Open-source software Подструктурный поиск химических соединений в базах данных Михаил Рыбалкин 01.05.2011

Transcript of 20110501 csseminar rybalkin_substructure_search

Page 1: 20110501 csseminar rybalkin_substructure_search

Open-source software

Подструктурный поиск химическихсоединений в базах данных

Михаил Рыбалкин

01.05.2011

Page 2: 20110501 csseminar rybalkin_substructure_search

Введение. Разработка лекарств

I Количество веществ ∼ 30-40 млн.I Количество лекарственных веществ ∼ 1-2 тыс.

Аналоги лекарств

I Разработка лекарств ∼ 10-15 лет

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 3: 20110501 csseminar rybalkin_substructure_search

Введение. Разработка лекарств

I Количество веществ ∼ 30-40 млн.I Количество лекарственных веществ ∼ 1-2 тыс.

Аналоги лекарствI Разработка лекарств ∼ 10-15 лет

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 4: 20110501 csseminar rybalkin_substructure_search

Отступление: химические обозначения

N

CH3

NH2

CH

CC

CC

C

C

C

N C

C

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 5: 20110501 csseminar rybalkin_substructure_search

Свойства веществ

Амфетамин

Cтимулятор центральной нервной системы

C

N

Повышение артериальногодавления

Мезокарб

Антиоксиданты

O

O

C

C P

SkQ1I Проникает в клеткуI Антиоксидант

Академик Скулачев В.П.

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 6: 20110501 csseminar rybalkin_substructure_search

Свойства веществ

Амфетамин

Cтимулятор центральной нервной системы

C

N

Повышение артериальногодавления

Мезокарб

Антиоксиданты

O

O

C

C P

SkQ1I Проникает в клеткуI Антиоксидант

Академик Скулачев В.П.

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 7: 20110501 csseminar rybalkin_substructure_search

Виды поиска

Запрос:C

N

I Substructure (Подструктурный поиск)

N

O

N

O

O

I Similarity (Поиск по сходству)

C

NC

C

C

N

I Exact (Точный поиск)

N

C

CN

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 8: 20110501 csseminar rybalkin_substructure_search

Виды поиска

Запрос:C

N

I Substructure (Подструктурный поиск)

N

O

N

O

O

I Similarity (Поиск по сходству)

C

NC

C

C

N

I Exact (Точный поиск)

N

C

CN

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 9: 20110501 csseminar rybalkin_substructure_search

Виды поиска

Запрос:C

N

I Substructure (Подструктурный поиск)

N

O

N

O

O

I Similarity (Поиск по сходству)

C

NC

C

C

N

I Exact (Точный поиск)

N

C

CN

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 10: 20110501 csseminar rybalkin_substructure_search

Виды поиска

Запрос:C

N

I Substructure (Подструктурный поиск)

N

O

N

O

O

I Similarity (Поиск по сходству)

C

NC

C

C

N

I Exact (Точный поиск)

N

C

CN

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 11: 20110501 csseminar rybalkin_substructure_search

"Поисковики" химических соединений

I PubChem - 32 млн. молекулI ChemSpider - 25 млн. молекул (использует Bingo)

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 12: 20110501 csseminar rybalkin_substructure_search

Структурированность данных

Текст Графы Изображения

ПогодваP

I Погода вСанкт-Петербурге

I Подробныйпрогноз погоды

P

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 13: 20110501 csseminar rybalkin_substructure_search

Использование графов

Химические соединения

Схемы взаимодействия протеинов

Социальные сети

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 14: 20110501 csseminar rybalkin_substructure_search

Исходные данные

Молекула - помеченный граф 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

Page 15: 20110501 csseminar rybalkin_substructure_search

Поиск во множестве молекул

Дано:I D = {G1,G2,G3, ...,Gk} – множество графовI Q – граф-запрос (|Q| < 20)

Подструктурный поиск:I Найти все граф, содержащие заданный подграф

DQ = {G ∈ D|Q ⊂ G}

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 16: 20110501 csseminar rybalkin_substructure_search

Поиск во множестве молекул (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

Page 17: 20110501 csseminar rybalkin_substructure_search

Схема алгоритма

Преобработка данных – построение индекса:I Сохранение дополнительной информации

Скорость предобработки

Схема алгоритма поиска:1. Выбор множества кандидатов

Эффективность индекса2. Поиск изоморфного подграфа для каждого кандидата

Эффективность поиска изоморфного подграфа

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 18: 20110501 csseminar rybalkin_substructure_search

Поиск изоморфного подграфа

Subgraph isomorphism problem - NP-полная задача(Полиномиальный алгоритм?)

[Cordella 2004] – Поиск изоморфного подграфа для разреженных(ориентированных) графов

Рекурсивный обход с отсечением

Q :

1 2

4

5

3?⊂

G :

1 2 3

4

6

7 5

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 19: 20110501 csseminar rybalkin_substructure_search

Поиск изоморфного подграфа (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

Page 20: 20110501 csseminar rybalkin_substructure_search

Поиск изоморфного подграфа (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

Page 21: 20110501 csseminar rybalkin_substructure_search

Поиск изоморфного подграфа (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

Page 22: 20110501 csseminar rybalkin_substructure_search

Поиск изоморфного подграфа (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

Page 23: 20110501 csseminar rybalkin_substructure_search

Поиск изоморфного подграфа (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

Page 24: 20110501 csseminar rybalkin_substructure_search

Поиск изоморфного подграфа (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

Page 25: 20110501 csseminar rybalkin_substructure_search

Поиск изоморфного подграфа (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

Page 26: 20110501 csseminar rybalkin_substructure_search

"Приближенный" поиск[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

Page 27: 20110501 csseminar rybalkin_substructure_search

Возможные улучшения

I Инварианты окрестностей атомов

I Симметричность графов

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 28: 20110501 csseminar rybalkin_substructure_search

Битовые отпечатки молекулФингерпринты (fingerprints)

I Каждый бит соответствует свойству

Свойства:I Фиксированный набор свойств

I Универсальные свойства – множество подграфовограниченного размера

I ЦепочкиI ПодграфыI ПоддеревьяI Циклы

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 29: 20110501 csseminar rybalkin_substructure_search

Битовые отпечатки молекулФингерпринты (fingerprints)

I Каждый бит соответствует свойству

Свойства:I Фиксированный набор свойствI Универсальные свойства – множество подграфов

ограниченного размера

I ЦепочкиI ПодграфыI ПоддеревьяI Циклы

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 30: 20110501 csseminar rybalkin_substructure_search

Битовые отпечатки молекулФингерпринты (fingerprints)

I Каждый бит соответствует свойству

Свойства:I Фиксированный набор свойствI Универсальные свойства – множество подграфов

ограниченного размераI ЦепочкиI ПодграфыI ПоддеревьяI Циклы

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 31: 20110501 csseminar rybalkin_substructure_search

Построение битовых отпечатковГраф:

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

Page 32: 20110501 csseminar rybalkin_substructure_search

Реверсивный поиск[Avis 1993]: Reverse Search for Enumeration

1 2

4 53

76

• • •

• • •

Приложения: перебор подграфов, триангуляций, поддеревьев,вершин многогранника, ...

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 33: 20110501 csseminar rybalkin_substructure_search

Организация индексаБитовые отпечатки считываются с диска

Транспонированное представление:

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 34: 20110501 csseminar rybalkin_substructure_search

Организация индексаБитовые отпечатки считываются с диска

Транспонированное представление:

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 35: 20110501 csseminar rybalkin_substructure_search

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

Page 36: 20110501 csseminar rybalkin_substructure_search

Особенности химического поиска

Химический поиск сложнее поиска подграфаI Логические выражения

SMARTS – SMiles ARbitrary Target Specification

I Ароматичность

I Стереохимия

CH3

CH3

CH3 CH3

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 37: 20110501 csseminar rybalkin_substructure_search

Особенности химического поиска

Химический поиск сложнее поиска подграфаI Логические выражения

SMARTS – SMiles ARbitrary Target SpecificationI Ароматичность

I Стереохимия

CH3

CH3

CH3 CH3

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 38: 20110501 csseminar rybalkin_substructure_search

Особенности химического поиска

Химический поиск сложнее поиска подграфаI Логические выражения

SMARTS – SMiles ARbitrary Target SpecificationI Ароматичность

I Стереохимия

CH3

CH3

CH3 CH3

Михаил Рыбалкин Подструктурный поиск 01.05.2011

Page 39: 20110501 csseminar rybalkin_substructure_search

Заключение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

Page 40: 20110501 csseminar rybalkin_substructure_search

Дополнительная информацияBingo – open-source chemistry search engine

(MS SQL Server, Oracle, Postgres?)

Контакты и ссылки:I http://ggasoftware.com/I http://ggasoftware.com/opensource/bingoI [email protected]

[email protected]

C

C

S

S

C

C

C

C

I

O O

B

B

B

Михаил Рыбалкин Подструктурный поиск 01.05.2011