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

Глубокое обучение в геномике

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

В этом исследовании мы используем сверточную нейронную сеть для прогнозирования генов метагеномики, которая преодолевает этапы извлечения и выбора признаков, этот метод способен изучать характеристики кодирующих и некодирующих областей и различать кодирующие и некодирующие открытые рамки считывания (ORF) непосредственно из необработанные последовательности ДНК.

Сверточные нейронные сети (CNN) демонстрируют современные предсказания функциональных мотивов в геномике. CNN полезны в настройках, в которых ожидаются некоторые пространственно-инвариантные шаблоны на входе, такие как изображения или последовательные данные. Входные данные в CNN обычно представляют собой матрицу реальных значений. В геномике вводом может быть последовательность ДНК, в которой нуклеотиды A, C, T и G кодируются как [1,0,0,0], [0,1,0,0], [0,0, 1,0] и [0,0,0,1]. Нейроны, которые непосредственно считывают входные данные, называются первым или входным слоем. Слой два состоит из нейронов, которые считывают выходы первого слоя, и так далее для более глубоких слоев, которые также называются скрытыми слоями. Результатом нейронной сети является интересующий прогноз, например, является ли входная ДНК энхансером.

Загрузка данных обучения

Мы используем данные traTest700.zip, предоставленные по этой ссылке, для обучения и тестирования нашего подхода.

Сначала мы заполняем все геномы, затем извлекаем из файлов все кодирующие и некодирующие ORF.

теперь давайте извлечем все ORF. некодирующие ORF помечены как 0, а кодирующие как 1, на этом этапе мы извлекли почти 4 миллиона ORF

Поскольку обучение 4 миллионов ORF требует больших вычислительных ресурсов, я выбрал только 85000 ORF и загрузил их на Google Drive по этой ссылке, чтобы обучить модель в Google Colab.

чтение данных из colab

После чтения данных мы применяем one-Hot кодирование к ORF, что я объяснил в этом посте.

ORF всегда имеют разную длину, глубокое обучение не может обрабатывать ввод переменного размера, поэтому мы применили заполнение постов, как описано в моем предыдущем посте, который вы можете найти здесь.

Теперь нам нужно выполнить горячую кодировку меток и сложить закодированные ORF в массив numpy.

Перед созданием модели у нас есть последний шаг, вы догадались!?. разделение данных на обучение и тестирование. мы используем 20% данных в качестве набора для тестирования.

Наконец, пришло время создать нашу модель CNN, шаг гиперпараметров уже сделан.

Теперь давайте обучим нашу модель и понаблюдаем за ее производительностью. Данные обучения разделены на 70% для обучения и 30% для проверки.

пришло время оценить нашу модель с помощью матрицы неточностей.

Наша модель архивирует точность 85%, что не так уж плохо, но мы можем улучшить ее до 94%, если обучим модель со всеми данными, так как глубокое обучение, чем больше данных оно получает, тем лучше оно работает.

резюме

В этом уроке мы узнали, как применять CNN для предсказания генов, и шаги, которые необходимо выполнить для их создания. Моя следующая статья будет посвящена использованию NLP для предсказания генов.

Следуйте за мной в моих LinkedIn и GitHub.