Method Article

Een virtueel machineplatform voor niet-computerprofessionals voor het gebruik van deep learning om biologische sequenties van metagenomische gegevens te classificeren

DOI:

10.3791/62250

September 25th, 2021

In This Article

Summary

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

Deze zelfstudie beschrijft een eenvoudige methode om een deep learning-algoritme te construeren voor het uitvoeren van 2-klasse sequentieclassificatie van metagenomische gegevens.

Abstract

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

Een verscheidenheid aan biologische sequentieclassificatietaken, zoals soortenclassificatie, genfunctieclassificatie en virale gastheerclassificatie, zijn verwachte processen in veel metagenomic data-analyses. Aangezien metagenomische gegevens een groot aantal nieuwe soorten en genen bevatten, zijn in veel studies hoogwaardige classificatiealgoritmen nodig. Biologen komen vaak uitdagingen tegen bij het vinden van geschikte sequentieclassificatie- en annotatietools voor een specifieke taak en zijn vaak niet in staat om zelf een overeenkomstig algoritme te construeren vanwege een gebrek aan de nodige wiskundige en computationele kennis. Deep learning technieken zijn sinds kort een populair onderwerp en laten sterke voordelen zien in veel classificatietaken. Tot op heden zijn er veel sterk verpakte deep learning-pakketten ontwikkeld, die het voor biologen mogelijk maken om deep learning-frameworks te bouwen volgens hun eigen behoeften zonder diepgaande kennis van de algoritmedetails. In deze zelfstudie bieden we een richtlijn voor het bouwen van een eenvoudig te gebruiken deep learning-raamwerk voor sequentieclassificatie zonder dat er voldoende wiskundige kennis of programmeervaardigheden nodig zijn. Alle code is geoptimaliseerd in een virtuele machine, zodat gebruikers de code rechtstreeks kunnen uitvoeren met hun eigen gegevens.

Introduction

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

De metagenomic sequencing techniek omzeilt het stamisolatieproces en sequenties direct het totale DNA in een omgevingsmonster. Metagenomische gegevens bevatten dus DNA van verschillende organismen en de meeste biologische sequenties zijn van nieuwe organismen die niet aanwezig zijn in de huidige database. Volgens verschillende onderzoeksdoeleinden moeten biologen deze sequenties classificeren vanuit verschillende perspectieven, zoals taxonomische classificatie1,virus-bacterieclassificatie2, 3,4,chromosoom-plasmideclassificatie3,5,6,7, en genfunctieannotatie (zoals antibioticaresistentiegenclassificatie8 en virulentiefactorclassificatie9 ). Omdat metagenomische gegevens een groot aantal nieuwe soorten en genen bevatten, zijn ab initio-algoritmen, die niet vertrouwen op bekende databases voor sequentieclassificatie (inclusief DNA-classificatie en eiwitclassificatie), een belangrijke benadering in metagenomic data-analyse. Het ontwerp van dergelijke algoritmen vereist echter professionele wiskundekennis en programmeervaardigheden; daarom hebben veel biologen en beginners in algoritmeontwerp moeite om een classificatiealgoritme te construeren dat aan hun eigen behoeften voldoet.

Met de ontwikkeling van kunstmatige intelligentie zijn deep learning-algoritmen veel gebruikt op het gebied van bioinformatica om taken zoals sequentieclassificatie in metagenomische analyse te voltooien. Om beginners te helpen deep learning-algoritmen te begrijpen, beschrijven we het algoritme hieronder op een gemakkelijk te begrijpen manier.

Een overzicht van een deep learning-techniek is te zien in figuur 1. De kerntechnologie van een deep learning-algoritme is een kunstmatig neuraal netwerk, dat is geïnspireerd op de structuur van het menselijk brein. Vanuit wiskundig oogpunt kan een kunstmatig neuraal netwerk worden beschouwd als een complexe functie. Elk object (zoals een DNA-sequentie, een foto of een video) wordt eerst gedigitaliseerd. Het gedigitaliseerde object wordt vervolgens geïmporteerd naar de functie. De taak van het kunstmatige neurale netwerk is om een juiste reactie te geven op basis van de invoergegevens. Als er bijvoorbeeld een kunstmatig neuraal netwerk is gemaakt om een classificatietaak van 2 klassen uit te voeren, moet het netwerk een waarschijnlijkheidsscore uitvoeren die tussen 0-1 ligt voor elk object. Het neurale netwerk moet het positieve object een hogere score geven (zoals een score hoger dan 0,5) terwijl het negatieve object een lagere score krijgt. Om dit doel te bereiken, wordt een kunstmatig neuraal netwerk opgebouwd met de trainings- en testprocessen. Tijdens deze processen worden gegevens uit de bekende database gedownload en vervolgens onderverdeeld in een trainingsset en testset. Elk object wordt op de juiste manier gedigitaliseerd en krijgt een label ("1" voor positieve objecten en "0" voor negatieve objecten). In het trainingsproces worden de gedigitaliseerde gegevens in de trainingsset ingevoerd in het neurale netwerk. Het kunstmatige neurale netwerk construeert een verliesfunctie die de verschillen vertegenwoordigt tussen de uitvoerscore van het invoerobject en het bijbehorende label van het object. Als het label van het invoerobject bijvoorbeeld "1" is terwijl de uitvoerscore "0,1" is, is de verliesfunctie hoog; en als het label van het invoerobject "0" is terwijl de uitgangsscore "0,1" is, zal de verliesfunctie laag zijn. Het kunstmatige neurale netwerk maakt gebruik van een specifiek iteratief algoritme dat de parameters van het neurale netwerk aanpast om de verliesfunctie te minimaliseren. Het trainingsproces eindigt wanneer de verliesfunctie niet duidelijk verder kan worden verminderd. Ten slotte worden de gegevens in de testset gebruikt om het vaste neurale netwerk te testen en wordt het vermogen van het neurale netwerk om de juiste labels voor de nieuwe objecten te berekenen geëvalueerd. Meer principes van deep learning algoritmes zijn te vinden in de review in LeCun et al. 10.

Hoewel de wiskundige principes van deep learning-algoritmen complex kunnen zijn, zijn er onlangs veel sterk verpakte deep learning-pakketten ontwikkeld en kunnen programmeurs direct een eenvoudig kunstmatig neuraal netwerk bouwen met een paar regels code.

Om biologen en algoritmeontwerpers te helpen sneller aan de slag te gaan met deep learning, biedt deze zelfstudie een richtlijn voor het bouwen van een eenvoudig te gebruiken deep learning-framework voor sequentieclassificatie. Dit framework gebruikt de "one-hot" coderingsvorm als wiskundig model om de biologische sequenties te digitaliseren en gebruikt een convolutie-neuraal netwerk om de classificatietaak uit te voeren (zie het aanvullende materiaal). Het enige dat de gebruikers moeten doen voordat ze deze richtlijn gebruiken, is om vier reeksbestanden in "fasta"-formaat voor te bereiden. Het eerste bestand bevat alle sequenties van de positieve klasse voor het trainingsproces (verwezen naar "p_train.fasta"); het tweede bestand bevat alle sequenties van de negatieve klasse voor het trainingsproces (verwezen naar "n_train.fasta"); het derde bestand bevat alle sequenties van de positieve klasse voor het testproces (verwezen naar "p_test.fasta"); en het laatste bestand bevat alle sequenties van de negatieve klasse voor het testproces (verwezen naar "n_test.fasta"). Het overzicht van het stroomdiagram van deze zelfstudie is opgenomen in figuur 2, en meer details zullen hieronder worden vermeld.

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

Protocol

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

1. De installatie van de virtuele machine

  1. Download het bestand van de virtuele machine van (https://github.com/zhenchengfang/DL-VM).
  2. Download de VirtualBox software van https://www.virtualbox.org.
  3. Decomprimeert het bestand ".7z" met behulp van gerelateerde software, zoals "7-Zip", "WinRAR" of "WinZip".
  4. Installeer de VirtualBox-software door in elke stap op de knop Volgende te klikken.
  5. Open de VirtualBox-software en klik op de knop Nieuw om een virtuele machine te maken.
  6. Stap 6: Voer de opgegeven naam van de virtuele machine in het frame "Naam" in, selecteer Linux als besturingssysteem in het frame "Type", selecteer Ubuntu in het frame "Versie" en klik op de knop Volgende.
  7. Wijs de geheugen grootte van de virtuele machine toe. We raden gebruikers aan de knop naar het meest rechtse deel van de groene balk te trekken om zoveel mogelijk geheugen toe te wijzen aan de virtuele machine en vervolgens op de knop Volgende te klikken.
  8. Kies de selectie van een bestaand bestand op een virtuele schijf gebruiken, selecteer het bestand "VM_Bioinfo.vdi" gedownload van stap 1.1 en klik vervolgens op de knop Maken.
  9. Klik op de knop Ster om de virtuele machine te openen.
    OPMERKING: Figuur 3 toont de schermafbeelding van het bureaublad van de virtuele machine.

2. Maak gedeelde mappen voor bestanden die worden uitgewisseld tussen de fysieke host en de virtuele machine

  1. Maak in de fysieke host een gedeelde map met de naam 'shared_host' en maak op het bureaublad van de virtuele machine een gedeelde map met de naam 'shared_VM'.
  2. Klik in de menubalk van de virtuele machine achtereenvolgens op Instellingen voor apparaten, Gedeelde map en gedeelde mappen.
  3. Klik op de knop in de rechterbovenhoek.
  4. Selecteer de gedeelde map in de fysieke host die is gemaakt in stap 2.1 en selecteer de optie Automatisch koppelen. Klik op de knop OK.
  5. Start de virtuele machine opnieuw op.
  6. Klik met de rechtermuisknop op het bureaublad van de virtuele machine en open de terminal.
  7. Kopieer de volgende opdracht naar de terminal:
    sudo mount -t vboxsf shared_host ./Desktop/shared_VM
    1. Wanneer u om een wachtwoord wordt gevraagd, voert u "1" in en klikt u op de toets "Enter", zoals weergegeven in figuur 4.

3. Bereid de bestanden voor op de trainingsset en testset

  1. Kopieer alle vier de sequentiebestanden in "fasta"-indeling voor het training- en testproces naar de map "shared_host" van de fysieke host. Op deze manier komen alle bestanden ook voor in de map "shared_VM" van de virtuele machine. Kopieer vervolgens de bestanden in de map "shared_VM" naar de map "DeepLearning" van de virtuele machine.

4. Digitaliseer de biologische sequenties met behulp van "one-hot" coderingsformulier

  1. Ga naar de map "DeepLearning", klik met de rechtermuisknop en open de terminal. Typ de volgende opdracht:
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa
    (voor aminozuursequenties)
    of
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta nt
    (voor nucleïnezuursequenties)
    OPMERKING: Een screenshot van dit proces is te vinden in figuur 5.

5. Train en test het kunstmatige neurale netwerk

  1. Typ in de terminal de volgende opdracht zoals weergegeven in figuur 6:
    python train.py
    OPMERKING: Het trainingsproces begint.

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

Results

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

In ons vorige werk ontwikkelden we een reeks sequentieclassificatietools voor metagenomic data met behulp van een benadering vergelijkbaar met deze tutorial3,11,12. Als voorbeeld hebben we de reeks bestanden van de subset van trainingsset en testset van ons vorige werk3,11 in de virtuele machine gedeponeerd.

Fang &Zhou11

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

Discussion

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

Deze zelfstudie biedt een overzicht voor biologen en beginners in algoritmeontwerp over het bouwen van een eenvoudig te gebruiken deep learning-raamwerk voor biologische sequentieclassificatie in metagenomische gegevens. Deze tutorial is bedoeld om intuïtief inzicht te geven in deep learning en de uitdaging aan te gaan die beginners vaak moeilijk hebben om het deep learning-pakket te installeren en de code voor het algoritme te schrijven. Voor sommige eenvoudige classificatietaken kunnen gebruikers het framework gebruike...

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

Disclosures

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

De auteurs verklaren dat er geen belangenconflicten zijn.

Acknowledgements

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

Dit onderzoek werd financieel ondersteund door de National Natural Science Foundation of China (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
PC of serverNANAAanbevolen geheugen: >6GB
VirtualBox softwareNANALink: 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