Waiting
Login processing...

Trial ends in Request Full Access Tell Your Colleague About Jove
Click here for the English version

Genetics

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

Published: September 25, 2021 doi: 10.3791/62250

Summary

В этом учебнике описывается простой метод построения алгоритма глубокого обучения для выполнения 2-классовой классификации последовательностей метагеномных данных.

Abstract

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

Introduction

Метод метагеномного секвенирования обходит процесс выделения штамма и непосредственно секвенирует общую ДНК в образце окружающей среды. Таким образом, метагеномные данные содержат ДНК разных организмов, и большинство биологических последовательностей взяты из новых организмов, которых нет в текущей базе данных. В соответствии с различными целями исследований, биологи должны классифицировать эти последовательности с разных точек зрения, таких как таксономическая классификация1,классификация вирус-бактерия2,3,4,хромосомно-плазмидная классификация3,5,6, 7и аннотация функции гена (например, классификация генов устойчивости к антибиотикам8 и классификация факторов вирулентности9). ). Поскольку метагеномные данные содержат большое количество новых видов и генов, алгоритмы ab initio, которые не полагаются на известные базы данных для классификации последовательностей (включая классификацию ДНК и классификацию белков), являются важным подходом в анализе метагеномных данных. Однако проектирование таких алгоритмов требует профессиональных математических знаний и навыков программирования; поэтому многие биологи и начинающие разработчики алгоритмов испытывают трудности с построением алгоритма классификации в соответствии с их собственными потребностями.

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

Обзор метода глубокого обучения показан на рисунке 1. Основной технологией алгоритма глубокого обучения является искусственная нейронная сеть, которая вдохновлена структурой человеческого мозга. С математической точки зрения искусственную нейронную сеть можно рассматривать как сложную функцию. Каждый объект (например, последовательность ДНК, фотография или видео) сначала оцифровывается. Затем оцифрованный объект импортируется в функцию. Задача искусственной нейронной сети – дать правильный ответ по входным данным. Например, если искусственная нейронная сеть построена для выполнения задачи классификации 2-класса, сеть должна выводить оценку вероятности, которая составляет от 0 до 1 для каждого объекта. Нейронная сеть должна дать положительному объекту более высокий балл (например, балл выше 0,5), в то время как отрицательный объект должен получить более низкий балл. Для достижения этой цели строится искусственная нейронная сеть с процессами обучения и тестирования. Во время этих процессов данные из известной базы данных загружаются, а затем разделяются на обучающий набор и тестовый набор. Каждый объект оцифровывается надлежащим образом и получает метку («1» для положительных объектов и «0» для отрицательных объектов). В процессе обучения оцифрованные данные в обучающий набор вводятся в нейронную сеть. Искусственная нейронная сеть конструирует функцию потерь, которая представляет собой несходство между выходной оценкой входного объекта и соответствующей меткой объекта. Например, если метка входного объекта — «1», а выходная оценка — «0,1», функция потерь будет высокой; и если метка входного объекта —«0», а выходная оценка — «0,1», функция потерь будет низкой. Искусственная нейронная сеть использует определенный итеративный алгоритм, который корректирует параметры нейронной сети для минимизации функции потерь. Тренировочный процесс заканчивается, когда функция потерь не может быть явно уменьшена. Наконец, данные в тестовом наборе используются для тестирования фиксированной нейронной сети, и оценивается способность нейронной сети вычислять правильные метки для новых объектов. Больше принципов алгоритмов глубокого обучения можно найти в обзоре в LeCun et al. 10.

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

Чтобы помочь биологам и новичкам в разработке алгоритмов быстрее приступить к использованию глубокого обучения, этот учебник предоставляет руководство по созданию простой в использовании структуры глубокого обучения для классификации последовательностей. Эта структура использует форму кодирования «один горячий» в качестве математической модели для оцифровки биологических последовательностей и использует сверточную нейронную сеть для выполнения задачи классификации (см. Дополнительный материал). Единственное, что пользователям нужно сделать перед использованием этого руководства, это подготовить четыре файла последовательностей в формате «fasta». Первый файл содержит все последовательности положительного класса для тренировочного процесса (именуемые «p_train.fasta»); второй файл содержит все последовательности отрицательного класса для тренировочного процесса (именуемый «n_train.fasta»); третий файл содержит все последовательности положительного класса для процесса тестирования (именуемый "p_test.fasta"); и последний файл содержит все последовательности отрицательного класса для процесса тестирования (именуемые "n_test.fasta"). Обзор блок-схемы этого учебника приведен на рисунке 2,а более подробная информация будет приведена ниже.

Subscription Required. Please recommend JoVE to your librarian.

Protocol

1. Установка виртуальной машины

  1. Загрузите файл виртуальной машины из (https://github.com/zhenchengfang/DL-VM).
  2. Загрузите программное обеспечение VirtualBox со https://www.virtualbox.org.
  3. Распакуйте файл ".7z" с помощью соответствующего программного обеспечения, такого как "7-Zip", "WinRAR" или "WinZip".
  4. Установите программное обеспечение VirtualBox, нажав кнопку Далее на каждом шаге.
  5. Откройте программное обеспечение VirtualBox и нажмите кнопку Создать, чтобы создать виртуальную машину.
  6. Шаг 6: Введите указанное имя виртуальной машины во фрейм «Имя», выберите Linux в качестве операционной системы во фрейме «Тип», выберите Ubuntu во фрейме «Версия» и нажмите кнопку «Далее».
  7. Выделите объем памяти виртуальной машины. Рекомендуется, чтобы пользователи потянули кнопку в самой правой части зеленой полосы, чтобы назначить виртуальной машине как можно больше памяти, а затем нажмите кнопку Далее.
  8. Выберите Вариант Использовать существующий файл виртуального жесткого диска, выберите файл "VM_Bioinfo.vdi", загруженный из шага 1.1, а затем нажмите кнопку Создать.
  9. Нажмите кнопку Star, чтобы открыть виртуальную машину.
    ПРИМЕЧАНИЕ: На рисунке 3 показан снимок экрана рабочего стола виртуальной машины.

2. Создание общих папок для обмена файлами между физическим узлом и виртуальной машиной

  1. На физическом узле создайте общую папку с именем «shared_host», а на рабочем столе виртуальной машины создайте общую папку с именем «shared_VM».
  2. В строке меню виртуальной машины последовательно щелкните Устройства, Общая папка, Параметры общих папок.
  3. Нажмите кнопку в правом верхнем углу.
  4. Выберите общую папку на физическом узле, созданную на шаге 2.1, и выберите параметр Автоматическое монтирование. Нажмите кнопку ОК.
  5. Перезапустите виртуальную машину.
  6. Щелкните правой кнопкой мыши на рабочем столе виртуальной машины и откройте терминал.
  7. Скопируйте в терминал команду follow:
    sudo mount -t vboxsf shared_host ./Desktop/shared_VM
    1. При запросе пароля введите «1» и нажмите клавишу«Enter»,как показано на рисунке 4.

3. Подготовьте файлы для обучающих и тестовых наборов

  1. Скопируйте все четыре файла последовательностей в формате "fasta" для процесса обучения и тестирования в папку "shared_host" физического хоста. Таким образом, все файлы также будут поместиться в папке «shared_VM» виртуальной машины. Затем скопируйте файлы из папки «shared_VM» в папку «DeepLearning» виртуальной машины.

4. Оцифруйте биологические последовательности с помощью «одногорякой» формы кодирования

  1. Зайдите в папку «DeepLearning», кликните правой кнопкой мыши и откройте терминал. Введите следующую команду:
    ./onehot_encoding p_train.фаста n_train.фаста p_test.фаста n_test.фаста аа
    (для аминокислотных последовательностей)
    или
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta nt
    (для последовательностей нуклеиновых кислот)
    ПРИМЕЧАНИЕ: Снимок экрана этого процесса приведен на рисунке 5.

5. Обучение и тестирование искусственной нейронной сети

  1. В терминале введите следующую команду, как показано на рисунке 6:
    train.py python
    ПРИМЕЧАНИЕ: Начнется процесс обучения.

Subscription Required. Please recommend JoVE to your librarian.

Representative Results

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

Fang & Zhou11 был направлен на идентификацию полных и частичных белков вируса прокариота по данным вирома. Файл "p_train.fasta" содержит фрагменты белка вирусного вириона для тренировочного набора; файл "n_train.fasta" содержит фрагменты белка вируса-невириона для тренировочного набора; файл "p_test.fasta" содержит фрагменты белка вирусного вириона для тестового набора; а файл "n_test.fasta" содержит фрагменты белка вируса-невириона для тестового набора. Пользователь может напрямую выполнить следующие две команды для построения нейронной сети:
./onehot_encoding p_train.фаста n_train.фаста p_test.фаста n_test.фаста аа
и
train.py python

Производительность показана на рисунке 7.

Fang et al.3 стремились идентифицировать фрагменты ФАГОВ ДНК из фрагментов ДНК бактериальных хромосом в метагеномных данных. Файл "phage_train.fasta" содержит фрагменты ДНК фагов для обучающих наборов; файл "chromosome_train.fasta" содержит фрагменты ДНК хромосом для обучающих наборов; файл "phage_test.fasta" содержит фрагменты ДНК фагов для тестового набора; а файл "chromosome_test.fasta" содержит фрагменты хромосом ДНК для тестового набора. Пользователь может напрямую выполнить следующие две команды для построения нейронной сети:
./onehot_encoding phage_train.fasta chromosome_train.fasta phage_test.fasta chromosome_test.fasta nt
и
train.py python

Производительность показана на рисунке 8.

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

Figure 1
Рисунок 1. Обзор техники глубокого обучения. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этого рисунка.

Figure 2
Рисунок 2. Обзор блок-схемы этого учебника. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этого рисунка.

Figure 3
Рисунок 3. Снимок экрана рабочего стола виртуальной машины. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этого рисунка.

Figure 4
Рисунок 4. Снимок экрана активации общих папок. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этого рисунка.

Figure 5
Рисунок 5. Скриншот процесса оцифровки последовательности. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этого рисунка.

Figure 6
Рисунок 6. Обучайте и тестируйте искусственную нейронную сеть. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этого рисунка.

Figure 7
Рисунок 7. Производительность идентификации фрагментов белка вируса вириона прокариота. Критериями оценки являются Sn=TP/(TP+FN), Sp=TN/(TN+FP), Acc=(TP+TN)/(TP+TN+FN+FP) и AUC. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этого рисунка.

Figure 8
Рисунок 8. Выполнение идентификации фрагментов ДНК фагов. Критериями оценки являются Sn=TP/(TP+FN), Sp=TN/(TN+FP), Acc=(TP+TN)/(TP+TN+FN+FP) и AUC. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этого рисунка.

Дополнительный материал: Пожалуйста, нажмите здесь, чтобы загрузить этот файл.

Subscription Required. Please recommend JoVE to your librarian.

Discussion

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

Учитывая, что многие биологи не знакомы с командной строкой операционной системы Linux, мы предустановили все зависимое программное обеспечение в виртуальной машине. Таким образом, пользователь может напрямую запускать код на виртуальной машине в соответствии с протоколом, упомянутым выше. Кроме того, если пользователи знакомы с операционной системой Linux и программированием на Python, они также могут запускать этот протокол непосредственно на сервере или локальном ПК. Таким образом, пользователь должен предустановить следующее зависимое программное обеспечение:

Python 2.7.12 (https://www.python.org/)
Пакеты Python:
нумпи 1.13.1 (http://www.numpy.org/)
h5py 2.6.0 (http://www.h5py.org/)
TensorFlow 1.4.1 (https://www.tensorflow.org/)
Керас 2.0.8 (https://keras.io/)
Среда выполнения компонентов MATLAB (MCR) R2018a (https://www.mathworks.com/products/compiler/matlab-runtime.html)

В руководстве по нашей предыдущей работе3 есть краткое описание установки. Обратите внимание, что номер версии каждого пакета соответствует версии, которую мы использовали в коде. Преимущество запуска кода на сервере или локальном ПК без виртуальной машины заключается в том, что код может ускориться с помощью GPU таким образом, что может сэкономить много времени в процессе обучения. Таким образом, пользователь должен установить на GPU версию TensorFlow (см. руководство предыдущей работы3).

Некоторые из критических шагов в рамках протокола описаны ниже. На шаге 4.1 имена файлов "p_train.fasta", "n_train.fasta", "p_test.fasta" и "n_test.fasta" должны быть заменены используемыми именами файлов. Порядок этих четырех файлов в этой команде не может быть изменен. Если файлы содержат аминокислотные последовательности, последним параметром должно быть "aa"; если файлы содержат последовательности нуклеиновых кислот, последним параметром должно быть "nt". Эта команда использует форму кодирования «один горячий» для оцифровки биологических последовательностей. Введение формы «одно горячего» кодирования приведено в Дополнительном материале. На шаге 5.1, поскольку виртуальная машина не может быть ускорима с помощью графического процессора, этот процесс может занять несколько часов или несколько дней, в зависимости от размера данных. Индикаторы выполнения для каждой итерации отображаются в терминале. Мы устанавливаем количество эпох на 50, и таким образом, в общей сложности 50 индикаторов прогресса будут отображаться по завершении тренировочного процесса. Когда процесс тестирования будет завершен, точность тестового набора будет отображаться в терминале. В папке "DeepLearning" виртуальной машины будет создан файл с именем "predict.csv". Этот файл содержит все оценки прогнозов для тестовых данных. Порядок этих баллов соответствует порядку последовательностей в «p_test.fasta» и «n_test.fasta» (первая половина этих баллов соответствует «p_test.fasta», а вторая половина этих баллов соответствует «n_test.fatsa»). Если пользователи хотят сделать прогнозы для последовательностей, истинные классы которых неизвестны, они также могут депонировать эти неизвестные последовательности в файл «p_test.fasta» или «n_test.fasta». Таким образом, оценки этих неизвестных последовательностей также будут отображаться в файле «predict.csv», но отображение «точности» в терминале не имеет смысла. Этот скрипт использует сверчную нейронную сеть для выполнения классификации. Структура нейронной сети и код для нейронной сети показаны в Дополнительном материале.

Одной из характеристик глубокого обучения является то, что многие настройки параметров требуют некоторого опыта, что может стать серьезной проблемой для начинающих. Чтобы избежать опасений новичков, вызванных большим количеством формул, мы не ориентируемся на математические принципы глубокого обучения, а в виртуальной машине не предоставляем специальный интерфейс настройки параметров. Хотя это может быть хорошим выбором для начинающих, неправильный выбор параметров также может привести к снижению точности. Чтобы новички могли лучше понять, как изменять параметры, в скрипте «train.py» мы добавляем некоторые комментарии к связанному коду, и пользователи могут изменять связанные параметры, такие как количество ядер свертки, чтобы увидеть, как эти параметры влияют на производительность.

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

При решении других задач классификации последовательностей, основанных на этом руководстве, пользователям нужно только заменить четыре файла последовательностей своими собственными данными. Например, если пользователям необходимо различать последовательности, полученные из плазмид и хромосом, в метагеномных данных, они могут напрямую загрузить геномы плазмид (https://ftp.ncbi.nlm.nih.gov/refseq/release/plasmid/) и геномы бактериальных хромосом (https://ftp.ncbi.nlm.nih.gov/refseq/release/bacteria/) из базы данных RefSeq и разделить геномы на обучающий и тестовый набор. Стоит отметить, что последовательности ДНК в метагеномных данных часто фрагментированы, а не полные геномы. В таких случаях пользователи могут использовать инструмент MetaSim13 для извлечения фрагмента ДНК из полного генома. MetaSim - это удобный инструмент с графическим интерфейсом, и пользователи могут выполнять большинство операций с помощью мыши, не вводя никаких команд на клавиатуре. Чтобы упростить работу для начинающих, наш учебник предназначен для двухклассовой задачи классификации. Однако во многих задачах нам необходимо выполнять мультиклассификацию. В таких случаях новички могут попытаться разделить задачу мультиклассификации на несколько двухклассовых классификационных задач. Например, чтобы идентифицировать фагового хозяина, Zhang et al. построили 9 двухклассовых классификаторов, чтобы определить, может ли данная фаговая последовательность заразить определенного хозяина.

Домашняя страница этого учебника находится на сайте GitHub https://github.com/zhenchengfang/DL-VM. Любое обновление учебника будет описано на веб-сайте. Пользователи также могут поднять свои вопросы об этом учебнике на веб-сайте.

Subscription Required. Please recommend JoVE to your librarian.

Disclosures

Авторы заявляют, что конфликта интересов нет.

Acknowledgments

Это расследование было финансово поддержано Национальным фондом естественных наук Китая (81925026, 82002201, 81800746 82102508).

Materials

Name Company Catalog Number Comments
PC or server NA NA Suggested memory: >6GB
VirtualBox software NA NA Link: https://www.virtualbox.org

DOWNLOAD MATERIALS LIST

References

  1. Liang, Q., Bible, P. W., Liu, Y., Zou, B., Wei, L. DeepMicrobes: taxonomic classification for metagenomics with deep learning. NAR Genomics and Bioinformatics. 2 (1), (2020).
  2. Ren, J., et al. VirFinder: a novel k -mer based tool for identifying viral sequences from assembled metagenomic data. Microbiome. 5 (1), 69 (2017).
  3. Fang, Z., et al. PPR-Meta: a tool for identifying phages and plasmids from metagenomic fragments using deep learning. GigaScience. 8 (6), (2019).
  4. Ren, J., et al. Identifying viruses from metagenomic data using deep learning. Quantitative Biology. 8 (1), 64-77 (2020).
  5. Zhou, F., Xu, Y. cBar: a computer program to distinguish plasmid-derived from chromosome-derived sequence fragments in metagenomics data. Bioinformatics. 26 (16), 2051-2052 (2010).
  6. Krawczyk, P. S., Lipinski, L., Dziembowski, A. PlasFlow: predicting plasmid sequences in metagenomic data using genome signatures. Nucleic Acids Research. 46 (6), (2018).
  7. Pellow, D., Mizrahi, I., Shamir, R. PlasClass improves plasmid sequence classification. PLOS Computational Biology. 16 (4), (2020).
  8. Arango-Argoty, G., et al. DeepARG: a deep learning approach for predicting antibiotic resistance genes from metagenomic data. Microbiome. 6 (1), 1-15 (2018).
  9. Zheng, D., Pang, G., Liu, B., Chen, L., Yang, J. Learning transferable deep convolutional neural networks for the classification of bacterial virulence factors. Bioinformatics. 36 (12), 3693-3702 (2020).
  10. LeCun, Y., Bengio, Y., Hinton, G. Deep learning. Nature. 521 (7553), 436-444 (2015).
  11. Fang, Z., Zhou, H. VirionFinder: Identification of Complete and Partial Prokaryote Virus Virion Protein From Virome Data Using the Sequence and Biochemical Properties of Amino Acids. Frontiers in Microbiology. 12, 615711 (2021).
  12. Fang, Z., Zhou, H. Identification of the conjugative and mobilizable plasmid fragments in the plasmidome using sequence signatures. Microbial Genomics. 6 (11), (2020).
  13. Richter, D. C., Ott, F., Auch, A. F., Schmid, R., Huson, D. H. MetaSim-a sequencing simulator for genomics and metagenomics. PLoS One. 3 (10), 3373 (2008).
  14. Zhang, M., et al. Prediction of virus-host infectious association by supervised learning methods. BMC Bioinformatics. 18 (3), 143-154 (2017).

Tags

Генетика Выпуск 175 Метагеном Микробиом Классификация последовательностей Искусственный интеллект Глубокое обучение Разработка алгоритмов
Платформа виртуальных машин для специалистов, не являющихся компьютерами, для использования глубокого обучения для классификации биологических последовательностей метагеномных данных
Play Video
PDF DOI DOWNLOAD MATERIALS LIST

Cite this Article

Fang, Z., Zhou, H. A Virtual Machine More

Fang, Z., Zhou, H. A Virtual Machine Platform for Non-Computer Professionals for Using Deep Learning to Classify Biological Sequences of Metagenomic Data. J. Vis. Exp. (175), e62250, doi:10.3791/62250 (2021).

Less
Copy Citation Download Citation Reprints and Permissions
View Video

Get cutting-edge science videos from JoVE sent straight to your inbox every month.

Waiting X
Simple Hit Counter