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

Программный комплекс — практическая часть моей диссертации, реализованная на языке программирования Java. Он предназначен для работы с алгоритмами распознавания скрытых последовательностей в области биоинформатики (определение фрагментов генов — экзонов и интронов; определение вторичной структуры белка). В рамках комплекса для решения обеих задач используется одинаковый подход, основанный на скрытых марковских моделях.

На данный момент комплекс находится в фазе начальной разработки. Хотя после интенсивного рефекторинга я в целом доволен структурой и интерфейсами компонент, они могут измениться в будущем.

Ссылки:

Теория

Особенности реализации

Содержание

Комплекс включает имплементации следующих алгоритмов:

  • поиск последовательности состояний с наибольшим правдоподобием для скрытых марковских моделей произвольного порядка, описанных в диссертации;
  • построение по принципу максимального правдоподобия композиций алгоритмов двух видов: байесовских (линейных) смесей и иерархических композиций, в которых каждая наблюдаемая строка распознается строго одним алгоритмом;
  • преобразование биологических данных в форматах Genbank (ДНК / гены) и DSSP (белки) к единому виду;
  • вспомогательные алгоритмы: отсеивание предикатов для иерархических композиций с помощью последовательного наращивания сложности и генетического алгоритма; EM-алгоритм с последовательным добавлением или удалением компонент для выбора оптимального размера байесовской смеси алгоритмов.

Вместе с алгоритмами в комплекс входят соответствующие вероятностные модели, например, описанная в диссертации скрытая марковская модель и байесовская смесь таких моделей. Большинство трудоемких вычислений распараллелены с использованием встроенных средств Java (пакет java.util.concurrent).

Планы на будущее

  • Декодирование — поиск последовательности наиболее вероятных скрытых состояний по заданной наблюдаемой строке. Поиск наиболее вероятных коротких цепочек состояний и их согласование (для того, чтобы последовательность скрытых состояний, которую возвращает алгоритм, была корректной).
  • Построение композиций (байесовских и иерархических) для полученных декодирующих алгоритмов.
  • Иерархические композиции с функциями компетентности более сложного вида, чем индикаторные, например, с использованием логистической функции.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *