ВИЗУАЛИЗАЦИЯ РЕЗУЛЬТАТОВ СЕКВЕНАЦИИ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ДНК
Рябинин К.В.
Аспирант, Пермский государственный национальный исследовательский университет
ВИЗУАЛИЗАЦИЯ РЕЗУЛЬТАТОВ СЕКВЕНАЦИИ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ДНК
Аннотация
В статье рассмотрено использование адаптивной мультиплатформенной клиент-серверной системы научной визуализации для решения задачи наглядного отображения результатов множественного выравнивания последовательностей ДНК и построения филогенетических деревьев.
Ключевые слова: научная визуализация, мобильные устройства, мультиплатформенность, OpenGL(ES).
Ryabinin K.V.
Postgraduate student, Perm State National Research University
VISUALIZATION OF DNA SEQUENCING RESULTS
Abstract
The article is devoted to the automated creation of graphical representation for the DNA sequences multiple alignment results and building of phylogenetic trees with help of adaptive multiplatform client-server scientific visualization system.
Keywords: scientific vizualization, mobile devices, multiplatform portability, OpenGL(ES).
ВведениеВ настоящее время научная визуализация является одним из наиболее востребованных и активно развивающихся направлений компьютерной графики. Существует большое количество прикладных программных продуктов и библиотек, которые предоставляют возможность строить наглядные изображения по большим объёмам входных данных, являющихся результатами каких-либо научных экспериментов. Эти входные данные, как правило, порождаются решателями (англ. solver) – программами, производящими математическое моделирование объектов и процессов, или, в более сложном случае, программно-аппаратными комплексами, производящими научный эксперимент с объектами реального мира. Однако, несмотря на значительное количество существующих средств научной визуализации, в данном направлении на сегодняшний день остаётся ещё ряд проблем, требующих проведения исследований и поиска эффективных решений.
В работах [1], [2], [3] нами был проведён анализ современных средств научной визуализации и сформулированы основные проблемы, присущие им:
- Узкая специализация; отсутствие высокоуровневых средств интеграции со сторонними решателями.
- Небольшое количество мультиплатформенных решений (то есть решений, способных работать под управлением различных операционных систем на высокопроизводительных вычислительных комплексах, настольных компьютерах и мобильных устройствах одновременно).
- Недостаточная проработанность вопроса организации эффективной распределённой визуализации.
Для решения указанных проблем был разработан унифицированный подход к созданию систем научной визуализации, а затем на его основе была спроектирована и реализована система, получившая название SciVi.
Целью данной работы является тестирование и отладка системы научной визуализации SciVi на реальной научной задаче визуализации результатов множественного выравнивания последовательностей ДНК и построения филогенетических деревьев.
Ключевые особенности SciVi
Система научной визуализации SciVi является универсальной благодаря наличию эффективных высокоуровневых средств интеграции со сторонними решателями. Процесс интеграции происходит в полуавтоматическом режиме и основан на методах онтологического инжиниринга. Суть интеграции состоит в том, что пользователь, зарегистрировав интересующий его решатель в системе SciVi, получает возможность при помощи единого интерфейса управлять работой этого решателя и процессом визуализации генерируемых этим решателем данных. Принцип интеграции состоит в том, что при регистрации решателя система SciVi формирует описание его входных и выходных параметров. На основе входных параметров затем создаётся интерфейс управления решателем, а на основе выходных – шаблон графической сцены, в который затем подставляются генерируемые решателем данные. При наличии исходного кода решателя SciVi осуществляет поиск входных и выходных параметров автоматически, используя для этого онтологию синтаксических конструкций ввода-вывода различных языков программирования. В условиях отсутствия исходного кода пользователь должен сформировать список входных и выходных параметров самостоятельно (для чего SciVi предоставляет удобный графический интерфейс). Шаблон сцены также создаётся с участием пользователя. Он представляет собой связь выходных параметров решателя с визуальными образами, описанными в системе SciVi при помощи соответствующей онтологии.
Целевыми операционными системами для SciVi являются Windows, GNU/Linux, OS X, iOS и Android, то есть она может работать на ЭВМ различных классов (на высокопроизводительных вычислительных комплексах, настольных компьютерах и мобильных устройствах). Мультиплатформенность достигнута путём архитектурного деления SciVi на платформенно-независимое ядро и платформенно-зависимую прослойку, при этом наибольшая часть кода (порядка 85%) сосредоточена в ядре и написана на C++. Абстракция от функций операционной системы обеспечивается использованием разработанного в пермской IT-компании ООО «Ньюлана» фреймворка NFoundation, который предоставляет механизмы для работы с памятью, сетью, файлами и т. д. Для работы с графикой используются фреймворки NGraphics и NChart3D [4], разработанные в ООО «Ньюлана» при активном участии автора, а также распространяемые по лицензии BSD библиотеки научной визуализации семейства VTK [5]. Как фреймворки NGraphics и NChart3D, так и библиотеки семейства VTK используют для отображения графики стандарт OpenGL(ES), а потому совместимы со всеми вышеперечисленными операционными системами. NGraphics предоставляет базовые методы визуализации двумерных и трёхмерных сцен, воспроизведения анимации, работы со сложными материалами и освещением, а также организации интерактивности. NChart3D служит для построения графиков и диаграмм. VTK используется для эффективной организации специализированных режимов визуализации, таких как рендеринг сечений и объёмов.
Графический интерфейс пользователя строится при помощи модуля GUIBuilder [6]. Преимуществом этого модуля перед аналогами является его высокая эффективность в контексте совмещения графического интерфейса со сложной трёхмерной визуализацией: GUIBuilder основан на фреймворке NGraphics, то есть элементы управления рисуются на экране посредством OpenGL(ES), так же, как и подлежащая визуализации сцена. Такой подход обеспечивает использование одного графического контекста и одного графического API для отображения всех визуальных элементов на экране. Отсутствие переключения графических контекстов экономит время, требуемое на прорисовку каждого кадра, ускоряя процесс визуализации и увеличивая производительности приложения в целом. В особенности прирост производительности заметен на мобильных устройствах, вычислительная мощность которых заметно уступает настольным компьютерам. Кроме того, модуль GUIBuilder позволяет решить проблему двойного дизайна – необходимость разрабатывать графический интерфейс пользователя для настольных компьютеров и мобильных устройств по отдельности. GUIBuilder принимает на вход высокоуровневое декларативное описание интерфейса пользователя на языке XML, а затем в каждой конкретной операционной системе автоматически отображает нужные элементы управления и обеспечивает нужные механизмы взаимодействия с ними, извлекая необходимые данные и ресурсы из платформенно-зависимых субмодулей.
SciVi построена на принципах клиент-серверной архитектуры, при этом процесс визуализации адаптивно распределяется между клиентом и сервером. Планирование этого распределения является задачей сервера и осуществляется на основе эвристик: учитывается быстродействие клиента, загруженность сервера и скорость сетевого соединения. Сервер выполняет визуализацию тех данных, которые остаются неизменными в процессе интерактивного взаимодействия пользователя со сценой, например, текстур для трёхмерных моделей. Кроме того, сервер выполняет упрощение данных, подлежащих визуализации, и адаптацию их к аппаратным особенностям клиента. Затем эти данные отправляются клиенту по сети, и клиент строит итоговое изображение, обеспечивая максимальную интерактивность и плавность воспроизведения анимации.
Архитектура системы научной визуализации SciVi представлена на рис. 1.
Рис. 1 - Архитектура системы научной визуализации SciVi
Высокое визуальное качество изображения, которое строится клиентом, обеспечивается использованием разработанного автором алгоритма адаптивного сглаживания границ объектов. Этот алгоритм основан на суперпозиции суперсемплинга [7] и быстрого аппроксимированного антиалиасинга [8]. Он является адаптивным, так как автоматически настраивается на аппаратные особенности конкретной платформы, а также предусматривает автоматическое отключение сглаживания на периоды, когда критична высокая скорость визуализации. К таким периодам относится динамическое изменение сцены в процессе интерактивного взаимодействия с ней пользователя и в процессе воспроизведения анимации.
Визуализация ДНК и филогенетических деревьев
В качестве одной из тестовых задач для системы научной визуализации SciVi была взята задача визуализации результатов множественного выравнивания последовательностей ДНК и построения филогенетических деревьев по этим последовательностям. В роли решателя использовалась программа Clustal [9]. Входными данными выступали результаты секвенации штамма бактерий, осуществлённой на базе Института экологии и генетики микроорганизмов УрО РАН (Пермь).
Результат секвенации представляет собой строки в некотором заранее заданном алфавите, каждая буква в котором соответствует определённому азотистому основанию (как правило, A – аденин, G – гуанин, С – цитозин, T – тимин, N – нераспознанное основание). Каждая строка соответствует одной из цепочек ДНК. Clustal обрабатывает эти строки, выполняя множественное выравнивание путём добавления символов пробела между буквами таким образом, чтобы в соответствующих позициях различных строк оказались по возможности одинаковые буквы. На основе множественного выравнивания осуществляется сравнение последовательностей ДНК и оценка степени их соответствия.
После множественного выравнивания Clustal формирует данные филогенетического дерева последовательностей. Филогенетическое дерево является наглядным способом отображения родственных связей между организмами, в данном случае – между носителями изучаемых ДНК.
Сервер SciVi подставляет данные, генерируемые программой Clustal, в шаблон сцены, и отправляет полученное описание сцены клиенту.
Визуализация ДНК осуществляется при помощи диаграммы последовательности, которая строится на клиенте SciVi средствами фреймворка NChart3D. Буквы алфавита заменяются прямоугольниками разных цветов; соответствие цветов буквам прописывается в легенде диаграммы. Результат визуализации представлен на рис. 2 (а).
Для визуализации филогенетических деревьев фреймворк NChart3D был расширен специальным типом диаграммы. Результат визуализации представлен на рис. 2 (б).
Рис. 2 – Визуализация последовательности ДНК (а) и филогенетического дерева (б)
В процессе решения описанной задачи было отлажено использование фреймворка для построения диаграмм NChart3D в составе системы научной визуализации SciVi, а также увеличена стабильность работы клиент-серверного взаимодействия в этой системе.
Система SciVi представляет собой удобный и эффективный инструмент для научной визуализации. Успешное её тестирование на реальных научных задачах доказывает жизнеспособность принятых архитектурных решений. В будущем планируется совершенствование SciVi путём расширения используемых в ней онтологий, портирования клиентской и серверной частей на другие платформы и улучшение эвристик, используемых при планировании адаптивного распределения рендеринга. Кроме того, планируется тестирование системы на других научных задачах из различных предметных областей.
Литература
- Рябинин К.В. Разработка адаптивного мультиплатформенного визуализтора результа-тов научных расчётов для высокопроизводительных вычислительных систем. // XXII Международная конференция по компьютерной графике и машинному зрению «ГрафиКон'2012»: труды конф. (Москва, 1-5 октября 2012 г.). – М., 2012. – С. 193-198.
- Рябинин К.В. Разработка мультиплатформенной клиент-серверной системы для научной визуализации // Научно-технический вестник Поволжья. – Казань, 2013. – №2. – С. 197-203.
- Ryabinin, K., Chuprina, S. Adaptive Scientific Visualization System for Desktop Computers and Mobile Devices // Procedia Computer Science. – 2013. – V. 18. –P. 722-731.
- Рябинин К.В. Разработка мультиплатформенной библиотеки построения и визуализации диаграмм // Научная визуализация. – 2014. – К. 1, Т. 6, № 1. –С. 41-57.
- Ahrens, J. A Parallel Approach for Efficiently Visualizing Extremely Large, Time-Varying Datasets / James Ahrens, Charles Law, Will Schroeder, Ken Martin, Michael Papka // Los Alamos National Laboratory. – Technical Report #LAUR-00-1620. – 2000.
- Рябинин К.В. GUI-фреймворк для настольных компьютеров и мобильных систем // Актуальные проблемы механики, математики, информатики: сб. тез. науч.-практ. конф. (Пермь, 30 октября – 1 ноября 2012 г.) / гл. ред. В.И. Яковлев; Перм. гос. нац. исслед. ун-т. – Пермь, 2012. – 195 с.
- Carmen Juan Lizandra, M. Graphic libraries for Windows programming // Crossroads, the ACM Student Magazine. – 2000. Vol. 6, Iss. 4 – P. 14-18.
- Lottes, T. Fast Approximate Anti-aliasing [Электронный ресурс] URL: http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf (дата обращения 28.04.2014).
- Larkin, M. ClustalW and ClustalX version 2 / M.A. Larkin, G. Blackshields, N.P. Brown, R. Chenna, P.A. McGettigan, H. McWilliam, F. Valentin, I.M. Wallace, A. Wilm, R. Lopez, J.D. Thompson, T.J. Gibson, D.G. Higgins // Bioinformatics – 2007. Vol. 23, Iss. 21 – P. 2947-2948.