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