Waiting
Login processing...

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

Genetics

En virtual machine-platform til ikke-computerfolk til brug af deep learning til at klassificere biologiske sekvenser af metagenomiske data

Published: September 25, 2021 doi: 10.3791/62250

Summary

Dette selvstudium beskriver en enkel metode til at konstruere en deep learning-algoritme til udførelse af 2-klasses sekvensklassifikation af metagenomiske data.

Abstract

En række biologiske sekvensklassifikationsopgaver, såsom artsklassifikation, genfunktionsklassifikation og viral værtsklassifikation, forventes processer i mange metagenomiske dataanalyser. Da metagenomiske data indeholder et stort antal nye arter og gener, er der behov for højtydende klassificeringsalgoritmer i mange undersøgelser. Biologer støder ofte på udfordringer med at finde passende sekvensklassificerings- og anmærkningsværktøjer til en bestemt opgave og er ofte ikke i stand til at konstruere en tilsvarende algoritme alene på grund af mangel på den nødvendige matematiske og beregningsmæssige viden. Deep learning teknikker er for nylig blevet et populært emne og viser stærke fordele i mange klassificering opgaver. Til dato er mange meget emballerede deep learning-pakker, som gør det muligt for biologer at konstruere dybe læringsrammer efter deres egne behov uden indgående kendskab til algoritmedetaljerne, blevet udviklet. I denne vejledning giver vi en retningslinje for opbygning af en brugervenlig deep learning-ramme for sekvensklassifikation uden behov for tilstrækkelig matematisk viden eller programmeringsfærdigheder. Al koden er optimeret i en virtuel maskine, så brugerne direkte kan køre koden ved hjælp af deres egne data.

Introduction

Den metagenomiske sekventeringsteknik omgår belastningsisoleringsprocessen og sekvenserer direkte det samlede DNA i en miljøprøve. Metagenomiske data indeholder således DNA fra forskellige organismer, og de fleste biologiske sekvenser er fra nye organismer, der ikke er til stede i den aktuelle database. Ifølge forskellige forskningsformål skal biologer klassificere disse sekvenser fra forskellige perspektiver, såsom taksonomisk klassificering1, virusbakterierklassifikation2,3,4, kromosomplasmidklassifikation3, 5,6,7og anmærkning af genfunktion (f.eks. klassificering af antibiotikaresistensgen8 og virulensfaktorklassifikation9 ). Da metagenomiske data indeholder et stort antal nye arter og gener, er ab initio-algoritmer, som ikke er afhængige af kendte databaser til sekvensklassificering (herunder DNA-klassificering og proteinklassificering), en vigtig tilgang til metagenomisk dataanalyse. Men udformningen af sådanne algoritmer kræver professionel matematik viden og programmering færdigheder; Derfor har mange biologer og algoritmedesign begyndere svært ved at konstruere en klassificeringsalgoritme, der passer til deres egne behov.

Med udviklingen af kunstig intelligens er deep learning-algoritmer blevet udbredt inden for bioinformatik til at udføre opgaver som sekvensklassificering i metageomisk analyse. For at hjælpe begyndere med at forstå deep learning-algoritmer beskriver vi algoritmen på en letforståelig måde nedenfor.

Figur 1 viser en oversigt over en deep learning-teknik. Kerneteknologien i en dyb læringsalgoritme er et kunstigt neuralt netværk, som er inspireret af strukturen i den menneskelige hjerne. Fra et matematisk synspunkt kan et kunstigt neuralt netværk betragtes som en kompleks funktion. Hvert objekt (f.eks. en DNA-sekvens, et foto eller en video) digitaliseres først. Det digitaliserede objekt importeres derefter til funktionen. Opgaven med det kunstige neurale netværk er at give et korrekt svar i henhold til inputdataene. Hvis et kunstigt neuralt netværk f.eks. er konstrueret til at udføre en 2-klasses klassificeringsopgave, skal netværket udskrive en sandsynlighedsscore, der er mellem 0-1 for hvert objekt. Det neurale netværk skal give det positive objekt en højere score (såsom en score højere end 0,5), samtidig med at det negative objekt får en lavere score. For at opnå dette mål er et kunstigt neuralt netværk konstrueret med trænings- og testprocesserne. Under disse processer downloades data fra den kendte database og opdeles derefter i et træningssæt og testsæt. Hvert objekt digitaliseres på en korrekt måde og tildeles en etiket ("1" for positive objekter og "0" for negative objekter). I træningsprocessen indtastes de digitaliserede data i træningssættet i det neurale netværk. Det kunstige neurale netværk konstruerer en tabsfunktion, der repræsenterer forskellen mellem inputobjektets outputscore og objektets tilsvarende etiket. Hvis inputobjektets etiket f.eks. og hvis inputobjektets etiket er "0", mens outputscoren er "0,1", vil tabsfunktionen være lav. Det kunstige neurale netværk anvender en specifik iterativ algoritme, der justerer parametrene for det neurale netværk for at minimere tabsfunktionen. Træningsprocessen afsluttes, når tabsfunktionen ikke kan reduceres yderligere. Endelig bruges dataene i testsættet til at teste det faste neurale netværk, og det neurale netværks evne til at beregne de korrekte etiketter til de nye objekter evalueres. Flere principper for deep learning algoritmer kan findes i anmeldelsen i LeCun et al. 10 .

Selvom de matematiske principper for deep learning-algoritmer kan være komplekse, er mange meget emballerede deep learning-pakker for nylig blevet udviklet, og programmører kan direkte konstruere et simpelt kunstigt neuralt netværk med et par kodelinjer.

For at hjælpe biologer og algoritmedesign begyndere med at komme i gang med at bruge deep learning hurtigere, giver denne vejledning en retningslinje for opbygning af en brugervenlig deep learning-ramme for sekvensklassifikation. Denne ramme bruger kodningsformen "one-hot" som den matematiske model til at digitalisere de biologiske sekvenser og bruger et convolution neuralt netværk til at udføre klassificeringsopgaven (se det supplerende materiale). Det eneste, som brugerne skal gøre, før du bruger denne retningslinje, er at forberede fire sekvensfiler i "fasta" -format. Den første fil indeholder alle sekvenser af den positive klasse for træningsprocessen (benævnt "p_train.fasta"); den anden fil indeholder alle sekvenser af den negative klasse for træningsprocessen (benævnt "n_train.fasta") den tredje fil indeholder alle sekvenser af den positive klasse for testprocessen (benævnt "p_test.fasta") og den sidste fil indeholder alle sekvenser af den negative klasse for testprocessen (benævnt "n_test.fasta"). Oversigten over rutediagrammet i dette selvstudium findes i figur 2, og flere detaljer vil blive nævnt nedenfor.

Subscription Required. Please recommend JoVE to your librarian.

Protocol

1. Installation af den virtuelle maskine

  1. Hent filen med den virtuelle maskine fra (https://github.com/zhenchengfang/DL-VM).
  2. Hent VirtualBox-softwaren fra https://www.virtualbox.org.
  3. Dekomprimer filen ".7z" ved hjælp af relateret software, f.eks.
  4. Installer VirtualBox-softwaren ved at klikke på knappen Næste i hvert trin.
  5. Åbn VirtualBox-softwaren, og klik på knappen Ny for at oprette en virtuel maskine.
  6. Trin 6: Indtast det angivne virtuelle computernavn i rammen "Navn", vælg Linux som operativsystem i rammen "Type", vælg Ubuntu i rammen "Version", og klik på knappen Næste.
  7. Alloker hukommelsesstørrelsen på den virtuelle maskine. Vi anbefaler, at brugerne trækker knappen til højre for det meste af den grønne bjælke for at tildele så meget hukommelse som muligt til den virtuelle maskine, og klik derefter på knappen Næste.
  8. Vælg Vælg Brug en eksisterende virtuel harddiskfilvalg, vælg filen "VM_Bioinfo.vdi", der blev hentet fra trin 1.1, og klik derefter på knappen Opret.
  9. Klik på knappen Stjerne for at åbne den virtuelle maskine.
    BEMÆRK: Figur 3 viser skærmbilledet af skrivebordet på den virtuelle maskine.

2. Opret delte mapper til filer, der udveksles mellem den fysiske vært og den virtuelle maskine

  1. Opret en delt mappe med navnet "shared_host" i den fysiske vært, og opret en delt mappe med navnet "shared_VM" på skrivebordet på den virtuelle maskine.
  2. Klik på Enheder, Delt mappe og derefter på Indstillinger for delte mapper på menulinjen i den virtuelle maskine.
  3. Klik på knappen i øverste højre hjørne.
  4. Vælg den delte mappe i den fysiske vært, der blev oprettet i trin 2.1, og vælg indstillingen Tilstøm automatisk. Klik på knappen OK.
  5. Genstart den virtuelle maskine.
  6. Klik på højreklik på skrivebordet på den virtuelle maskine, og åbn terminalen.
  7. Kopier følgende kommando til terminalen:
    sudo mount -t vboxsf shared_host ./desktop/shared_VM
    1. Når du bliver bedt om en adgangskode, skal du skrive "1" og trykke på tasten "Enter" som vist i figur 4.

3. Forbered filerne til træningssættet og testsættet

  1. Kopier alle fire sekvensfiler i "fasta"-format til trænings- og testprocessen til mappen "shared_host" for den fysiske vært. På denne måde vil alle filerne også forekomme i mappen "shared_VM" på den virtuelle maskine. Kopier derefter filerne i mappen "shared_VM" til mappen "DeepLearning" på den virtuelle maskine.

4. Digitalisere de biologiske sekvenser ved hjælp af "one-hot" kodning form

  1. Gå til mappen "DeepLearning", klik på højreklik, og åbn terminalen. Skriv følgende kommando:
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa
    (for aminosyresekvenser)
    eller
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta nt
    (for nukleinsyresekvenser)
    BEMÆRK: Et skærmbillede af denne proces findes i figur 5.

5. Træn og test det kunstige neurale netværk

  1. Skriv følgende kommando i terminalen som vist i figur 6:
    python train.py
    BEMÆRK: Træningsprocessen begynder.

Subscription Required. Please recommend JoVE to your librarian.

Representative Results

I vores tidligere arbejde udviklede vi en række sekvensklassifikationsværktøjer til metagenomiske data ved hjælp af en tilgang svarende til denne tutorial3,11,12. Som et eksempel deponerede vi sekvensfilerne for delsættet af træningssæt og testsæt fra vores tidligere arbejde3,11 i den virtuelle maskine.

Fang & Zhou11 havde til formål at identificere de komplette og delvise prokaryote virus virion proteiner fra virome data. Filen "p_train.fasta" indeholder virus virionsproteinfragmenterne til træningssættet; filen "n_train.fasta" indeholder virusproteinfragmenterne for træningssættet filen "p_test.fasta" indeholder virus virionsproteinfragmenterne til testsættet og filen "n_test.fasta" indeholder virus ikke-virion protein fragmenter til testsættet. Brugeren kan direkte udføre følgende to kommandoer til at konstruere det neurale netværk:
./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa
og
python train.py

Forestillingen er vist i figur 7.

Fang et al.3 havde til formål at identificere phage DNA-fragmenter fra bakterielle kromosom-DNA-fragmenter i metagenomiske data. Filen "phage_train.fasta" indeholder phage DNA-fragmenter til træningssættet; filen "chromosome_train.fasta" indeholder kromosom-DNA-fragmenterne til træningssættet filen "phage_test.fasta" indeholder phage-DNA-fragmenterne for testsættet og filen "chromosome_test.fasta" indeholder kromosom-DNA-fragmenterne til testsættet. Brugeren kan direkte udføre følgende to kommandoer til at konstruere det neurale netværk:
./onehot_encoding phage_train.fasta chromosome_train.fasta phage_test.fasta chromosome_test.fasta nt
og
python train.py

Forestillingen er vist i figur 8.

Det er værd at bemærke, at fordi algoritmen indeholder nogle processer, der har tilfældighed, kan ovenstående resultater være lidt anderledes, hvis brugerne kører scriptet igen.

Figure 1
Figur 1. Oversigt over deep learning-teknikken. Klik her for at se en større version af dette tal.

Figure 2
Figur 2. Oversigten over rutediagrammet i dette selvstudium. Klik her for at se en større version af dette tal.

Figure 3
Figur 3. Skærmbilledet af skrivebordet på den virtuelle maskine. Klik her for at se en større version af dette tal.

Figure 4
Figur 4. Skærmbilledet af aktiveringen af de delte mapper. Klik her for at se en større version af dette tal.

Figure 5
Figur 5. Skærmbilledet af processen med sekvensdigitalisering. Klik her for at se en større version af dette tal.

Figure 6
Figur 6. Træn og test det kunstige neurale netværk. Klik her for at se en større version af dette tal.

Figure 7
Figur 7. Udførelsen af prokaryote virus virion protein fragmenter identifikation. Evalueringskriterierne er Sn=TP/(TP+FN), Sp=TN/(TN+FP), Acc=(TP+TN)/(TP+TN+FN+FP) og AUC. Klik her for at se en større version af dette tal.

Figure 8
Figur 8. Udførelsen af phage DNA fragmenter identifikation. Evalueringskriterierne er Sn=TP/(TP+FN), Sp=TN/(TN+FP), Acc=(TP+TN)/(TP+TN+FN+FP) og AUC. Klik her for at se en større version af dette tal.

Supplerende materiale: Klik her for at downloade denne fil.

Subscription Required. Please recommend JoVE to your librarian.

Discussion

Denne vejledning giver et overblik for biologer og algoritmedesign begyndere om, hvordan man konstruerer en brugervenlig deep learning ramme for biologisk sekvens klassificering i metagenomiske data. Denne vejledning har til formål at give intuitiv forståelse af deep learning og løse den udfordring, som begyndere ofte har svært ved at installere deep learning-pakken og skrive koden til algoritmen. I forbindelse med nogle enkle klassificeringsopgaver kan brugerne bruge strukturen til at udføre klassificeringsopgaverne.

I betragtning af at mange biologer ikke er bekendt med kommandolinjen i Linux-operativsystemet, forudinstallerede vi al den afhængige software i en virtuel maskine. På denne måde kan brugeren direkte køre koden i den virtuelle maskine efter ovennævnte protokol. Hvis brugerne er fortrolige med Linux-operativsystemet og Python-programmeringen, kan de også køre denne protokol direkte på serveren eller den lokale pc. På denne måde skal brugeren forudinstallere følgende afhængige software:

Python 2.7.12 (https://www.python.org/)
Python-pakker:
numpy 1.13.1 (http://www.numpy.org/)
h5py 2.6.0 (http://www.h5py.org/)
TensorFlow 1.4.1 (https://www.tensorflow.org/)
Keras 2.0.8 (https://keras.io/)
MATLAB Component Runtime (MCR) R2018a (https://www.mathworks.com/products/compiler/matlab-runtime.html)

Manualen for vores tidligere arbejde3 har en kort beskrivelse af installationen. Bemærk, at versionsnummeret på hver pakke svarer til den version, vi brugte i koden. Fordelen ved at køre koden på serveren eller den lokale pc uden den virtuelle maskine er, at koden kan fremskynde med en GPU på denne måde, hvilket kan spare meget tid i træningsprocessen. På denne måde skal brugeren installere GPU-versionen af TensorFlow (se manualen til tidligere arbejde3).

Nogle af de kritiske trin i protokollen beskrives som følger. I trin 4.1 erstattes filnavnene "p_train.fasta", "n_train.fasta", "p_test.fasta" og "n_test.fasta" af de anvendte filnavne. Rækkefølgen af disse fire filer i denne kommando kan ikke ændres. Hvis filerne indeholder aminosyresekvenser, skal den sidste parameter være "aa"; Hvis filerne indeholder nukleinsyresekvenser, skal den sidste parameter være "nt". Denne kommando bruger kodningsformularen "one-hot" til at digitalisere de biologiske sekvenser. En introduktion af kodningsformularen "one-hot" findes i det supplerende materiale. I trin 5.1, fordi den virtuelle maskine ikke kan fremskyndes med GPU'en, kan denne proces tage et par timer eller flere dage, afhængigt af datastørrelsen. Statuslinjerne for hver gentagelses epoke vises i terminalen. Vi indstiller antallet af epoker til 50, og dermed vil der blive vist i alt 50 statuslinjer, når træningsprocessen er afsluttet. Når testprocessen er afsluttet, vises nøjagtigheden af testsættet i terminalen. I mappen "DeepLearning" på den virtuelle maskine oprettes en fil med navnet "predict.csv". Denne fil indeholder alle forudsigelsesresultaterne for testdataene. Rækkefølgen af disse scores svarer til sekvensrækkefølgen i "p_test.fasta" og "n_test.fasta" (første halvdel af disse scores svarer til "p_test.fasta", mens anden halvdel af disse scores svarer til "n_test.fatsa"). Hvis brugerne ønsker at foretage forudsigelser for de sekvenser, hvis sande klasser er ukendte, kan de også deponere disse ukendte sekvenser enten i filen "p_test.fasta" eller "n_test.fasta". På denne måde vises scorerne af disse ukendte sekvenser også i "predict.csv"-filen, men "nøjagtighedsvisningen" i terminalen giver ikke mening. Dette script anvender en convolutional neurale netværk til at udføre klassificeringen. Strukturen af det neurale netværk og koden til det neurale netværk er vist i det supplerende materiale.

Et af kendetegnene ved deep learning er, at mange parameterindstillinger kræver en vis erfaring, hvilket kan være en stor udfordring for begyndere. For at undgå begynderforståelse forårsaget af et stort antal formler fokuserer vi ikke på de matematiske principper for deep learning, og i den virtuelle maskine giver vi ikke en særlig parameterindstillingsgrænseflade. Selvom dette kan være et godt valg for begyndere, kan uhensigtsmæssig parametervalg også føre til et fald i præcision. For at give begyndere mulighed for bedre at opleve, hvordan man ændrer parametrene, tilføjer vi i scriptet "train.py" nogle kommentarer til den relaterede kode, og brugerne kan ændre de relaterede parametre, såsom antallet af convolution-kerner, for at se, hvordan disse parametre påvirker ydeevnen.

Derudover bør mange deep learning-programmer køres under en GPU. Men konfiguration af GPU kræver også nogle computerfærdigheder, der kan være vanskelige for ikke-computerfolk. Derfor vælger vi at optimere koden i en virtuel maskine.

Når brugerne løser andre sekvensklassifikationsopgaver baseret på denne retningslinje, behøver de kun at erstatte de fire sekvensfiler med deres egne data. For eksempel, hvis brugerne har brug for at skelne plasmid-afledte og kromosom-afledte sekvenser i metagenomiske data, kan de direkte downloade plasmid genomer (https://ftp.ncbi.nlm.nih.gov/refseq/release/plasmid/) og bakterielle kromosomgenomer (https://ftp.ncbi.nlm.nih.gov/refseq/release/bacteria/) fra RefSeq-databasen og adskille genomerne i et træningssæt og testsæt. Det er værd at bemærke, at DNA-sekvenser i metagenomiske data ofte fragmenteres snarere end komplette genomer. I sådanne tilfælde kan brugerne bruge MetaSim13-værktøjet til at udtrække DNA-fragmentet fra hele genomet. MetaSim er et brugervenligt værktøj med en GUI-grænseflade, og brugerne kan afslutte de fleste handlinger ved hjælp af musen uden at skrive nogen kommando på tastaturet. For at forenkle driften for begyndere er vores tutorial designet til en to-klasses klassificeringsopgave. Vi er dog nødt til at udføre flerklassificering i mange opgaver. I sådanne tilfælde kan begyndere forsøge at adskille multiklassificeringsopgaven i flere toklasseklassifikationsopgaver. For eksempel konstruerede Zhang et al. for at identificere phageværten 9 toklasses klassificeringer for at identificere, om en given phage-sekvens kan inficere en bestemt vært.

Hjemmesiden til denne tutorial deponeres på GitHub-webstedet https://github.com/zhenchengfang/DL-VM. Enhver opdatering af selvstudiet vil blive beskrevet på hjemmesiden. Brugere kan også rejse deres spørgsmål om denne tutorial på hjemmesiden.

Subscription Required. Please recommend JoVE to your librarian.

Disclosures

Forfatterne erklærer, at der ikke er nogen interessekonflikter.

Acknowledgments

Denne undersøgelse blev støttet økonomisk af National Natural Science Foundation of China (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

Genetik Metagenome Mikrobiom Sekvens klassificering Kunstig intelligens Deep learning Algoritme design
En virtual machine-platform til ikke-computerfolk til brug af deep learning til at klassificere biologiske sekvenser af metagenomiske data
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