ГЛУБОКОЕ ОБУЧЕНИЕ ДЛЯ НАУК О ЖИЗНИ
Глубокое изучение микробиома человека
Сделать вывод о микробном составе образца из последовательностей ДНК.
Это девятый пост моей колонки Глубокое обучение для наук о жизни, где я пытаюсь продемонстрировать конкретные примеры применения искусственных нейронных сетей к реальным проектам из вычислительной биологии и наук о жизни. Ранее мы рассмотрели несколько приложений глубокого обучения для Древней ДНК, Биологии одной клетки, Интеграция данных, Клиническая диагностика, Микроскопическая визуализация, а также некоторые методы (здесь и здесь) из обработки естественного языка (NLP) для вывода областей неандертальской интрогрессии в геномах современного человека. В этой статье мы узнаем, почему Микробиом человека представляет собой большие данные в биологии и как обучить сверточную нейронную сеть ( CNN) классификатор для прогнозирования микробного состава метагеномического образца начиная с от сырые последовательности в fastq-файле.
Метагеномика как большие данные
К сожалению, непросто начать разработку моделей машинного обучения для биологических и биомедицинских приложений, на мой взгляд, из-за отсутствия данные. Я обсуждал несколько проблем в своем предыдущем посте Есть ли у нас большие данные в науках о жизни?. Там я упомянул три направления в науках о жизни, которые кажутся многообещающими для ИИ и машинного обучения, поскольку они, похоже, обладают достаточным объемом данных, а именно:
- Single Cell Omics
- Визуализация под микроскопом
- Данные геномики с учетом последовательностей как статистических наблюдений
Позже в комментариях Микаэль Хасс предложил данные Метагеномика и Микробиом в качестве четвертого большого ресурса данных. Действительно, можно найти множество общедоступных данных метагеномики, например, используя замечательный ресурс EMBL-EBI MGnify.
Причина, по которой метегеномику можно назвать большими данными, заключается в относительно дешевом дробном секвенировании, поэтому секвенируются тысячи образцов, а также в относительно низкоразмерном характере данных метагеномики. . Действительно, сопоставление секвенированных фрагментов ДНК с известными микробными организмами обычно приводит к получению 500–1000 надежно обнаруженных микробов, что на самом деле не является многомерными данными по сравнению, например, с генетическая изменчивость или метилирование многомиллионных данных.
Микробный состав с помощью SourceTracker
Помня, что Метагеномика предоставляет множество данных для разработки алгоритмов машинного и глубокого обучения, в этой статье я попытаюсь обучить сверточную нейронную сеть (CNN), которая может оценивать источники микробных сообществ для данного образца. Например, взяв образец мазка со стола в моем офисе, какие микробы я ожидаю там найти? Будут ли они напоминать мою микробиоту кожи или, может быть, микробы полости рта из моего рта? Это можно оценить с помощью замечательной программы под названием SourceTracker.
Вкратце, SourceTracker - это байесовская версия алгоритма кластеризации Gaussian Mixture Model (GMM) (похожего на Direchlet Multinomial Mixtures), который обучается на набор справочных данных под названием Источники, т. е. различные классы, такие как микробные сообщества почвы, полости рта или кишечника человека и т. >. Поэтому алгоритм SourceTracker явно моделирует образец приемника как смесь источников. Байесовский вкус алгоритма проистекает из использования априорных значений Direchlet при подборе модели.
Первоначально SourceTracker разрабатывался для данных 16S, то есть с использованием только генов рибосомной РНК 16S. Напротив, здесь мы попытаемся обучить классификатор, используя данные дробовика метагеномики. Кроме того, SourceTracker не был разработан для использования с необработанными последовательностями метагеномики, но вместо этого ему необходимо каким-то образом количественно определить численность микробов (численность OTU), например, с помощью конвейера QIIME, MetaPhlan2 Или Kraken2 . Напротив, цель классификатора CNN, который мы будем здесь обучать, - перейти от fastq-файла к прогнозированию микробного состава метагеномного образца без количественной оценки микробного содержания.
Данные Проекта микробиома человека (HMP)
Для обучения классификатора CNN мы будем использовать замечательный ресурс данных Human Microbiome Project (HMP). HMP предоставляет количественную оценку метагеномного таксона с помощью MetaPhlan2, который можно скачать здесь.
Профили метагеномики были рассчитаны для 4 человеческих тканей (микробных сообществ): орального, кишечного, кожного и влагалище. Ниже мы собираемся использовать матрицу численности микробов для выбора тканеспецифичных родов бактерий, то есть групп бактерий, которые в изобилии присутствуют в только одной из четырех тканей, и поэтому они могут служить производителями микробов для тканей человека. Позже мы будем использовать эталонные геномы тканеспецифичных родов бактерий для обучения классификатора CNN распознаванию микробных сообществ (орального, кишечного, кожного, влагалищного) из сырые последовательности в fastq-файле. Мы начнем с чтения матрицы численности микробов и визуализации образцов из 4 тканей человека с помощью графиков уменьшения размеров (PCA и tSNE).
Как на графиках PCA, так и на tSNE, мы можем видеть, что образцы четко разделяются тканью происхождения с точки зрения численности микробов. Это означает, что должно быть довольно просто обучить классификатор CNN, который может предсказать ткань происхождения для данного образца, проверяя последовательности микробной ДНК в образце. Однако для построения графиков PCA и tSNE мы использовали численность микробов, а не сами данные секвенирования, поэтому нам нужно сначала извлечь микробные организмы, которые лучше всего разделяют кишечник, ротовую полость и кожу и вагинальные образцы. Контрольные геномы наиболее различающихся микробных организмов будут использоваться позже для создания набора последовательностей обучающих данных для классификатора CNN.
Выбор тканеспецифичных микробов
Для выбора микробных организмов, которые лучше всего разделяют образцы из кишечника, полости рта, кожи и влагалища, мы могли бы обучить, например, Случайный лес и просмотрите важность функций и направления их действия. Однако здесь похоже, что существует множество тканеспецифичных микробов, то есть микробов, которых много в одной ткани, но почти нет во всех других тканях. Например, если мы посмотрим на Haemophilus parahaemolyticus, у которого в фрейме данных о численности микробов индекс 1950, он выглядит очень специфичным для орального употребления:
Ниже, для простоты, мы сосредоточимся только на бактериальных микробах, т.е. археи и вирусы будем игнорировать, а только бактериальные организмы, отнесенные к уровню рода в наборе данных HMP будет сохранен для дальнейшего анализа. Мы собираемся составить списки тканеспецифичных родов бактерий и использовать их названия для поискового бактериального эталонного генома из базы данных RefSeq NCBI. Таким образом, здесь мы разбиваем общую матрицу численности микробов только на численность бактериальных родов, мы видим, что в проекте HMP присутствуют 227 бактериальных родов. Затем мы собираемся пройтись по всем родам бактерий HMP и составить списки орального-, -, кожи-, влагалищного- и Специфичные для кишечника роды, соответствующие простому критерию: если бактериальный род в 10 раз больше в одной ткани по сравнению со всеми другими тканями, род считается быть тканеспецифичным.
Этот простой критерий тканевой специфичности дает нам 61 род бактерий, специфичных для полости рта, 53 для кишечника, 49 для кожи и 16 для влагалища. Давайте выберем и визуализируем изобилие нескольких тканеспецифичных родов из каждой из 4 тканей:
Выше мы ясно видим, что нам удалось подобрать очень сильные тканеспецифичные маркеры родов бактерий. Во влагалище было меньше всего, т.е. 16 тканеспецифичных родов. Однако при внимательном рассмотрении можно было увидеть, что в него входят такие виды, как Burkholderia, Ralstonia, Bordetella, которые вызывают подозрение и с большой вероятностью могут быть реагентом для ПЦР загрязняющие вещества . Поэтому мы внимательно изучили список из 16 родов бактерий, специфичных для влагалища, и смогли с уверенностью сделать вывод о вагинальной специфичности только 12 из них по разным причинам. Таким образом, чтобы поддерживать баланс между тканями для классификационного анализа, мы выберем 12 наиболее тканеспецифичных маркеров для каждой из 4 тканей, вот и выбранные нами роды бактерий:
После долгих размышлений я решил исключить Streptococcus из списка родов, специфичных для полости рта. Несмотря на то, что род Streptococcus кажется специфичным для полости рта, он включает виды, которые могут быть в изобилии и в других тканях, таких как кишечник. Это может сбить с толку классификатор CNN, потому что, если мы найдем эталонные геномы для Streptococcus, мы получим слишком много контаминирующих последовательностей, происходящих от специфичных для кишечника видов Streptococcus, однако получим ошибочные оральные метки, если предположить что Streptococcus - это специфический для полости рта род. Подробности смотрите в полной записной книжке к этой статье.
Мы можем проверить, что выбранные роды микробов могут достаточно хорошо разделить образцы полости рта, кишечника, кожи и влагалища. Для этого запустим быструю кластеризацию на основе корреляционного расстояния Спирмена между образцами и с использованием 48 выбранных родов микробов (12 для каждой из 4 тканей).
Мы четко наблюдаем 4 кластера, соответствующие образцам полости рта, кишечника, кожи и влагалища из проекта HMP. Самый большой кластер - это образцы Oral, а второй по величине кластер соответствует образцам Gut HMP.
Подготовка данных и обучение классификатора CNN
Теперь мы собираемся использовать названия отобранных 48 тканеспецифичных родов бактерий для извлечения идентификаторов всех соответствующих видов и штаммов референсных геномов из базы данных RefSeq NCBI. Приведенный ниже фрагмент демонстрирует, как загрузить и извлечь идентификаторы эталонных геномов тканеспецифичных видов и штаммов, соответствующих 48 выбранным тканеспецифичным родам. Для этой цели мы будем использовать файл сопоставления имени и идентификатора ссылки MapBactName2ID.txt, который можно загрузить с моего github. Файл был создан путем извлечения заголовков эталонных геномов и сопоставления их имен файлов (GCF-id) с заголовками.
Теперь, когда у нас есть идентификаторы эталонных геномов (fasta-files), соответствующие тканеспецифическим родам, мы можем разрезать эталонные геномы и создавать 4 набора последовательностей (например, длиной 80 н.) с метками 0, 1, 2 и 3 для каждого набора, соответствующими родам микробов полости рта, кишечника, кожи и влагалища. В приведенном ниже цикле мы сначала читаем файлы с идентификаторами fasta для каждой из 4 тканей, затем для каждого идентификатора fasta мы читаем файлы fasta и выбираем случайный 3000 последовательностей длиной 80 нт. На лету мы также будем отбрасывать последовательности, содержащие N, H, M и другие неканонические нуклеотиды, и ограничимся только последовательностями, содержащими A, C, T и G.
После того, как мы создали набор данных помеченных последовательностей, где каждая последовательность получает метку 0, 1, 2 или 3, соответствующую ротовой полости, кишечнику, коже и влагалищу, нам нужно будет преобразовать последовательности в тензор с горячим кодированием (3-мерный массив numpy), который может быть прочитан алгоритмом глубокого обучения, например 1D CNN. Затем мы также разделим последовательности быстрого кодирования на train и test подмножества.
Наконец, давайте напишем простую архитектуру 1D CNN и начнем обучать классификатор распознавать шаблоны последовательностей, которые соответствуют 4 классам: микробные сообщества полости рта, кишечника, кожи и влагалища.
Лучший способ проверить, научилась ли сеть классифицировать последовательности, - это оценить ее производительность на свежем тестовом наборе, состоящем из данных, которые она вообще не наблюдала во время обучения. Здесь мы оцениваем модель на тестовом наборе и наносим результаты в виде матрицы неточностей.
Графическое представление матрицы путаницы представляет собой синеватую тепловую карту, которая демонстрирует блочную структуру, подразумевающую, что классификатор 1D CNN смог различить 4 класса микробов достаточно хорошо. Общая средняя оценка точности 60% на первый взгляд может показаться низкой, потому что мы думаем о задаче двоичной классификации, когда случайный классификатор может дать базальную точность 50%. Поэтому наш результат 60% может показаться немного лучше, чем случайный классификатор. Однако помните, что мы здесь имеем дело с 4 классами, поэтому случайный классификатор должен дать нам среднюю точность 25 % (это может быть подтверждено моделированием, здесь не показано) с стандартным отклонением около 5–10% в зависимости от размера выборки. Таким образом, точность 60% значительно выше, чем базовые 25% , которые можно было бы ожидать от случайного классификатора. Кроме того, ниже мы собираемся использовать обученный классификатор для получения приблизительной оценки вклада микробного сообщества в метагеномный образец путем усреднения прогнозов на основе тысяч последовательностей ДНК. Если предположить, что 60% -ная точность классификатора позволяет делать правильные прогнозы для большинства последовательностей, даже если не все из них будут правильно классифицированы, это все равно должно дать нам хорошую интуицию о том, какое микробное сообщество (Устное, Кишечник, кожа или влагалище), откуда взят образец.
Прогнозы микробного состава
Здесь мы собираемся проверить, можно ли использовать обученный классификатор CNN для определения микробного состава случайного метагеномного образца. Для этого мы выберем случайные метагеномные fastq-файлы (из баз данных HMP, MGnify или DIABIMMUNE), сделаем прогнозы для каждой метагеномной последовательности и представим доли последовательностей, которые были присвоены каждый из четырех классов (ротовой полости, кишечника, кожи и влагалища), что приблизительно соответствует фракциям микробных сообществ (микробный состав), присутствующим в каждом образце. Начнем с нескольких примеров из проекта HMP. Я знаю, что мы использовали численность HMP для выбора тканеспецифичных микробных маркеров (однако мы не использовали необработанные данные секвенирования), и использование файлов HMP fastq для определения их микробного состава может иметь некоторую предвзятость. Однако это хорошее начало, по крайней мере, если классификатор CNN не работает на выборках HMP, трудно ожидать, что он будет хорошо работать на независимых выборках. Позже мы повторим этот вывод, используя действительно независимые метагеномные образцы из других проектов, кроме HMP. В приведенном ниже цикле я прочитал файлы HMP fastq (я произвольно выбрал 2 образца из мазков из полости рта, кишечника (стул), кожи и влагалища), одно горячее кодирование их последовательности и выполнить прогнозы с использованием обученного классификатора CNN. Затем я выбираю наиболее надежные прогнозы, в которых одно микробное сообщество имеет вероятность не менее 80%. Наконец, я рисую доли последовательностей, назначенные классификатором каждому микробному сообществу.
Мы можем видеть, что мы получаем достаточно хорошие прогнозы для каждого случайного образца HMP, т.е. первые два выглядят скорее как образцы Oral, поскольку микробы полости рта (синяя полоса) составляют большую часть микробного сообщества, в то время как вторые два выглядят как образцы кишечника и т. д. Метки «Oral_», «Gut_» и т. д. для каждого образца в нижней части рисунка выше указывают настоящую ткань, из которой были взяты образцы в проекте HMP.
Таким образом, мы обучили классификатор CNN, используя контрольные последовательности генома микробов, распространенных в различных тканях из проекта HMP. После этого мы приступили к оценке модели на нескольких случайных выборках HMP. Вероятно, вы можете увидеть здесь возможную проблему. С одной стороны, мы не использовали необработанные последовательности из образцов HMP при обучении классификатора CNN, вместо этого мы использовали эталонные геномы наиболее распространенных родов в данных HMP. С другой стороны, по-прежнему существует утечка информации, поскольку мы по-прежнему использовали тот же проект (хотя и разные типы данных) как для обучения, так и для тестирования. Следовательно, оценка все еще может быть необъективной и выглядеть слишком хорошо, чтобы быть правдой. Для более точной оценки мы выберем 8 случайных образцов полости рта, кишечника, кожи и влагалища из проектов метагеномики, не связанных с HMP.
Теперь мы выполним вывод микробного состава для нескольких метагеномных образцов, которые отличаются от образцов HMP. Образцы стула / кишечника можно получить из проекта Diabimmun e, вот файлы. Метагеномные образцы Oral были загружены из проекта WGS Oral Microbiome, вот файлы и публикация. Образцы кожи были загружены с ресурса MGnify , предоставленного EBI из проекта Закономерности микробиоты кожи у детей и подростков различаются. между сельской и городской средой », а файлы доступны здесь. Образцы вагинальных мазков секвенировались в проекте MOMS-PI, и их можно получить здесь.
Мы применим тот же цикл к образцам, не относящимся к HMP, который мы использовали выше для образцов HMP, только с одним отличием. Нам всегда нужно контролировать, чтобы после применения ограничения вероятности (здесь 90%) мы все еще получали достаточно последовательностей для вычисления долей микробных сообществ. Здесь я требую, чтобы, если у нас нет хотя бы 500 последовательностей (это верно для некоторых случайных выборок, не относящихся к HMP, из-за их низкой глубины секвенирования), порог вероятности будет снижен с 0,9 до 0,6.
Здесь мы снова видим, что прогнозы микробного состава в 8 образцах, не относящихся к HMP, вполне согласуются с истинными микробными сообществами полости рта, кишечника, кожи и влагалища, из которых были взяты образцы. Отличная работа! Наш обученный классификатор CNN, вероятно, может предоставить значимые оценки микробного состава для любого данного образца.
Резюме
В этой статье мы узнали, что Метагеномика представляет собой большие данные, которые подходят для анализа машинного и глубокого обучения. Мы использовали данные метагеномики из Проекта микробиома человека (HMP) и разработали 1D-классификатор CNN, который может успешно прогнозировать вклад различных микробных сообществ (Орального, кишечного, кожного или влагалищного ) к заданному образцу, начиная с необработанных последовательностей в стандартном формате данных fastq, без выполнения количественной оценки микробиологической численности. Этот метод, возможно, дает преимущества по сравнению со стандартным выводом микробного состава с помощью SourceTracker.
Как обычно, дайте мне знать в комментариях о вашей любимой области в Науках о жизни, которую вы хотели бы затронуть в рамках Deep Learning. Следите за мной на Medium Николай Осколков, в Twitter @NikolayOskolkov и подключайтесь в Linkedin. Полную записную книжку Jupyter можно найти на моем гитхабе. Я планирую написать следующий пост о Как предсказать размер популяции с помощью Deep Learning, следите за обновлениями.