Summary

Eine virtuelle Maschinenplattform für Nicht-Computer-Profis zur Verwendung von Deep Learning zur Klassifizierung biologischer Sequenzen metagenomischer Daten

Published: September 25, 2021
doi:
Please note that all translations are automatically generated. Click here for the English version.

Summary

Dieses Tutorial beschreibt eine einfache Methode zum Erstellen eines Deep-Learning-Algorithmus für die 2-Klassen-Sequenzklassifizierung metagenomischer Daten.

Abstract

Eine Vielzahl von biologischen Sequenzklassifizierungsaufgaben, wie Speziesklassifizierung, Genfunktionsklassifikation und virale Wirtsklassifizierung, sind erwartete Prozesse in vielen metagenomischen Datenanalysen. Da metagenomische Daten eine große Anzahl neuartiger Arten und Gene enthalten, werden in vielen Studien leistungsfähige Klassifikationsalgorithmen benötigt. Biologen stoßen oft auf Herausforderungen, geeignete Sequenzklassifikations- und Annotationswerkzeuge für eine bestimmte Aufgabenstellung zu finden und sind oft nicht in der Lage, einen entsprechenden Algorithmus selbst zu konstruieren, weil ihnen die notwendigen mathematischen und rechnerischen Kenntnisse fehlen. Deep-Learning-Techniken sind in letzter Zeit zu einem beliebten Thema geworden und zeigen bei vielen Klassifizierungsaufgaben starke Vorteile. Bis heute wurden viele hochgepackte Deep-Learning-Pakete entwickelt, die es Biologen ermöglichen, Deep-Learning-Frameworks nach ihren eigenen Bedürfnissen zu konstruieren, ohne die Details des Algorithmus eingehend zu wissen. In diesem Tutorial stellen wir eine Anleitung zur Verfügung, um ein einfach zu bedienendes Deep-Learning-Framework für die Sequenzklassifizierung zu erstellen, ohne dass ausreichende mathematische Kenntnisse oder Programmierkenntnisse erforderlich sind. Der gesamte Code wird in einer virtuellen Maschine optimiert, sodass Benutzer den Code direkt mit ihren eigenen Daten ausführen können.

Introduction

Die metagenomische Sequenzierungstechnik umgeht den Prozess der Stammisolierung und sequenziert direkt die gesamte DNA in einer Umweltprobe. So enthalten metagenomische Daten DNA von verschiedenen Organismen, und die meisten biologischen Sequenzen stammen von neuartigen Organismen, die in der aktuellen Datenbank nicht vorhanden sind. Nach verschiedenen Forschungszwecken müssen Biologen diese Sequenzen aus verschiedenen Perspektiven klassifizieren, z. B. taxonomische Klassifikation1, Virus-Bakterien-Klassifikation2,3,4, Chromosomen-Plasmid-Klassifikation3,5,6,7und Genfunktionsannotation (z. B. Antibiotikaresistenz-Genklassifikation8 und Virulenzfaktorklassifikation9 ). Da metagenomische Daten eine große Anzahl neuartiger Arten und Gene enthalten, sind ab initio-Algorithmen, die nicht auf bekannte Datenbanken zur Sequenzklassifizierung (einschließlich DNA-Klassifikation und Proteinklassifizierung) angewiesen sind, ein wichtiger Ansatz in der metagenomischen Datenanalyse. Das Design solcher Algorithmen erfordert jedoch professionelle mathematische Kenntnisse und Programmierkenntnisse; Daher haben viele Biologen und Algorithmendesign-Anfänger Schwierigkeiten, einen Klassifizierungsalgorithmus zu konstruieren, der ihren eigenen Bedürfnissen entspricht.

Mit der Entwicklung der künstlichen Intelligenz wurden Deep-Learning-Algorithmen im Bereich der Bioinformatik weit verbreitet, um Aufgaben wie die Sequenzklassifizierung in der metagenomischen Analyse zu erledigen. Um Anfängern zu helfen, Deep-Learning-Algorithmen zu verstehen, beschreiben wir den Algorithmus im Folgenden auf leicht verständliche Weise.

Eine Übersicht über eine Deep-Learning-Technik ist in Abbildung 1 dargestellt. Die Kerntechnologie eines Deep-Learning-Algorithmus ist ein künstliches neuronales Netzwerk, das von der Struktur des menschlichen Gehirns inspiriert ist. Aus mathematischer Sicht kann ein künstliches neuronales Netzwerk als komplexe Funktion betrachtet werden. Jedes Objekt (z. B. eine DNA-Sequenz, ein Foto oder ein Video) wird zunächst digitalisiert. Das digitalisierte Objekt wird dann in die Funktion importiert. Die Aufgabe des künstlichen neuronalen Netzes ist es, eine korrekte Antwort entsprechend den Eingabedaten zu geben. Wenn beispielsweise ein künstliches neuronales Netzwerk konstruiert wird, um eine 2-Klassen-Klassifizierungsaufgabe auszuführen, sollte das Netzwerk eine Wahrscheinlichkeitsbewertung ausgeben, die zwischen 0-1 für jedes Objekt liegt. Das neuronale Netzwerk sollte dem positiven Objekt eine höhere Punktzahl geben (z. B. eine Punktzahl von mehr als 0,5), während es dem negativen Objekt eine niedrigere Punktzahl gibt. Um dieses Ziel zu erreichen, wird mit den Trainings- und Testprozessen ein künstliches neuronales Netzwerk aufgebaut. Während dieser Prozesse werden Daten aus der bekannten Datenbank heruntergeladen und dann in ein Trainingsset und ein Testset unterteilt. Jedes Objekt wird ordnungsgemäß digitalisiert und mit einer Beschriftung versehen (“1” für positive Objekte und “0” für negative Objekte). Im Trainingsprozess werden die digitalisierten Daten im Trainingsset in das neuronale Netz eingegeben. Das künstliche neuronale Netzwerk konstruiert eine Verlustfunktion, die die Unähnlichkeit zwischen dem Ausgabewert des Eingabeobjekts und der entsprechenden Bezeichnung des Objekts darstellt. Wenn die Bezeichnung des Eingabeobjekts beispielsweise “1” ist, während die Ausgabebewertung “0,1” ist, ist die Verlustfunktion hoch. und wenn die Bezeichnung des Eingabeobjekts “0” ist, während die Ausgabebewertung “0,1” ist, ist die Verlustfunktion niedrig. Das künstliche neuronale Netzwerk verwendet einen spezifischen iterativen Algorithmus, der die Parameter des neuronalen Netzwerks anpasst, um die Verlustfunktion zu minimieren. Der Trainingsprozess endet, wenn die Verlustfunktion offensichtlich nicht weiter verringert werden kann. Schließlich werden die Daten im Testset verwendet, um das feste neuronale Netzwerk zu testen, und die Fähigkeit des neuronalen Netzwerks, die richtigen Labels für die neuartigen Objekte zu berechnen, wird ausgewertet. Weitere Prinzipien von Deep-Learning-Algorithmen finden Sie im Review in LeCun et al. ( 10) DER PRÄSIDENT. – Nach der 10

Obwohl die mathematischen Prinzipien von Deep-Learning-Algorithmen komplex sein können, wurden kürzlich viele hochgepackte Deep-Learning-Pakete entwickelt, und Programmierer können direkt ein einfaches künstliches neuronales Netzwerk mit wenigen Codezeilen konstruieren.

Um Biologen und Anfängern des Algorithmendesigns den Einstieg in die Verwendung von Deep Learning zu erleichtern, bietet dieses Tutorial eine Richtlinie für die Erstellung eines benutzerfreundlichen Deep-Learning-Frameworks für die Sequenzklassifizierung. Dieses Framework verwendet die “One-Hot” -Kodierungsform als mathematisches Modell zur Digitalisierung der biologischen Sequenzen und verwendet ein neuronales Faltungsnetzwerk, um die Klassifizierungsaufgabe auszuführen (siehe ergänzendes Material). Das einzige, was die Benutzer tun müssen, bevor sie diese Richtlinie verwenden, ist die Vorbereitung von vier Sequenzdateien im “Fasta” -Format. Die erste Datei enthält alle Sequenzen der positiven Klasse für den Trainingsprozess (bezeichnet als “p_train.fasta”); die zweite Datei enthält alle Sequenzen der negativen Klasse für den Trainingsprozess (bezeichnet als “n_train.fasta”); die dritte Datei enthält alle Sequenzen der positiven Klasse für den Testprozess (bezeichnet als “p_test.fasta”); und die letzte Datei enthält alle Sequenzen der negativen Klasse für den Testprozess (im Folgenden “n_test.fasta”). Die Übersicht über das Flussdiagramm dieses Lernprogramms finden Sie in Abbildung 2, und weitere Details werden unten erwähnt.

Protocol

1. Die Installation der virtuellen Maschine Laden Sie die Datei der virtuellen Maschine von (https://github.com/zhenchengfang/DL-VM) herunter. Laden Sie die VirtualBox-Software von https://www.virtualbox.org herunter. Dekomprimieren Sie die Datei “.7z” mit verwandter Software, wie “7-Zip”, “WinRAR” oder “WinZip”. Installieren Sie die VirtualBox-Software, indem Sie in jedem Schritt auf die Schaltfläche Weiter klicken. Öffnen Sie die VirtualBox-Software und klicken Sie auf die Schaltfläche Neu, um eine virtuelle Maschine zu erstellen. Schritt 6: Geben Sie den angegebenen Namen der virtuellen Maschine in den Rahmen “Name” ein, wählen Sie Linux als Betriebssystem im Rahmen “Typ”, wählen Sie Ubuntu im Rahmen “Version” und klicken Sie auf die Schaltfläche Weiter. Weisen Sie die Arbeitsspeichergröße der virtuellen Maschine zu. Es wird empfohlen, dass Benutzer die Schaltfläche ganz rechts von der grünen Leiste ziehen, um der virtuellen Maschine so viel Arbeitsspeicher wie möglich zuzuweisen, und dann auf die Schaltfläche Weiter klicken. Wählen Sie die Dateiauswahl Vorhandene virtuelle Festplatte verwenden, wählen Sie die Datei “VM_Bioinfo.vdi” aus Schritt 1.1 aus und klicken Sie dann auf die Schaltfläche Erstellen. Klicken Sie auf die Schaltfläche Stern, um die virtuelle Maschine zu öffnen.HINWEIS: Abbildung 3 zeigt den Screenshot des Desktops der virtuellen Maschine. 2. Erstellen Sie freigegebene Ordner für Dateien, die zwischen dem physischen Host und der virtuellen Maschine ausgetauscht werden Erstellen Sie auf dem physischen Host einen freigegebenen Ordner mit dem Namen “shared_host”, und erstellen Sie auf dem Desktop der virtuellen Maschine einen freigegebenen Ordner mit dem Namen “shared_VM”. Klicken Sie in der Menüleiste der virtuellen Maschine nacheinander auf Geräte, Freigegebener Ordner, Einstellungen für freigegebene Ordner. Klicken Sie auf die Schaltfläche in der oberen rechten Ecke. Wählen Sie den freigegebenen Ordner auf dem physischen Host aus, der in Schritt 2.1 erstellt wurde, und wählen Sie die Option Automatisches Bereitstellen aus. Klicken Sie auf die Schaltfläche OK. Starten Sie die virtuelle Maschine neu. Klicken Sie mit der rechten Maustaste auf den Desktop der virtuellen Maschine und öffnen Sie das Terminal. Kopieren Sie den folgenden Befehl auf das Terminal:sudo mount -t vboxsf shared_host ./Desktop/shared_VM Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, geben Sie “1” ein und drückenSiedie Eingabetaste, wie in Abbildung 4 dargestellt. 3. Bereiten Sie die Dateien für das Trainingsset und das Testset vor Kopieren Sie alle vier Sequenzdateien im “fasta”-Format für den Trainings- und Testprozess in den Ordner “shared_host” des physischen Hosts. Auf diese Weise werden alle Dateien auch im Ordner “shared_VM” der virtuellen Maschine angezeigt. Kopieren Sie dann die Dateien im Ordner “shared_VM” in den Ordner “DeepLearning” der virtuellen Maschine. 4. Digitalisieren Sie die biologischen Sequenzen mit der “One-Hot” -Kodierungsform Gehen Sie zum Ordner “DeepLearning”, klicken Sie mit der rechten Maustaste und öffnen Sie das Terminal. Geben Sie den folgenden Befehl ein:./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa(für Aminosäuresequenzen)oder./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta nt(für Nukleinsäuresequenzen)HINWEIS: Ein Screenshot dieses Prozesses finden Sie in Abbildung 5. 5. Trainieren und testen Sie das künstliche neuronale Netzwerk Geben Sie im Terminal den folgenden Befehl ein, wie in Abbildung 6 dargestellt:Python-train.pyHINWEIS: Der Schulungsprozess beginnt.

Representative Results

In unserer vorherigen Arbeit haben wir eine Reihe von Sequenzklassifizierungswerkzeugen für metagenomische Daten entwickelt, die einen ähnlichen Ansatz wie dieses Tutorial3,11,12verwenden. Als Beispiel haben wir die Sequenzdateien der Teilmenge von Trainingssatz und Testset aus unserer vorherigen Arbeit3,11 in der virtuellen Maschine abgelegt. <p class="jove_conten…

Discussion

Dieses Tutorial bietet Biologen und Anfängern des Algorithmendesigns einen Überblick darüber, wie ein einfach zu bedienendes Deep-Learning-Framework für die Klassifizierung biologischer Sequenzen in metagenomischen Daten erstellt werden kann. Dieses Tutorial zielt darauf ab, ein intuitives Verständnis von Deep Learning zu vermitteln und die Herausforderung anzugehen, dass Anfänger oft Schwierigkeiten haben, das Deep-Learning-Paket zu installieren und den Code für den Algorithmus zu schreiben. Für einige einfache …

Disclosures

The authors have nothing to disclose.

Acknowledgements

Diese Untersuchung wurde von der National Natural Science Foundation of China (81925026, 82002201, 81800746, 82102508) finanziell unterstützt.

Materials

PC or server NA NA Suggested memory: >6GB
VirtualBox software NA NA Link: https://www.virtualbox.org

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).

Play Video

Cite This Article
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).

View Video