Method Article

Platforma maszyn wirtualnych dla profesjonalistów niezajmujących się informatyką do wykorzystania głębokiego uczenia do klasyfikowania sekwencji biologicznych danych metagenomicznych

DOI:

10.3791/62250

September 25th, 2021

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Ten samouczek opisuje prostą metodę konstruowania algorytmu głębokiego uczenia do przeprowadzania 2-klasowej klasyfikacji sekwencji danych metagenomicznych.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Różnorodne zadania związane z klasyfikacją sekwencji biologicznych, takie jak klasyfikacja gatunków, klasyfikacja funkcji genów i klasyfikacja gospodarzy wirusów, są oczekiwanymi procesami w wielu analizach danych metagenomicznych. Ponieważ dane metagenomiczne zawierają dużą liczbę nowych gatunków i genów, w wielu badaniach potrzebne są wysokowydajne algorytmy klasyfikacji. Biolodzy często napotykają wyzwania związane ze znalezieniem odpowiednich narzędzi do klasyfikacji sekwencji i adnotacji do konkretnego zadania i często nie są w stanie samodzielnie skonstruować odpowiedniego algorytmu z powodu braku niezbędnej wiedzy matematycznej i obliczeniowej. Techniki głębokiego uczenia stały się ostatnio popularnym tematem i wykazują silne zalety w wielu zadaniach klasyfikacyjnych. Do tej pory opracowano wiele wysoce rozbudowanych pakietów głębokiego uczenia, które umożliwiają biologom konstruowanie ram głębokiego uczenia zgodnie z własnymi potrzebami bez dogłębnej znajomości szczegółów algorytmu. W tym samouczku przedstawiamy wskazówki dotyczące konstruowania łatwej w użyciu struktury uczenia głębokiego do klasyfikacji sekwencji bez konieczności posiadania wystarczającej wiedzy matematycznej lub umiejętności programowania. Cały kod jest optymalizowany w maszynie wirtualnej, dzięki czemu użytkownicy mogą bezpośrednio uruchamiać kod przy użyciu własnych danych.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Technika sekwencjonowania metagenomicznego omija proces izolacji szczepu i bezpośrednio sekwencjonuje całkowite DNA w próbce środowiskowej. W związku z tym dane metagenomiczne zawierają DNA z różnych organizmów, a większość sekwencji biologicznych pochodzi z nowych organizmów, których nie ma w obecnej bazie danych. Zgodnie z różnymi celami badawczymi, biolodzy muszą sklasyfikować te sekwencje z różnych perspektyw, takich jak klasyfikacja taksonomiczna1, klasyfikacja wirusowo-bakteryjna2,3,4, klasyfikacja plazmidu chromosomowego3,5,6,7oraz adnotacja o funkcji genu (np. klasyfikacja genów oporności na antybiotyki8 i klasyfikacja czynnika wirulencji < klasa sup = "xref">9). Ponieważ dane metagenomiczne zawierają dużą liczbę nowych gatunków i genów, algorytmy ab initio, które nie opierają się na znanych bazach danych do klasyfikacji sekwencji (w tym klasyfikacji DNA i klasyfikacji białek), są ważnym podejściem w analizie danych metagenomicznych. Jednak projektowanie takich algorytmów wymaga profesjonalnej wiedzy matematycznej i umiejętności programowania; Dlatego wielu biologów i początkujących projektantów algorytmów ma trudności ze skonstruowaniem algorytmu klasyfikacyjnego dostosowanego do własnych potrzeb.

Wraz z rozwojem sztucznej inteligencji, algorytmy głębokiego uczenia się były szeroko stosowane w dziedzinie bioinformatyki do wykonywania zadań takich jak klasyfikacja sekwencji w analizie metagenomicznej. Aby pomóc początkującym zrozumieć algorytmy głębokiego uczenia, poniżej opisujemy algorytm w łatwy do zrozumienia sposób.

Przegląd techniki głębokiego uczenia jest pokazany w Rysunek 1. Podstawową technologią algorytmu głębokiego uczenia się jest sztuczna sieć neuronowa, która jest inspirowana strukturą ludzkiego mózgu. Z matematycznego punktu widzenia sztuczna sieć neuronowa może być uważana za funkcję złożoną. Każdy obiekt (np. sekwencja DNA, zdjęcie lub film) jest najpierw digitalizowany. Zdigitalizowany obiekt jest następnie importowany do funkcji. Zadaniem sztucznej sieci neuronowej jest udzielenie prawidłowej odpowiedzi zgodnie z danymi wejściowymi. Na przykład, jeśli sztuczna sieć neuronowa jest skonstruowana do wykonywania zadania klasyfikacji 2-klasowej, sieć powinna wyprowadzać wynik prawdopodobieństwa z zakresu od 0 do 1 dla każdego obiektu. Sieć neuronowa powinna przyznać obiektowi pozytywnemu wyższy wynik (np. wynik wyższy niż 0,5), jednocześnie przyznając obiektowi negatywnemu niższy wynik. Aby osiągnąć ten cel, budowana jest sztuczna sieć neuronowa z procesami trenowania i testowania. Podczas tych procesów pobierane są dane ze znanej bazy danych, a następnie dzielone na zbiór uczący i zestaw testowy. Każdy obiekt jest w odpowiedni sposób digitalizowany i nadawany mu znacznik ("1" dla obiektów pozytywowych i "0" dla obiektów negatywnych). W procesie uczącym zdigitalizowane dane w zbiorze treningowym są wprowadzane do sieci neuronowej. Sztuczna sieć neuronowa konstruuje funkcję straty, która reprezentuje odmienność między wynikiem wyjściowym obiektu wejściowego a odpowiadającą mu etykietą obiektu. Na przykład, jeśli etykieta obiektu wejściowego to "1", podczas gdy wynik wyjściowy to "0,1", funkcja straty będzie wysoka; A jeśli etykieta obiektu wejściowego to "0", podczas gdy wynik wyjściowy to "0,1", funkcja straty będzie niska. Sztuczna sieć neuronowa wykorzystuje specyficzny algorytm iteracyjny, który dostosowuje parametry sieci neuronowej w celu zminimalizowania funkcji straty. Proces uczenia kończy się, gdy funkcja straty nie może być w oczywisty sposób zmniejszona. Na koniec dane w zestawie testowym są wykorzystywane do testowania stałej sieci neuronowej i oceniana jest zdolność sieci neuronowej do obliczania prawidłowych etykiet dla nowych obiektów. Więcej zasad algorytmów głębokiego uczenia można znaleźć w przeglądzie w LeCun i wsp.10.

Chociaż matematyczne zasady algorytmów głębokiego uczenia mogą być złożone, ostatnio opracowano wiele wysoce rozbudowanych pakietów głębokiego uczenia, a programiści mogą bezpośrednio zbudować prostą sztuczną sieć neuronową za pomocą kilku linijek kodu.

Aby pomóc biologom i początkującym projektantom algorytmów w szybszym rozpoczęciu korzystania z głębokiego uczenia, ten samouczek zawiera wytyczne do budowy łatwego w użyciu szkieletu głębokiego uczenia do klasyfikacji sekwencji. Struktura ta wykorzystuje formę kodowania "one-hot" jako model matematyczny do digitalizacji sekwencji biologicznych i wykorzystuje konwolucyjną sieć neuronową do wykonania zadania klasyfikacyjnego (patrz Materiał uzupełniający). Jedyną rzeczą, którą użytkownicy muszą zrobić przed skorzystaniem z tej wskazówki, jest przygotowanie czterech plików sekwencji w formacie "fasta". Pierwszy plik zawiera wszystkie sekwencje klasy dodatniej dla procesu uczenia (określane jako "p_train.fasta"); drugi plik zawiera wszystkie sekwencje klasy ujemnej dla procesu uczenia (określane jako "n_train.fasta"); trzeci plik zawiera wszystkie sekwencje klasy dodatniej dla procesu testowania (określane jako "p_test.fasta"); a ostatni plik zawiera wszystkie sekwencje klasy ujemnej dla procesu testowania (określane jako "n_test.fasta"). Przegląd schematu blokowego tego samouczka znajduje się w Rysunek 2, a więcej szczegółów zostanie wymienionych poniżej.

Access restricted. Please log in or start a trial to view this content.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

1. Instalacja maszyny wirtualnej

  1. Pobierz plik maszyny wirtualnej ze strony (https://github.com/zhenchengfang/DL-VM).
  2. Pobierz oprogramowanie VirtualBox ze strony https://www.virtualbox.org.
  3. Rozpakuj plik ".7z" za pomocą odpowiedniego oprogramowania, takiego jak "7-Zip", "WinRAR" lub "WinZip".
  4. Zainstaluj oprogramowanie VirtualBox, klikając przycisk Dalej w każdym kroku.
  5. Otwórz oprogramowanie VirtualBox i kliknij przycisk Nowy, aby utworzyć maszynę wirtualną.
  6. Krok 6: Wprowadź określoną nazwę maszyny wirtualnej w ramce "Nazwa", wybierz Linux jako system operacyjny w ramce "Typ", wybierz Ubuntu w ramce "Wersja" i kliknij przycisk Dalej.
  7. Przydziel rozmiar pamięci maszyny wirtualnej. Zalecamy, aby użytkownicy pociągnęli przycisk do skrajnej prawej części zielonego paska, aby przypisać jak najwięcej pamięci do maszyny wirtualnej, a następnie kliknęli przycisk Dalej.
  8. Wybierz opcję Użyj istniejącego pliku wirtualnego dysku twardego, wybierz plik "VM_Bioinfo.vdi" pobrany z kroku 1.1, a następnie kliknij przycisk Utwórz.
  9. Kliknij przycisk Gwiazdka, aby otworzyć maszynę wirtualną.
    UWAGA: Rysunek 3 pokazuje zrzut ekranu pulpitu maszyny wirtualnej.

2. Tworzenie współdzielonych folderów do wymiany plików między fizycznym hostem a maszyną wirtualną

  1. Na hoście fizycznym utwórz folder udostępniony o nazwie "shared_host", a na pulpicie maszyny wirtualnej utwórz folder udostępniony o nazwie "shared_VM".
  2. Na pasku menu maszyny wirtualnej kliknij kolejno Urządzenia, Folder współdzielony, Ustawienia folderów współdzielonych.
  3. Kliknij przycisk w prawym górnym rogu.
  4. Wybierz folder współdzielony na hoście fizycznym utworzonym w kroku 2.1 i wybierz opcję Automatyczne montowanie. Kliknij przycisk OK.
  5. Uruchom ponownie maszynę wirtualną.
  6. Kliknij prawym przyciskiem myszy na pulpicie maszyny wirtualnej i otwórz terminal.
  7. Skopiuj następujące polecenie do terminala:
    sudo mount -t vboxsf shared_host ./Pulpit/shared_VM
    1. Po wyświetleniu monitu o podanie hasła wpisz "1" i naciśnij "Enter", jak pokazano w Rysunek 4.

3. Przygotuj pliki dla zestawu treningowego i zestawu testowego

  1. Skopiuj wszystkie cztery pliki sekwencji w formacie "fasta" dla procesu trenowania i testowania do folderu "shared_host" hosta fizycznego. W ten sposób wszystkie pliki będą również znajdować się w folderze "shared_VM" maszyny wirtualnej. Następnie skopiuj pliki z folderu "shared_VM" do folderu "DeepLearning" maszyny wirtualnej.

4. Digitalizacja sekwencji biologicznych za pomocą "one-hot" formy kodowania

  1. Przejdź do folderu "DeepLearning", kliknij prawym przyciskiem myszy i otwórz terminal. Wpisz następujące polecenie:
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa
    (dla sekwencji aminokwasów)
    lub
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta nt
    (dla sekwencji kwasów nukleinowych)
    UWAGA: Zrzut ekranu przedstawiający ten proces znajduje się w Rysunek 5.

5. Trenuj i testuj sztuczną sieć neuronową

  1. W terminalu wpisz następujące polecenie, jak pokazano w Rysunek 6:
    python train.py
    UWAGA: Rozpocznie się proces szkolenia.

Access restricted. Please log in or start a trial to view this content.

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

W naszej poprzedniej pracy opracowaliśmy serię narzędzi do klasyfikacji sekwencji dla danych metagenomicznych, stosując podejście podobne do tego tutorialu3,11,12. Jako przykład zdeponowaliśmy pliki sekwencji podzbioru zestawu treningowego i zestawu testowego z naszego poprzedniego work3,11 na maszynie wirtualnej.

Fang & Zhou

Access restricted. Please log in or start a trial to view this content.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Ten samouczek zawiera przegląd dla biologów i początkujących projektantów algorytmów, jak skonstruować łatwą w użyciu strukturę uczenia głębokiego do klasyfikacji sekwencji biologicznych w danych metagenomicznych. Ten samouczek ma na celu zapewnienie intuicyjnego zrozumienia uczenia głębokiego i rozwiązanie problemu polegającego na tym, że początkujący często mają trudności z zainstalowaniem pakietu uczenia głębokiego i napisaniem kodu algorytmu. W przypadku niektórych prostych zadań klasyfikacji użytkownicy mogą używać ...

Access restricted. Please log in or start a trial to view this content.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Autorzy oświadczają, że nie występują konflikty interesów.

Acknowledgements

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

To badanie było wspierane finansowo przez Narodową Fundację Nauk Przyrodniczych Chin (81925026, 82002201, 81800746, 82102508).

Access restricted. Please log in or start a trial to view this content.

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
Komputer PC lub serwerNA NASugerowana pamięć: >6 GB
Oprogramowanie VirtualBoxNANALink: https://www.virtualbox.org

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  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).

Access restricted. Please log in or start a trial to view this content.

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Deep LearningBiological Sequence ClassificationMetagenomic DataVirtual MachineSequence Classification ToolsOne Hot EncodingSpecies ClassificationGene Function ClassificationViral Host ClassificationDeep Learning Framework

Related Articles