Git Product home page Git Product logo

gene_predict_project's Introduction

Разработка пайплайна проекта "Предсказание генов"

Предсказание генов – определение кодирующих и регуляторных последовательностей ДНК в геноме. Кодирующие последовательности - последовательности, несущие информацию о строении белков. Регуляторные последовательности – вспомогательные последовательности в цепочке преобразования последовательности ДНК в белок.

Цель проекта: обучение моделей ML/DL для определения экзон-интронных последовательностей.

Обзор

У большинства организмов гены состоят из ДНК, где определенная последовательность ДНК определяет функцию гена. Ген транскрибируется с ДНК на РНК, которая может либо быть некодирующей (ncRNA) или промежуточным звеном (mRNA), траслируемым впоследствии в белок. Каждая из этих стадий контролируется определенным элементами последовательности или области внутри гена. Каждый функциональный ген, следовательно, требует нескольких обязательных элементов последовательности. Это включает в себя последовательность, которая фактически кодирует функциональный белок, а также несколько областей регуляторной последовательности.

На рисунке ниже представлена структура кодирующего белок гена эукариотов.

  • The open read frame (ORF) представляет собой область, состоящую из экзонов и интронов, которая траскрибируется сначала на pre-mRNA, а затем в процессе слайсинга происходит "вырезание" интронных областей и образование конечной, готовой к трансляции mRNA.

  • Регуляторные последовательсноти расположены по обеим сторонам от ORF. 5'UTR и 3'UTR - это нетранслируемые участки, содержащие регуляторные элементы.

Закономерности в строении последовательностей

  1. ATG - стартовый кодон, с которого начинается процесс транскрипции, TAA, TAG и TGA - стоп кодон, прерывающие данный процесс.

2. В 99% случаев интроны начинаются с последовательности GT (GU в РНК) и заканчиваются последовательностью AG.

3. В результате сплайсинга кодон может быть разделен интроном тремя способами. Следовательно, число нуклеотидов в экзонах или интронах НЕ ОБЯЗАТЕЛЬНО кратно трем.

4. Гены, кодирующие белок, транскрибируются РНК-полимеразой II с образованием мРНК. Промоторы многих генов, транскрибируемых полимеразой II, содержат последовательность, подобную TATAA, на 25–30 нуклеотидов выше сайта начала транскрипции.

5. Консенсусная последовательность Козака (Консенсус Козака или последовательность Козака) представляет собой мотив нуклеиновой кислоты, который функционирует как сайт инициации трансляции белка в большинстве эукариотических транскриптов мРНК.

(gcc)gccRccATGG

  • Подчеркнутые нуклеотиды указывают кодон начала трансляции , кодирующий метионин, если рассматривать для ДНК, то ATG соответственно.
  • Заглавные буквы обозначают высоко консервативные основания , т.е. последовательность «AUGG» постоянна или редко, если вообще меняется.
  • «R» означает, что в этом положении всегда наблюдается пурин (аденин или гуанин) (по Козаку чаще встречается аденин).
  • Строчная буква обозначает наиболее распространенное основание в положении, где основание, тем не менее, может варьироваться.
  • Последовательность в скобках (gcc) имеет неопределенное значение.

6. На расстоянии приблизительно 300 п.н. от стоп кодона расположена консенсусная последовательность AATAAA.

Используемый датасет

Для определения начала и конца экзон-интронных последовательностей используем особые участки ДНК – нетранслируемые области (или нетранслируемые последовательности, НТП). Они не используются в качестве матрицы для синтеза белка и прилегают к транслируемой области (т.е. искомому участку) с обеих сторон: в начале – 5'НТП, в конце – 3'НТП.

Для решения данной задачи создается 2 модели МО и, соответственно, 2 датасета: первая для определения начала экзон-интронной последовательности, вторая – для определения ее конца. Используемый датасет включает в себя участки 5'НТП, 3'НТП и участки, не являющиеся ни 5'НТП, ни 3'НТП (межгенные области или транслируемые области). Причем для модели, определяющей начало искомого участка, класс "1" включает в себя 5'НТП, класс "0" – 3'НТП и участки, не являющиеся ни 5'НТП, ни 3'НТП. А для модели, определяющей конец искомого участка, наоборот, класс "1" включает в себя 3'НТП, а класс "0" – 5'НТП и участки, не являющиеся ни 5'НТП, ни 3'НТП.

Для снижения объема обрабатываемой информации датасет создается только из последовательности первой хромосомы человека.

Опишем процесс создания датасетов:

  1. Считывание границ экзонов и кодирующих последовательностей;
  2. Выделение 5'НТП и 3'НТП последовательностей;
  3. Выделение последовательностей, не являющихся ни 5'НТП, ни 3'НТП;
  4. Исключение пересечений последовательностей, не являющихся ни 5'НТП, ни 3'НТП, между собой и с 5' и 3'НТП последовательностями;
  5. Разделение последовательностей на классы "0" и "1" для двух моделей МО.

Рассмотрим каждый этап в отдельности:

  1. Границы экзонов и кодирующих последовательностей получают из аннотации к геному, представляющей собой текстовый файл "genomic.gff". Файл содержит следующие позиции: а) Имя хромосомы (в нашем случае – NC_000001.11) б) Источник аннотации (в нашем случае – BestRefSeq) в) Тип последовательности (в нашем случае - exon или cds) г) Границы последовательности (например, 11874 12227) д) Обозначение цепочки ДНК ("+" или "-", в нашем случае "+") е) и др. информацию, например, имя гена или id последовательности

    Сама последовательность содержится в файле chromosome1.fasta (fasta - текстовый формат для нуклеотидных последовательностей, в котором нуклеотиды обозначаются при помощи однобуквенных кодов).

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

    В результате работы парсера получаем следующие датафреймы:

  2. Границы нетранслируемых областей определяются по границам экзонов и кодирующих последовательностей. Часто термины "экзон" и "кодирующая последовательность" используют как синонимы, так как в большинстве случаев они совпадают. Однако, первый экзон экзон-интронной последовательность помимо кодирующей последовательности включает в себя 5'НТП, а последний – 3'НТП. Таким образом, границы нетранслируемых последовательностей представляют собой [начало первого экзона; начало первой кодирующей последовательности) и (конец последней кодирующей последовательности; конец последнего экзона]. В данном случае термины "первая" и "последняя" относятся к каждой рассматриваемой эзкон-интронной последовательности.

Оценка моделей

В качестве конечного результата мы хотим получать модель, которая может определять участки интереса в последовательности нуклеотидов ДНК.

Решение задачи алгоритмами классического ML

В качестве модели для решения задачи поиска нетранслируемой последовательности был выбран 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

Решение задачи с применением DL

Сравнение результатов

gene_predict_project's People

Contributors

avowedly avatar dariavol24 avatar anastasiia-barbasheva avatar rakovskaya-anastasia avatar polilya avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.