Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Машинное обучение в Drug
Discovery
Андрей Гедич, Аркадия
Обо мне
2
Андрей Гедич
Аркадия
andrey.gedich@arcadia.spb.ru
В Аркадии с 2010 года, последние 5 лет работаю,
главным образо...
Задачи машинного обучения
• Предсказание различных величин, событий
• Спам фильтры, классификация текстов
• Распознование ...
Что рассмотрим
• Машинное обучение в Drug Discovery
• Терминология и задачи
• Подготовка данных
• Получение модели
• Выбор...
Drug discovery - Основные задачи
• Для заданных химических соединений (compound) –
предсказать насколько сильно они будут ...
Phenotypic screening, Inhibition
• Phenotypic screening – процесс поиска соединений которые изменяют поведение
клетки или ...
Drug discovery – Фазы разработки
7
Clinical trials
• Phase 0
• Phase I
• Phase II
• Phase III
• Phase IV
Preclinical
• In ...
Кривая доза-эффект
8
Машинное обучение – термины
• Машинное обучение – научная дисциплина, которая
создаёт и изучает алгоритмы, способные обуча...
Машинное обучение - обозначения
• x(i) – используется для обозначения входных переменных
(features) – вектор характеристик...
Определение x(i) – compound id
• Входные данные представлены химическими соединениями (compound).
• Необходимо предсказать...
Определение x(i) - fingerprint
• Характеристики соединения (features) получаются посредством расчёта
специального отпечатк...
Определение y(i) – activity
• Входные данные это триплет: inchlkey : activity_pvalue : target_uniprot_ac.
• Задаётся порог...
Получение модели и предсказания
Train
Algorithm
Compounds
Fingerprints
X
Train
Compounds
Activities
Protein
Y
14
14
Finger...
Объединение результатов
• Нормализация – Platt Scaling
• Объединение – mean, geometric mean, max probability итд
15
Compou...
Выбор лучшей модели
• При выборе модели обычно говорят о таких проблемах как:
• Недообучение (Underfitting)
• Переобучение...
Поиск недостатка модели
• Перед решением необходимо найти недостаток модели:
• High bias/Low Variance – Недообучение
• Low...
High Bias vs High Variance
18
Derivative of: http://www.astroml.org/sklearn_tutorial/practical.html
High Bias vs High Variance
• High Bias/Low Variance
• Добавление новых характеристик
• Увеличение объёма тренировочных дан...
Оценка качества модели
• Когда необходимо оценить качество модели, говорят о парах:
• Precision vs Recall
• Recall vs Fall...
Precision vs Recall
21
Derivative of: http://stackoverflow.com/questions/33294574/good-roc-curve-but-poor-precision-recall...
Recall vs Fall-out (ROC AUC)
22
Derivative of: http://stackoverflow.com/questions/33294574/good-roc-curve-but-poor-precisi...
AUC density plot
• Сравнение разных алгоритмов
• Сравнение одного алгоритма
с разными параметрами
23
Подводя итоги - объём вычислений
• Подготовка входных данных
• Генерация отпечатков: ECFP, AP, etc (5)
• Разбиение на уров...
Tox 21 Challenge
• Программа Tox21 – проводится совместно с NIH, EPA, FDA и нацелена на
разработку и улучшение методов оце...
Параллелизация в С++
• Native threads
• Windows threads / pthreads
• Cross-platform threads
• Boost threads
• MPI parallel...
Параллелизация в C++
• Intel Cilk™
• cilk_spawn, cilk_sync, cilk_for
• Никакой свободы – всё делает оптимизатор из коробки...
Распределённые вычисления -
выбор фреймворка
• Hadoop
• MapReduce – Java
• Python, R (stdin/stdout Streaming API)
• Нет кэ...
Какую файловую систему выбрать
• Posix Compliance
• Parallel/Distributed
• Open-source
• Spark Integration
29
Какую файловую систему выбрать
• Parallel
• IBM GPFS
• Lustre
• Distributed
• Gluster FS
• Ceph FS
30
• Posix Compliant
• ...
Что даёт Posix Compliance
31
HDFSlocal localRaw data Result
Write Copy Copy Read
Traditional applications Traditional appl...
Drug Discovery Framework
• R
• подготовка окружения
• генерация json файлов c константными параметрами
• system.cmd -> spa...
Q & A
Upcoming SlideShare
Loading in …5
×

AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисления в drug discovery | Андрей Гедич

454 views

Published on

Когда говорят о машинном обучении, обычно рассматривают его в контексте создания спам-фильтров, рекомендательных систем, распознавания текста, лиц и голоса. В данном докладе машинное обучение будет рассмотрено применительно к фармацевтике, а именно drug discovery. Доклад условно разделён на 3 части. В первой части Андрей на реальном примере рассмотрит реализацию и основные стадии пайплайна, который используется в drug discovery. Во второй части доклада применительно к C++ будут рассмотрены возможности, которые можно использовать для организации параллельных вычислений. В третьей части Андрей расскажет, как можно использовать распределённые вычисления для масштабирования существующего решения, когда нежелательно или невозможно поменять существующую кодовую базу.

Published in: Software
  • Be the first to comment

  • Be the first to like this

AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисления в drug discovery | Андрей Гедич

  1. 1. Машинное обучение в Drug Discovery Андрей Гедич, Аркадия
  2. 2. Обо мне 2 Андрей Гедич Аркадия andrey.gedich@arcadia.spb.ru В Аркадии с 2010 года, последние 5 лет работаю, главным образом, с C++, Machine Learning, Scala, Apache Spark
  3. 3. Задачи машинного обучения • Предсказание различных величин, событий • Спам фильтры, классификация текстов • Распознование текста, лиц, голоса • Рекомендательные системы 3
  4. 4. Что рассмотрим • Машинное обучение в Drug Discovery • Терминология и задачи • Подготовка данных • Получение модели • Выбор модели • Улучшение модели • Оценка модели • Параллелизация применительно к C++ • Библиотеки для параллелизации • Распределённые вычисления • Выбор фреймворка для распределённых вычислений • Выбор файловая системы • Drug Discovery Pipeline - обобщение 4
  5. 5. Drug discovery - Основные задачи • Для заданных химических соединений (compound) – предсказать насколько сильно они будут связываться с биологической целью (target), вызывая при этом её желаемое изменение. • Химическое соединение – энзим ингибитор (лиганд) • Биологическая цель – протеин (энзим) • Желаемое изменение – представлено активностью биологической цели, выражаемой метрикой IC50. • IC50 – концентрация полумаксимального ингибирования. 5
  6. 6. Phenotypic screening, Inhibition • Phenotypic screening – процесс поиска соединений которые изменяют поведение клетки или организма. • Ингибитор –ингибитор это молекула, которая связывается с протеином и изменяет его активность. Блокирование активности может уничтожить патоген. Многие лекарства являются ингибиторами протеинов. • Specificity – свойство ингибитора, определяющее его слабую связываемость с другими протеинами. • Potency – свойство ингибитора, определяющее концентрацию, необходимую для блокирования активности протеина. Лекарства с высокими показателями имеют меньше побочных эффектов. 6 Benzocaine
  7. 7. Drug discovery – Фазы разработки 7 Clinical trials • Phase 0 • Phase I • Phase II • Phase III • Phase IV Preclinical • In vitro (cell line) • In vivo (animal) Virtual • In silico Compound Collection Lead Compound Back-up compounds Computer-Aided Drug Design (CADD) High-throughput screening (HTS) Source: www.ddw-online.com
  8. 8. Кривая доза-эффект 8
  9. 9. Машинное обучение – термины • Машинное обучение – научная дисциплина, которая создаёт и изучает алгоритмы, способные обучаться на данных. • Такие алгоритмы оперируют посредством построения моделей (model), основанных на входных данных (input). Модели используются для дальнейшего предсказания и принятия решений. 9
  10. 10. Машинное обучение - обозначения • x(i) – используется для обозначения входных переменных (features) – вектор характеристик. • y(i) – используется для обозначения тренировочных данных (target). • (x(i),y(i)) – используется для обозначения тренировочной пары (training example). • Список в m training examples и n features и называется training set. 10 Compounds Fingerprints Compounds Activities Protein X Y
  11. 11. Определение x(i) – compound id • Входные данные представлены химическими соединениями (compound). • Необходимо предсказать активность, основываясь на структуре соединения. • Соединение идентифицируется посредством InChl Key 11 Ketoconazole InChl key: XMAYWYJOQHXEEK-ZEQKJWHPSA-N Cytochrome uniprot: P450/P15149 Image source: de.wikipedia.org License: CC BY-SA 2.0 de
  12. 12. Определение x(i) - fingerprint • Характеристики соединения (features) получаются посредством расчёта специального отпечатка (fingerprint). • Химическое соединение разбивается на паттерны, которые хэшируются. • Существует множество алгоритмов: MACCS, ECFP, LINGO, AP, MNA итд • Основные библиотеки: JCompoundMapper, CDK, RDKit, GraphSim TK, Open Babel. 12
  13. 13. Определение y(i) – activity • Входные данные это триплет: inchlkey : activity_pvalue : target_uniprot_ac. • Задаётся пороговое значение для IC50 – округлённое значение концентрации. • Данные разбиваются на 2 класса – active и inactive. • Затем данные фильтруются (balancing), семплируются (sampling) и разбиваются на группы (cross validation). 13 Concentration level = 6 inchlkey IC50 target activity compound id 1 6.43 P15149 active compound id 2 6.14 P15149 active compound id 3 5.97 P15149 inactive compound id 4 6.27 P15149 active Fold 1 Fold 2
  14. 14. Получение модели и предсказания Train Algorithm Compounds Fingerprints X Train Compounds Activities Protein Y 14 14 Fingerprints Weights Protein Model Y Prediction Algorithm Compounds Class/Probability Protein Prediction ෡𝒀 Compounds Fingerprints X Test 14 Fingerprints Weights Protein Model Y
  15. 15. Объединение результатов • Нормализация – Platt Scaling • Объединение – mean, geometric mean, max probability итд 15 Compounds Class/Probability Protein Prediction ෡𝒀 Compounds Class/Probability Protein Prediction Fused ෡𝒀
  16. 16. Выбор лучшей модели • При выборе модели обычно говорят о таких проблемах как: • Недообучение (Underfitting) • Переобучение (Overfitting) • Увеличение количества характеристик • Увеличение объёма тренировочных данных 16
  17. 17. Поиск недостатка модели • Перед решением необходимо найти недостаток модели: • High bias/Low Variance – Недообучение • Low bias/High Variance – Переобучение • Для поиска недостатка используются такие вещи как: • Кривые обучения (Learning Curves) • Перекрёстная проверка (Cross validation) • Cross validation • K-fold cross validation • K-fold nested cross validation 17
  18. 18. High Bias vs High Variance 18 Derivative of: http://www.astroml.org/sklearn_tutorial/practical.html
  19. 19. High Bias vs High Variance • High Bias/Low Variance • Добавление новых характеристик • Увеличение объёма тренировочных данных • Low Bias/High variance • Увеличение объёма тренировочных данных • Уменьшение количества характеристик • Feature selection (Fisher score, Relief) • Dimension reduction (PCA) • Добавление новых характеристик 19
  20. 20. Оценка качества модели • Когда необходимо оценить качество модели, говорят о парах: • Precision vs Recall • Recall vs Fall-out 20 Predicted condition Predicted condition positive Predicted condition negative True condition Condition positive True Positive (TP) False Negative (FN) Condition negative False Positive (FP) True Negative (TN) Confusion matrix 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑇𝑃 𝑇𝑃 + 𝐹𝑃 𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑃 𝑇𝑃 + 𝐹𝑁 𝐹𝑃𝑅 = 𝐹𝑃 𝐹𝑃 + 𝑇𝑁 0 ≤ ℎ 𝜃(𝑥) ≤ 1 1 if ℎ 𝜃(𝑥) ≥ threshold 0 if ℎ 𝜃(𝑥) < threshold
  21. 21. Precision vs Recall 21 Derivative of: http://stackoverflow.com/questions/33294574/good-roc-curve-but-poor-precision-recall-curve License: cc by-sa 3.0
  22. 22. Recall vs Fall-out (ROC AUC) 22 Derivative of: http://stackoverflow.com/questions/33294574/good-roc-curve-but-poor-precision-recall-curve License: cc by-sa 3.0
  23. 23. AUC density plot • Сравнение разных алгоритмов • Сравнение одного алгоритма с разными параметрами 23
  24. 24. Подводя итоги - объём вычислений • Подготовка входных данных • Генерация отпечатков: ECFP, AP, etc (5) • Разбиение на уровни концентрации (5) • Семплинг (10) • Фолдинг: k-fold nested CV (5) • Выборка фичей: Fisher Score, Relief, etc (5) • Тренировка моделей: LR, SVM (p) (2000) • Предсказание: LR, SVM, Naive Bayes, etc (5) • Объединение моделей: Platt Scaling, etc • Оценка результатов: ROC-AUC, etc • 5 * 5 * 10 * 5 * 5 * 2000 = 12500000 раз – 145 дней (4,03/2,01) - один метод • 145 * 5 = 725 дней (20,13/10,07) – все методы Scaling Machine Learning for Target Prediction in Drug Discovery using Apache Spark - Proceedings of the 15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing: Workshop on Clusters, Clouds and Grids for Life Sciences. IEEE, 2015. p. 871-879. 24 Image source: http://www.intel.com/
  25. 25. Tox 21 Challenge • Программа Tox21 – проводится совместно с NIH, EPA, FDA и нацелена на разработку и улучшение методов оценки токсичности. • Главная цель Tox21 Challenge – быстрое и эффективное тестирование заданного химического соединения. Необходимо проверить, может ли оно нарушать процессы в теле человека, что может привести к побочным эффектам. 25
  26. 26. Параллелизация в С++ • Native threads • Windows threads / pthreads • Cross-platform threads • Boost threads • MPI parallel computing • Open MPI • Intel MPI • Boost MPI • Parallelization libraries • Intel Cilk • Open MP • TBB 26
  27. 27. Параллелизация в C++ • Intel Cilk™ • cilk_spawn, cilk_sync, cilk_for • Никакой свободы – всё делает оптимизатор из коробки • Opens-source: cilkplus (gcc), cilk (llvm/clang) – Linux • Commercial (free licence) : Intel Parallel Studio XE suites – Windows, Linux • Open MP • Набор различных #pragma директив • #pragma omp parallel • #pragma omp parallel for • #pragma omp barrier • Никакой компиляции и sanity checks • Compiler specific – может не поддерживаться компилятором • TBB • Open-source • Generic C++ template library – полный контроль • parallel_for , parallel_do, parallel_reduce • parallel_pipeline, make_filter, operator& • concurrent_vector, concurrent_hash_map, concurrent_queue • mutexes, atomic operations, memory allocators 27
  28. 28. Распределённые вычисления - выбор фреймворка • Hadoop • MapReduce – Java • Python, R (stdin/stdout Streaming API) • Нет кэширования в памяти – постоянная нагрузка на сеть • Batch processing • Есть файловая система - HDFS • Spark • Java, Python, Scala Jobs • Кэширование в памяти • Итеративные алгоритмы (машинное обучение) • Нет файловой системы – можно использовать HDFS и подобные 28
  29. 29. Какую файловую систему выбрать • Posix Compliance • Parallel/Distributed • Open-source • Spark Integration 29
  30. 30. Какую файловую систему выбрать • Parallel • IBM GPFS • Lustre • Distributed • Gluster FS • Ceph FS 30 • Posix Compliant • IBM GPFS • Lustre • Gluster FS • Ceph FS • Non Posix Compliant • HDFS • Orange FS • Grid Gain • Quantcast FS • Open-source • Gluster FS • Ceph FS • Spark integration • Gluster FS • Ceph FS
  31. 31. Что даёт Posix Compliance 31 HDFSlocal localRaw data Result Write Copy Copy Read Traditional applications Traditional applications Posix Compliant Raw data Result Direct Write Direct Read Hadoop jobs
  32. 32. Drug Discovery Framework • R • подготовка окружения • генерация json файлов c константными параметрами • system.cmd -> spark-submit • Scala • Инициализация RDD с различными предикторами • Перебор изменяющихся параметров • scala.sys.process.Process -> запуск С++ приложений • C++ • Target Generation • Train • Predict • Fusion • ROC-AUC • R • Агрегация результатов • Генерирование отчётов 32 R scripts Scala job C++ binaries R scripts system.cmd spark-submit Scala.sys.process. Process
  33. 33. Q & A

×