UGENE Tech Talk: от поиска повторов к облакам
description
Transcript of UGENE Tech Talk: от поиска повторов к облакам
UGENE Tech Talk: от поиска повторов к
облакам
Константин ОконечниковUnipro 2010
2
СодержаниеЧасть 0: введение• Проект Unipro UGENE
Часть 1: real-life bioinformatics • Работа с биологическими данными• Алгоритмы биоинформатики• HPC и облачные вычисления
Часть 2: за кулисами• Разработка в деталях• Особенности создания СПО
3
Введение
Unipro UGENEЦель проекта – интеграция наиболее используемых алгоритмов
анализа генетических данных в единой визуальной рабочей среде, удобной для прикладного специалиста.
• Свободная лицензия;
• Кросс-платформенность;
• Модульная архитектура, более 30 расширений;
• Единый, удобный пользовательский интерфейс;
• Концептуальная целостность в работе данными;
• Эффективное использование вычислительных ресурсов;
• Поддержка составных методов анализа данных.
4
5
Занимательные факты• Поддерживаемые
платформы: Windows, Mac, Linux X11
• Язык программирования: C++, Qt
• Большая часть интегрированных алгоритмов встроена на уровне исходного кода
Краткий обзор возможностей UGENE
• Множественное выравнивание: MUSCLE, Kalign, Clustal, Mafft
• Сверхбыстрый поиск повторов
• 3D визуализатор молекул• Визуализация и редактирование
хроматограмм• Аннотирование геномов
6
• Анализ гомологии на основе цепей Маркова (HMMER)
• Поиск открытых рамок считывания для всех генетических таблиц
• Поддержка запросов к удаленным базам данных (типа BLAST, CDD)
• Сайты рестрикции, cайты связывания транскрипционных факторов
Краткий обзор возможностей UGENE
Редактор вычислительных схем
• Интуитивно понятный интерфейс пользователя;
• Расширяемость – легкое добавление новых вычислительных блоков;
• Каждый блок может иметь различные оптимизированные реализации для различных платформ;
• Автоматическая загрузка всех доступных вычислительных ресурсов;
• Интерактивность. 7
Высокопроизводительные вычисления
• Многоядерные процессоры• Кластеры и грид-системы• GPGPU, специальные вычислители• Облачные вычисления
Текущее состояние проекта
• Более 1000 активных пользователей• Проект входит в официальные версии
дистрибутивов Linux: Ubuntu, Fedora, Arch
• Взаимодействие с российскими и рядом зарубежных институтов в области вычислительной молекулярной биологии
• Перенос задач на суперкомпьютеры
8
9
Real-life bioinformatics
10
Рост объемов информации
Рост количества последовательностей в GenBank
0
20000000
40000000
60000000
80000000
100000000
120000000
140000000
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
годы
коли
чест
во
посл
едов
ател
ьнос
тей
11
Форматы данных
Genbank
EMBL CLUSTALMSF
STOCKHOLM
FASTA FASTQNEWICK
NEXUSABI
SCF
HMMER2/3
MMDB
PDB
GFF
SAMCSV
Plain text
12
Биологические объекты • Последовательность• Множественное выравнивание• Трехмерная структура• Филогенетическое дерево• Аннотация• Хроматограмма• …
13
Sequence• Алфавит
– DNA,RNA,аминокислотный• Аннотации• Quality
– Sanger и т.д.• Форматы:
– Genbank– Fasta– ...over 9000
14
Множественное выравнивание
• Состоит из последовательностей• «Помнит» смещения• Требует особой визуализации
– Вариативность– Масштабирование
15
Трехмерная модель белка• Набор координат атомов• Вторичная структура• Граф химических связей• Домены
16
Работа с форматами• Определение типа объекта• «Неправильные» файлы
– Несоответствия– Ошибки
• Режимы чтения и записи • Запись или экспорт?
17
«Большие» данные• Индексирование
– Потоковое чтение/запись– Суффиксный массив– Управление памятью– Мета данные
18
Кэш
Данные
Данные
Данные
Активное представлени
е
Карта данных
Активное представлени
е
19
Pairwise alignment• Динамическое программирование
– Нидлман-Вунш– Смит-Ватерман– Весовые матрицы
• Blast/PsiBlast• Hidden Markow Model
20
Multiple Alignment• Clustal• Muscle• KAlign• Mafft• TCoffee
21
Сборка контигов• Reference (по сути pairwise)
– Bowtie– Bwa– Cufflinks– Mummer
• De Novo (без референтная)– AMOS
22
Genomics & genetics• Поиск повторов• Ферменты рестрикции• Транскрипционные факторы• Рамки считывания• Подбор праймеров• Моделирование экспериментов
генной инженерии
23
Анализ белков• Предсказание вторичной
структуры• Фолдинг и третичная структура• Поиск активных сайтов• Предсказание взаимодействия• Обратная трансляция• Взаимодействие РНК
24
UGENE Service• Идея: использование удаленных
вычислительных ресурсов для решения задач биоинформатики
25
Аппаратное обеспечение• Многоядерные процессоры• Расширенные наборы инструкций
SIMD (SSE,SSE2,AltiVEC)• Архитектура CELL процессоров• NVIDIA GPU с CUDA библиотекой• ATI GPU с ATISTREAM библиотекой
26
Компоненты сервиса1) Графический интерфейс создания
вычислительных схем и запуска вычислений
2) Вычислительный модуль– Менеджер вычислительных задач UGENE
(внутренний планировщик)– Сервис управления процессами в
кластерной среде или вычислительном облаке (внешний планировщик)
3) Центр администрирования
Менеджер вычислительных задач
• Низкоуровневая реализация алгоритмов
• Планировщик выполнения заданий• Оптимизация приоритета задач и
выделяемой памяти• Состояние работы вычислительной
схемы
28
Сервис управления процессами
• Взаимодействие с удаленными процессами UGENE
• Инициирует запуск задач• Управление очередью задач• Управление ресурсами кластера
или вычислительного облака
29
Центр администрирования• Установить параметры сервиса
управления процессов: ограничить мощности CPU, дисковую и оперативную память и т.д.
• Вести учет пользователей использующих HPC платформу, просматривать пользовательские записи, управлять авторизационными механизмами.
• Использовать средства мониторинга пользовательских запросов для просмотра статистики задач.
30
Практика: Amazon EC2Сервис предоставляет вычислительные мощности в
облаке.Позволяет:• Использовать заранее подготовленный образ
виртуальной машины содержащий приложение, данные и связанные с ними конфигурационные параметры.
• Загружать образ в виде виртуальной машины заданной категории мощности;
• Использовать динамический или статический IP для данной машины;
• Использовать блоки хранения данных с возможностью динамической подгрузки и т.д
• Управлять инфраструктурой с помощью API: java, cmd line, python
31
UGENE на Amazon EC2
32
UGENE на Amazon EC2
33
За кулисами UGENE
34
Процесс разработкиНепрерывный цикл:• Проектирование• Разработка• Тестирование• Ревью
Срок релиза: 2 месяца
35
Что мы применяем• Visual Studio, Qt Creator• C++, bash• Qt 4.7• Subversion• Mantis bug tracking system• Jetbrains Teamcity• Wiki
36
Разработка• Нацеленность на результат• Жесткие временные рамки• Кодекс разработчика UGENE• Контроль качества• Ответственность• Помощь в ревью
37
Тестирование• Использование Jetbrains Teamcity
– Pre-commit build– Nightly, weekly build– Remote tasks– Binary Snapshots
• Автоматические тесты (база более 5000, постоянно пополняется)
• Мануальные тесты
38
Deployment• Binary snapshots в team-city• Windows
– NSIS installer• Mac
– Script based on Firefox-installer• Linux
– Binary X11 snapshot– Native packages
39
Официальные дистрибутивы Linux
• Завязка– Создание скриптов– Переписка
• Продвижение• Поддержка
– Форс-мажор почти всегда– Правила разные
40
Хаос СПО• Legacy code
– «Велосипеды»– Очень старый код
• Война лицензий– Идеи автора– Неясности
41
Становление коммьюнити• Работа с пользователем
– Невыполнимые запросы– Неочевидные вопросы– Непонятные реквесты
• Обратная связь• Как подружиться?• Наша позиция
42
Полезные ссылки
• http://ugene.unipro.ru• http://www.open-bio.org/• http://www.ncbi.nlm.nih.gov/bookshel
f/
• http://webcast.berkeley.edu• http://www.embl.org/
43
СпасибоВопросы
?