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

Описание программы ExpertDiscovery

Решаемая задача:

Иерархический анализ регуляторных районов генов с целью выявления иерархии транскрипционных факторов и последующей аннотации (предсказания) генетических последовательностей.

Обзор программы:

Программа призвана помочь экспертам при анализе регуляторных районов генов с помощью различных типов сигналов. Эксперту предоставляется набор средств для их визуального анализа, уточнения и объединения. Был разработан формат для загрузки сигналов и разметки последовательностей, используя который результаты счёта других программ могут быть загружены в систему. На основании загруженных данных при помощи модифицированного алгоритма Discovery система способна самостоятельно построить более точные сигналы, предоставив эксперту анализ их биологической значимости и тонкую доводку. Полученные в процессе работы системы сигналы могут быть применены для распознавания. Система ExpertDiscovery является приложением для ОС Windows 9x/2k/XP и обладает удобным графическим пользовательским интерфейсом. Разработка ведётся на языке C++ в среде Microsoft Visual Studio .NET 2003 с использованием библиотеки MFC.

Интерфейс программы:

Интерфейс программы построен по принципам архитектуры "документ/вид". В основном окне программы можно выделить следующие элементы:
     1. Панель проекта;
     2. Панель свойств текущего элемента;
     3. Визуализация текущего элемента.
Их внешний вид можно видеть на рисунке. Также там присутствуют панели инструментов и меню.
Панель проекта служит для навигации по данным, загруженным в программу. На ней данные упорядочены в иерархическую структуру и разбиты на четыре группы:

  • последовательности (Sequences);

  • разметка последовательностей (Markup);

  • комплексные сигналы (Complex signals);

  • текущие работы (Current works).

    В ветке последовательностей в подгруппах Positive и Negative соответственно содержатся последовательности позитивной и негативной выборки. В ветке разметки содержится разметка список имен внешних сигналов упорядоченных по семействам. В разделе "комплексные сигналы" находятся определённые экспертом или построенные автоматически гипотезы. В "текущих работах" можно видеть выполняющиеся в текущий момент операции по обработке данных.

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

    Загрузка данных в программу

    Входными данными для программы являются две выборки последовательностей. Дополнительно может быть загружена их разметка

    Для загрузки данных используется команда меню File->New или кнопка панели инструментов. Процесс загрузки производится в форме мастера. На первой странице производится пояснение последующих шагов. На второй странице требуется указать имя файла в формате FASTA с позитивной выборкой последовательностей. На третьей - имя аналогичного файла с негативной выборкой.

    Сразу после загрузки последовательностей на экране появится мастер для загрузки разметки. Можно отказаться от его услуг, нажав кнопку Cancel. В будущем разметка может быть загружена отдельно при помощи команды контекстного меню всплывающего при щелчке правой кнопкой мыши по группе Markup панели проекта.

    Мастер загрузки разметки содержит четыре шага. На первом шаге содержится описание последующих шагов. На втором требуется указать файл с разметкой позитивной последовательности (см. формат в приложении 1). На третьем - негативной последовательности. На последнем шаге требуется указать файл с описанием имён внешних сигналов (см. формат в приложении 1), либо установить галочку для автоматической генерации этой информации по разметке.

    Создание и редактирование комплексного сигнала

    Для создания комплексного сигнала необходимо воспользоваться контекстным меню, которое появляется при щелчке правой кнопкой мышки на группе "комплексные сигналы" панели проекта или одной из папок в этой группе. В этом меню требуется выбрать пункт New signal. Появится новый сигнал с именем NewSignalXX, где XX - число необходимое для обеспечения уникальности имени сигнала.

    В силу своего определения комплексный сигнал представим в виде дерева, в узлах которого стоят операции, а листья являются терминальными символами. Именно эта форма представления была взята за основу интерфейса. Вначале работы дерево содержит корень с именем сигнала и один неопределённый элемент. После щелчка на неопределённом элементе на панели свойств можно установить тип этого элемента и его параметры. В программе присутствуют следующие типы узлов комплексного сигнала:

  • Операция дистанция (Distance). На панели свойств для этой операции можно установить способ измерения дистанции (Distance type), диапазон расстояний которые могут быть между аргументами операции (Distance from и Distance to) и указать, важен ли порядок аргументов (Order).

  • Операция повторения (Repetition). Свойствами этой операции являются искомое количество повторений (от Count from до Count to), дистанция между этими повторениями (от Distance from до Distance to) и способ измерения дистанции (Distance type).

  • Операция интервал (Interval). Для этой операции на панели свойств устанавливается диапазон позиций последовательности (от Interval from до Interval to), в которых ищется аргумент операции.

  • Слово (Word). Соответствует терминальному символу являющемуся словом. Имеет один параметр - слово в 15-ти буквенном коде (Word).

  • Элемент разметки (Markup Item). Соответствует терминальному символу являющемуся внешним сигналом. Параметрами является семейство (Family) внешнего сигнала и его имя (Name).

    Если тип элемента слово или элемент разметки, то эта ветвь дерева закончилась. В случае унарной операции текущий узел получает ещё одного неопределённого потомка, в случае бинарной операции - двоих. Так продолжается до тех пор, пока комплексный сигнал полностью не определён, т.е. пока не закончатся неопределённые элементы дерева.

    Автоматическое построение комплексных сигналов

    Для автоматического построения комплексных сигналов используется пункт меню Edit->Extract signals... или кнопка панели инструментов. Для запуска процесса появляется мастер, в котором на 1-м шаге устанавливаются параметры отбора результатов и отсева неперспективных гипотез. Часть параметров вынесена на вкладку Advanced. Для их подробного описания смотрите главу 3 этой работы. На втором шаге требуется сформулировать предикаты, которые будут использоваться при построении комплексных сигналов.

    Чтобы задать предикат, необходимо создать его, используя одну из кнопок Distance, Repetition или Interval. После чего установить в окне Editor его параметры и перейти к спецификации следующего предиката.

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

    После завершения мастера в списке текущих задач появится новая задача с именем Extracting signals (x%), где x - процент завершения этой задачи. Это выглядит, как показано на рисунке.

    Распознавание

    При распознавании в программе выбирается множество комплексных сигналов, каждый из которых применяется к последовательности. Тем символам последовательности, где встретился комплексный сигнал, прибавляется вес равный -log(P), где P - оценка вероятности встретить комплексный сигнал на позитивной выборке. Общий вес последовательности рассчитывается как сумма весов всех её символов. По обучающим данным экспертом выбирается порог и считается, что если вес последовательности больше порогового значения, то последовательность принадлежит к выборке с позитивными последовательностями. Для выбора порога эксперту предоставляется диалог, который показывает ошибку первого и второго рода для выбранного значения.

    Описание входных данных

    Входными данными для программы являются две выборки последовательностей в формате FASTA, разметка этих последовательностей и аннотация имён элементарных сигналов.

    Формат для загрузки метаописания внешних сигналов

    Формат для загрузки описания внешних сигналов

    Описание выходных данных

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

  •