Waiting
Elaborazione accesso...

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

Genetics

En virtuell maskinplattform för icke-datorproffs för att använda djupinlärning för att klassificera biologiska sekvenser av metagenomiska data

Published: September 25, 2021 doi: 10.3791/62250

Summary

Den här självstudien beskriver en enkel metod för att konstruera en djup inlärningsalgoritm för att utföra 2-klassssekvensklassificering av metagenomiska data.

Abstract

En mängd olika biologiska sekvensklassificeringsuppgifter, såsom artklassificering, genfunktionsklassificering och viral värdklassificering, förväntas processer i många metagenomiska dataanalyser. Eftersom metagenomiska data innehåller ett stort antal nya arter och gener behövs högpresterande klassificeringsalgoritmer i många studier. Biologer stöter ofta på utmaningar i att hitta lämpliga sekvensklassificerings- och anteckningsverktyg för en viss uppgift och kan ofta inte konstruera en motsvarande algoritm på egen hand på grund av brist på nödvändig matematisk och beräkningskunskap. Djupinlärningstekniker har nyligen blivit ett populärt ämne och visar starka fördelar i många klassificeringsuppgifter. Hittills har många mycket paketerade djupinlärningspaket, som gör det möjligt för biologer att konstruera djupinlärningsramverk enligt sina egna behov utan djupgående kunskap om algoritmdetaljerna, utvecklats. I den här självstudien tillhandahåller vi en riktlinje för att konstruera ett lättankänt ramverk för djupinlärning för sekvensklassificering utan att behöva tillräckliga matematiska kunskaper eller programmeringsfärdigheter. All kod är optimerad i en virtuell dator så att användare direkt kan köra koden med sina egna data.

Introduction

Den metagenomiska sekvenseringstekniken kringgår stamisoleringsprocessen och sekvenserar direkt det totala DNA:t i ett miljöprov. Således innehåller metagenomiska data DNA från olika organismer, och de flesta biologiska sekvenser kommer från nya organismer som inte finns i den nuvarande databasen. Enligt olika forskningsändamål måste biologer klassificera dessa sekvenser ur olika perspektiv, såsom taxonomiskklassificering 1,virusbakterieklassificering2,3,4, kromosomplasmidklassificering3, 5,6,7och genfunktionsanteckning (såsom antibiotisk resistensgenklassificering 8 och virulensfaktorklassificering9 ). Eftersom metagenomiska data innehåller ett stort antal nya arter och gener är ab initio-algoritmer, som inte förlitar sig på kända databaser för sekvensklassificering (inklusive DNA-klassificering och proteinklassificering), ett viktigt tillvägagångssätt i metagenomisk dataanalys. Utformningen av sådana algoritmer kräver dock professionell matematikkunskap och programmeringsförmåga; Därför har många biologer och algoritmdesign nybörjare svårt att konstruera en klassificeringsalgoritm som passar deras egna behov.

Med utvecklingen av artificiell intelligens har djupinlärningsalgoritmer använts i stor utsträckning inom bioinformatik för att slutföra uppgifter som sekvensklassificering i metagenomisk analys. För att hjälpa nybörjare att förstå djupinlärningsalgoritmer beskriver vi algoritmen på ett lättförståeande sätt nedan.

En översikt över en djupinlärningsteknik visas i figur 1. Kärntekniken i en djupinlärningsalgoritm är ett artificiellt neuralt nätverk, som är inspirerat av den mänskliga hjärnans struktur. Ur matematisk synvinkel kan ett artificiellt neuralt nätverk betraktas som en komplex funktion. Varje objekt (till exempel en DNA-sekvens, ett foto eller en video) digitaliseras först. Det digitaliserade objektet importeras sedan till funktionen. Uppgiften för det artificiella neurala nätverket är att ge ett korrekt svar enligt indata. Om till exempel ett artificiellt neuralt nätverk är konstruerat för att utföra en klassificeringsuppgift med två klasser, bör nätverket mata ut en sannolikhetspoäng som är mellan 0-1 för varje objekt. Det neurala nätverket bör ge det positiva objektet en högre poäng (till exempel en poäng högre än 0,5) samtidigt som det negativa objektet får en lägre poäng. För att uppnå detta mål är ett artificiellt neuralt nätverk konstruerat med tränings- och testprocesserna. Under dessa processer hämtas data från den kända databasen och delas sedan in i en träningsuppsättning och testuppsättning. Varje objekt digitaliseras på rätt sätt och får en etikett ("1" för positiva objekt och "0" för negativa objekt). I träningsprocessen matas de digitaliserade data i tränings uppsättningen in i det neurala nätverket. Det artificiella neurala nätverket konstruerar en förlustfunktion som representerar skillnaden mellan utdatapoängen för indataobjektet och motsvarande etikett för objektet. Om till exempel etiketten på indataobjektet är "1" medan utdatapoängen är "0,1" blir förlustfunktionen hög. och om etiketten på indataobjektet är "0" medan utdatapoängen är "0,1" blir förlustfunktionen låg. Det artificiella neurala nätverket använder en specifik iterativ algoritm som justerar parametrarna för det neurala nätverket för att minimera förlustfunktionen. Träningsprocessen avslutas när förlustfunktionen uppenbarligen inte kan minskas ytterligare. Slutligen används data i test uppsättningen för att testa det fasta neurala nätverket, och neurala nätverkets förmåga att beräkna rätt etiketter för de nya objekten utvärderas. Fler principer för djupinlärningsalgoritmer finns i översynen i LeCun et al. 10.

Även om de matematiska principerna för djupinlärningsalgoritmer kan vara komplexa, har många högt paketerade djupinlärningspaket nyligen utvecklats, och programmerare kan direkt konstruera ett enkelt artificiellt neuralt nätverk med några rader kod.

För att hjälpa biologer och algoritmdesign nybörjare att komma igång med att använda djupinlärning snabbare, ger den här handledningen en riktlinje för att konstruera ett lättan nyttigt djupinlärningsramverk för sekvensklassificering. Detta ramverk använder kodningsformuläret "one-hot" som matematisk modell för att digitalisera de biologiska sekvenserna och använder ett invecklad neuralt nätverk för att utföra klassificeringsuppgiften (se tilläggsmaterialet). Det enda som användarna behöver göra innan de använder denna riktlinje är att förbereda fyra sekvensfiler i "fast" -format. Den första filen innehåller alla sekvenser av den positiva klassen för träningsprocessen (se "p_train.fast"); Den andra filen innehåller alla sekvenser av den negativa klassen för träningsprocessen (se "n_train.fasta"). Den tredje filen innehåller alla sekvenser av den positiva klassen för provningsprocessen (se "p_test.fast"). och den sista filen innehåller alla sekvenser av den negativa klassen för testprocessen (se "n_test.fast"). Översikten över flödesschemat för denna handledning finns i figur 2, och mer information kommer att nämnas nedan.

Subscription Required. Please recommend JoVE to your librarian.

Protocol

1. Installation av den virtuella datorn

  1. Hämta filen för den virtuella datorn från (https://github.com/zhenchengfang/DL-VM).
  2. Hämta VirtualBox-programvaran från https://www.virtualbox.org.
  3. Dekomprimera filen ".7z" med relaterad programvara, till exempel "7-Zip", "WinRAR" eller "WinZip".
  4. Installera VirtualBox-programvaran genom att klicka på knappen Nästa i varje steg.
  5. Öppna VirtualBox-programvaran och klicka på knappen Ny för att skapa en virtuell dator.
  6. Steg 6: Ange det angivna namnet på den virtuella datorn i ramen "Namn", välj Linux som operativsystem i ramen "Typ", välj Ubuntu i ramen "Version" och klicka på nästa knapp.
  7. Allokera den virtuella datorns minnesstorlek. Vi rekommenderar att användarna drar knappen till den högra delen av det gröna fältet för att tilldela så mycket minne som möjligt till den virtuella datorn och sedan klickar på knappen Nästa.
  8. Välj Alternativet Använd en befintlig virtuell hårddiskfil väljer du filen "VM_Bioinfo.vdi" som hämtats från steg 1.1 och klickar sedan på knappen Skapa.
  9. Klicka på knappen Stjärna för att öppna den virtuella datorn.
    Bild 3 visar skärmdumpen av den virtuella datorns skrivbord.

2. Skapa delade mappar för filer som utbyter mellan den fysiska värden och den virtuella datorn

  1. Skapa en delad mapp med namnet "shared_host" på den fysiska datorns skrivbord och skapa en delad mapp med namnet "shared_VM".
  2. Klicka på Enheter, Delad mapp, Inställningar för delade mappar successivt i menyraden på den virtuella datorn.
  3. Klicka på knappen i det övre högra hörnet.
  4. Markera den delade mappen i den fysiska värden som skapats i steg 2.1 och välj alternativet Montera automatiskt. Klicka på ok-knappen.
  5. Starta om den virtuella datorn.
  6. Klicka på högerklicket på den virtuella datorns skrivbord och öppna terminalen.
  7. Kopiera följande kommando till terminalen:
    sudo mount -t vboxsf shared_host ./Desktop/shared_VM
    1. När du uppmanas att ange ett lösenord anger du "1" och slår på knappen "Ange", som visas i bild 4.

3. Förbered filerna för träningsuppsättningen och testuppsättningen

  1. Kopiera alla fyra sekvensfilerna i "fast"-format för tränings- och testprocessen till mappen "shared_host" för den fysiska värden. På detta sätt kommer alla filer också att uppstå i mappen "shared_VM" på den virtuella datorn. Kopiera sedan filerna i mappen "shared_VM" till mappen "DeepLearning" på den virtuella datorn.

4. Digitalisera de biologiska sekvenserna med hjälp av "en-hot" kodningsform

  1. Gå till mappen "DeepLearning", klicka på högerklicka och öppna terminalen. Skriv följande kommando:
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa
    (för aminosyrasekvenser)
    eller
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta nt
    (för nukleinsyrasekvenser)
    En skärmdump av denna process finns i figur 5.

5. Träna och testa det artificiella neurala nätverket

  1. Skriv följande kommando i terminalen enligt figur 6:
    python train.py
    OBS: Träningsprocessen kommer att påbörjas.

Subscription Required. Please recommend JoVE to your librarian.

Representative Results

I vårt tidigare arbete utvecklade vi en serie sekvensklassificeringsverktyg för metagenomiska data med hjälp av en metod som liknar denna handledning3,11,12. Som ett exempel satte vi in sekvensfilerna i delmängden av träningsuppsättningen och testuppsättningen från vårt tidigare arbete3,11 i den virtuella datorn.

Fang & Zhou11 syftade till att identifiera de kompletta och partiella prokaryotevirusvirionproteinerna från viromedata. Filen "p_train.fasta" innehåller virusvisirproteinfragmenten för träningsuppsättningen; Filen "n_train.fast" innehåller virus som inte är virionproteinfragment för träningssetet. Filen "p_test.fasta" innehåller virusvisirproteinfragmenten för testuppsättningen. och filen "n_test.fast" innehåller viruset nonvirion protein fragment för testuppsättningen. Användaren kan direkt köra följande två kommandon för att konstruera det neurala nätverket:
./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa
och
python train.py

Föreställningen visas i figur 7.

Fang et al.3 syftade till att identifiera DNA-fragment från bakteriell kromosom DNA-fragment i metagenomiska data. Filen "phage_train.fasta" innehåller fag-DNA-fragmenten för träningsuppsättningen; Filen "chromosome_train.fasta" innehåller kromosom-DNA-fragmenten för träningssetet. Filen "phage_test.fasta" innehåller fag-DNA-fragmenten för testuppsättningen. och filen "chromosome_test.fasta" innehåller kromosom-DNA-fragmenten för testuppsättningen. Användaren kan direkt köra följande två kommandon för att konstruera det neurala nätverket:
./onehot_encoding phage_train.fasta chromosome_train.fasta phage_test.fasta chromosome_test.fasta nt
och
python train.py

Föreställningen visas i figur 8.

Det är värt att notera att eftersom algoritmen innehåller vissa processer som har slumpmässighet kan ovanstående resultat vara något annorlunda om användare kör skriptet igen.

Figure 1
Figur 1. Översikt över djupinlärningstekniken. Klicka här om du vill visa en större version av den här figuren.

Figure 2
Figur 2. Översikten över flödesschemat för den här självstudien. Klicka här om du vill visa en större version av den här figuren.

Figure 3
Bild 3. Skärmbilden av skrivbordet på den virtuella datorn. Klicka här om du vill visa en större version av den här figuren.

Figure 4
Figur 4. Skärmbilden av aktiveringen av de delade mapparna. Klicka här om du vill visa en större version av den här figuren.

Figure 5
Figur 5. Skärmbilden av processen för sekvensdigitalisering. Klicka här om du vill visa en större version av den här figuren.

Figure 6
Figur 6. Träna och testa det artificiella neurala nätverket. Klicka här om du vill visa en större version av den här figuren.

Figure 7
Figur 7. Prestandan hos prokaryotevirus virion protein fragment identifiering. Utvärderingskriterierna är Sn=TP/(TP+FN), Sp=TN/(TN+FP), Acc=(TP+TN)/(TP+TN+FN+FP) och AUC. Klicka här om du vill visa en större version av den här figuren.

Figure 8
Bild 8. Prestandan hos phage DNA fragment identifiering. Utvärderingskriterierna är Sn=TP/(TP+FN), Sp=TN/(TN+FP), Acc=(TP+TN)/(TP+TN+FN+FP) och AUC. Klicka här om du vill visa en större version av den här figuren.

Kompletterande material: Klicka här för att ladda ner den här filen.

Subscription Required. Please recommend JoVE to your librarian.

Discussion

Den här självstudien ger en översikt för biologer och algoritmdesign nybörjare om hur man konstruerar ett lättanrikt ramverk för djupinlärning för biologisk sekvensklassificering i metagenomiska data. Denna handledning syftar till att ge intuitiv förståelse för djupinlärning och ta itu med utmaningen att nybörjare ofta har svårt att installera djupinlärningspaketet och skriva koden för algoritmen. För vissa enkla klassificeringsuppgifter kan användare använda ramverket för att utföra klassificeringsuppgifterna.

Med tanke på att många biologer inte är bekanta med kommandoraden i Linux-operativsystemet förinstallerade vi all beroende programvara i en virtuell dator. På så sätt kan användaren direkt köra koden i den virtuella datorn enligt protokollet som nämns ovan. Dessutom, om användare är bekanta med Linux-operativsystemet och Python-programmering, kan de också köra det här protokollet direkt på servern eller den lokala datorn. På så sätt bör användaren förinstallera följande beroende programvara:

Python 2.7.12 (https://www.python.org/)
Python-paket:
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)

Handboken för vårt tidigare arbete3 har en kort beskrivning av installationen. Observera att versionsnumret för varje paket motsvarar den version som vi använde i koden. Fördelen med att köra koden på servern eller den lokala datorn utan den virtuella datorn är att koden kan påskyndas med en GPU på detta sätt, vilket kan spara mycket tid i träningsprocessen. På så sätt bör användaren installera GPU-versionen av TensorFlow (se manualen för tidigare arbete3).

Några av de kritiska stegen i protokollet beskrivs på följande sätt. I steg 4.1 ska filnamnen "p_train.fasta", "n_train.fasta", "p_test.fasta" och "n_test.fasta" ersättas med de använda filnamnen. Det går inte att ändra ordningen på dessa fyra filer i det här kommandot. Om filerna innehåller aminosyrasekvenser ska den sista parametern vara "aa"; Om filerna innehåller nukleinsyrasekvenser ska den sista parametern vara "nt". Med det här kommandot används kodningsformuläret "one-hot" för att digitalisera de biologiska sekvenserna. En introduktion av den "en-heta" kodningsformen finns i det kompletterande materialet. I steg 5.1, eftersom den virtuella datorn inte kan påskyndas med GPU, kan den här processen ta några timmar eller flera dagar, beroende på datastorleken. Förloppsstaplarna för varje iterationsepook visas i terminalen. Vi ställer in antalet epoker till 50, och därför visas totalt 50 förloppsstaplar när träningsprocessen är klar. När testprocessen är klar visas noggrannheten för testuppsättningen i terminalen. I mappen "DeepLearning" på den virtuella datorn skapas en fil med namnet "predict.csv" . Den här filen innehåller alla förutsägelse poäng för test data. Ordningen på dessa poäng motsvarar sekvensordningen i "p_test.fasta" och "n_test.fasta" (den första halvan av dessa poäng motsvarar "p_test.fasta", medan den andra halvan av dessa poäng motsvarar "n_test.fatsa"). Om användare vill göra förutsägelser för de sekvenser vars sanna klasser är okända kan de också sätta in dessa okända sekvenser antingen i filen "p_test.fasta" eller "n_test.fasta". På detta sätt kommer poängen för dessa okända sekvenser också att visas i filen "predict.csv", men "noggrannhet" -skärmen i terminalen är inte meningsfull. Det här skriptet använder ett invecklad neuralt nätverk för att utföra klassificeringen. Strukturen i det neurala nätverket och koden för det neurala nätverket visas i det kompletterande materialet.

En av egenskaperna hos djupinlärning är att många parameterinställningar kräver viss erfarenhet, vilket kan vara en stor utmaning för nybörjare. För att undvika nybörjarförståelse orsakad av ett stort antal formler fokuserar vi inte på de matematiska principerna för djupinlärning, och i den virtuella maskinen tillhandahåller vi inte ett speciellt parameterinställningsgränssnitt. Även om detta kan vara ett bra val för nybörjare, kan olämpligt parameterval också leda till en minskning av precisionen. För att göra det möjligt för nybörjare att bättre uppleva hur parametrarna ändras, i skriptet "train.py", lägger vi till några kommentarer till den relaterade koden, och användare kan ändra relaterade parametrar, till exempel antalet faltningskärnor, för att se hur dessa parametrar påverkar prestandan.

Dessutom bör många djupinlärningsprogram köras under en GPU. Men att konfigurera GPU kräver också viss datorfärdighet som kan vara svår för icke-datorproffs; Därför väljer vi att optimera koden i en virtuell dator.

När du löser andra sekvensklassificeringsuppgifter baserat på den här riktlinjen behöver användarna bara ersätta de fyra sekvensfilerna med sina egna data. Om användare till exempel behöver skilja plasmid-härledda och kromosom-härledda sekvenser i metagenomiska data, kan de direkt ladda ner plasmidgenom (https://ftp.ncbi.nlm.nih.gov/refseq/release/plasmid/) och bakteriell kromosomgenom (https://ftp.ncbi.nlm.nih.gov/refseq/release/bacteria/) från RefSeq-databasen och separera genomen i en träningsuppsättning och testuppsättning. Det är värt att notera att DNA-sekvenser i metagenomiska data ofta fragmenteras snarare än kompletta genom. I sådana fall kan användare använda MetaSim13-verktyget för att extrahera DNA-fragmentet från hela genomet. MetaSim är ett användarvänligt verktyg med ett GUI-gränssnitt, och användare kan slutföra de flesta åtgärder med musen utan att skriva något kommando på tangentbordet. För att förenkla driften för nybörjare är vår handledning utformad för en tvåklassig klassificeringsuppgift. Vi måste dock utföra multiklassificering i många uppgifter. I sådana fall kan nybörjare försöka dela upp multiklassificeringsuppgiften i flera tvåklassklassificeringsuppgifter. För att identifiera fagvärden konstruerade Zhang et al. till exempel 9 tvåklasssklassificerare för att identifiera om en viss fagsekvens kan infektera en viss värd.

Hemsidan för denna handledning deponeras på GitHub-webbplatsen https://github.com/zhenchengfang/DL-VM. Alla uppdateringar av handledningen kommer att beskrivas på webbplatsen. Användare kan också höja sina frågor om denna handledning på webbplatsen.

Subscription Required. Please recommend JoVE to your librarian.

Disclosures

Författarna förklarar att det inte finns några intressekonflikter.

Acknowledgments

Denna undersökning stöddes ekonomiskt av 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 Utgåva 175 Metagenom Mikrobiom Sekvensklassificering Artificiell intelligens Djupinlärning Algoritmdesign
En virtuell maskinplattform för icke-datorproffs för att använda djupinlärning för att klassificera biologiska sekvenser av metagenomiska 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