Предсказание генов – определение кодирующих и регуляторных последовательностей ДНК в геноме. Кодирующие последовательности - последовательности, несущие информацию о строении белков. Регуляторные последовательности – вспомогательные последовательности в цепочке преобразования последовательности ДНК в белок.
Цель проекта: обучение моделей ML/DL для определения экзон-интронных последовательностей.
У большинства организмов гены состоят из ДНК, где определенная последовательность ДНК определяет функцию гена. Ген транскрибируется с ДНК на РНК, которая может либо быть некодирующей (ncRNA) или промежуточным звеном (mRNA), траслируемым впоследствии в белок. Каждая из этих стадий контролируется определенным элементами последовательности или области внутри гена. Каждый функциональный ген, следовательно, требует нескольких обязательных элементов последовательности. Это включает в себя последовательность, которая фактически кодирует функциональный белок, а также несколько областей регуляторной последовательности.
На рисунке ниже представлена структура кодирующего белок гена эукариотов.
-
The open read frame (ORF) представляет собой область, состоящую из экзонов и интронов, которая траскрибируется сначала на pre-mRNA, а затем в процессе слайсинга происходит "вырезание" интронных областей и образование конечной, готовой к трансляции mRNA.
-
Регуляторные последовательсноти расположены по обеим сторонам от ORF. 5'UTR и 3'UTR - это нетранслируемые участки, содержащие регуляторные элементы.
- ATG - стартовый кодон, с которого начинается процесс транскрипции, TAA, TAG и TGA - стоп кодон, прерывающие данный процесс.
(gcc)gccRccATGG
- Подчеркнутые нуклеотиды указывают кодон начала трансляции , кодирующий метионин, если рассматривать для ДНК, то ATG соответственно.
- Заглавные буквы обозначают высоко консервативные основания , т.е. последовательность «AUGG» постоянна или редко, если вообще меняется.
- «R» означает, что в этом положении всегда наблюдается пурин (аденин или гуанин) (по Козаку чаще встречается аденин).
- Строчная буква обозначает наиболее распространенное основание в положении, где основание, тем не менее, может варьироваться.
- Последовательность в скобках (gcc) имеет неопределенное значение.
Для определения начала и конца экзон-интронных последовательностей используем особые участки ДНК – нетранслируемые области (или нетранслируемые последовательности, НТП). Они не используются в качестве матрицы для синтеза белка и прилегают к транслируемой области (т.е. искомому участку) с обеих сторон: в начале – 5'НТП, в конце – 3'НТП.
Для решения данной задачи создается 2 модели МО и, соответственно, 2 датасета: первая для определения начала экзон-интронной последовательности, вторая – для определения ее конца. Используемый датасет включает в себя участки 5'НТП, 3'НТП и участки, не являющиеся ни 5'НТП, ни 3'НТП (межгенные области или транслируемые области). Причем для модели, определяющей начало искомого участка, класс "1" включает в себя 5'НТП, класс "0" – 3'НТП и участки, не являющиеся ни 5'НТП, ни 3'НТП. А для модели, определяющей конец искомого участка, наоборот, класс "1" включает в себя 3'НТП, а класс "0" – 5'НТП и участки, не являющиеся ни 5'НТП, ни 3'НТП.
Для снижения объема обрабатываемой информации датасет создается только из последовательности первой хромосомы человека.
Опишем процесс создания датасетов:
- Считывание границ экзонов и кодирующих последовательностей;
- Выделение 5'НТП и 3'НТП последовательностей;
- Выделение последовательностей, не являющихся ни 5'НТП, ни 3'НТП;
- Исключение пересечений последовательностей, не являющихся ни 5'НТП, ни 3'НТП, между собой и с 5' и 3'НТП последовательностями;
- Разделение последовательностей на классы "0" и "1" для двух моделей МО.
Рассмотрим каждый этап в отдельности:
-
Границы экзонов и кодирующих последовательностей получают из аннотации к геному, представляющей собой текстовый файл "genomic.gff". Файл содержит следующие позиции: а) Имя хромосомы (в нашем случае – NC_000001.11) б) Источник аннотации (в нашем случае – BestRefSeq) в) Тип последовательности (в нашем случае - exon или cds) г) Границы последовательности (например, 11874 12227) д) Обозначение цепочки ДНК ("+" или "-", в нашем случае "+") е) и др. информацию, например, имя гена или id последовательности
Сама последовательность содержится в файле chromosome1.fasta (fasta - текстовый формат для нуклеотидных последовательностей, в котором нуклеотиды обозначаются при помощи однобуквенных кодов).
Для того, чтобы получить информацию о границах экзонов и кодирующих последовательностей, воспользуемся парсером (библиотека Biopython (Bio), модуль SeqIO). При использовании парсера необходимо указать следующие данные: имя хромосомы, источник аннотации, тип последовательности и цепочку (см. рисунок ниже).
В результате работы парсера получаем следующие датафреймы:
-
Границы нетранслируемых областей определяются по границам экзонов и кодирующих последовательностей. Часто термины "экзон" и "кодирующая последовательность" используют как синонимы, так как в большинстве случаев они совпадают. Однако, первый экзон экзон-интронной последовательность помимо кодирующей последовательности включает в себя 5'НТП, а последний – 3'НТП. Таким образом, границы нетранслируемых последовательностей представляют собой [начало первого экзона; начало первой кодирующей последовательности) и (конец последней кодирующей последовательности; конец последнего экзона]. В данном случае термины "первая" и "последняя" относятся к каждой рассматриваемой эзкон-интронной последовательности.
В качестве конечного результата мы хотим получать модель, которая может определять участки интереса в последовательности нуклеотидов ДНК.
В качестве модели для решения задачи поиска нетранслируемой последовательности был выбран SVM
Всего обучалось 2 модели:
1-ая определяет последовательность перед первой cds в пределах первого экзона
2-ая определяет последовательность после последней cds в пределах последнего экзона
Pipeline состоит из 3 основных этапов:
- формирование датасета
- настройка гиперпараметров
- обучение и тестирование модели
Для подбора гиперпараметров SVM моделей используется отдельный скрипт model_selection.py в котором задействована функция RandomSearchCV из пакета scikiy-learn. После подбора, гиперпараметры автоматически вписываются в конфиг той модели, для которой осуществлялся подбор.
Экспериментально было выяснено, что выбор максимизируемой в процессе подбора гиперпараметров метрики не оказывает влияния на результирующие параметры распределения dice-метрик.
Зависимость распределения метрики от объема датасета (количества примеров класса 0)
Size of zero class | Mean | Std |
---|---|---|
1000 | 0.33 | 0.06 |
2000 | 0.33 | 0.07 |
4000 | 0.32 | 0.09 |
8000 | 0.29 | 0.12 |
16000 | 0.27 | 0.14 |
32000 | 0.23 | 0.17 |
С увеличением объема датасета снижается среднее значение Dice-метрик.
Вероятно, извлекаемые на этапе препроцессинга фичи не релевантны и большое количество примеров класса с похожими (на 1 класс) фичами путает модель.
Зависимость распределения метрики от используемых окон (окрестностей нуклеотида)
List of windows | Mean | Std |
---|---|---|
10 | 0.34 | 0.02 |
25 | 0.35 | 0.03 |
100 | 0.35 | 0.10 |
200 | 0.28 | 0.14 |
500 | 0.22 | 0.16 |
3, 5, 7, 11 | 0.33 | 0.01 |
10, 25 | 0.34 | 0.02 |
10, 25, 50 | 0.35 | 0.03 |
50, 100, 200, 300 | 0.33 | 0.08 |
100, 200, 500 | 0.30 | 0.11 |
500, 1000, 1500 | 0.19 | 0.15 |