Waiting
로그인 처리 중...

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

Genetics

Uma plataforma de máquina virtual para profissionais não-computadores para usar o deep learning para classificar sequências biológicas de dados metagenômicos

Published: September 25, 2021 doi: 10.3791/62250

Summary

Este tutorial descreve um método simples para construir um algoritmo de aprendizagem profunda para realizar a classificação de sequência de 2 classes de dados metagenômicos.

Abstract

Uma variedade de tarefas de classificação de sequências biológicas, como classificação de espécies, classificação da função genética e classificação do hospedeiro viral, são processos esperados em muitas análises de dados metagenômicos. Uma vez que os dados metagenômicos contêm um grande número de novas espécies e genes, algoritmos de classificação de alto desempenho são necessários em muitos estudos. Os biólogos geralmente encontram desafios em encontrar ferramentas adequadas de classificação de sequência e anotação para uma tarefa específica e muitas vezes não são capazes de construir um algoritmo correspondente por conta própria devido à falta do conhecimento matemático e computacional necessário. Técnicas de aprendizagem profunda tornaram-se recentemente um tópico popular e mostram fortes vantagens em muitas tarefas de classificação. Até o momento, muitos pacotes de aprendizagem profunda altamente embalados, que tornam possível para os biólogos construir estruturas de aprendizagem profunda de acordo com suas próprias necessidades sem o conhecimento aprofundado dos detalhes do algoritmo, foram desenvolvidos. Neste tutorial, fornecemos uma diretriz para a construção de uma estrutura de aprendizagem profunda fácil de usar para classificação de sequências sem a necessidade de conhecimentos matemáticos suficientes ou habilidades de programação. Todo o código é otimizado em uma máquina virtual para que os usuários possam executar diretamente o código usando seus próprios dados.

Introduction

A técnica de sequenciamento metagenômico contorna o processo de isolamento da cepa e sequencia diretamente o DNA total em uma amostra ambiental. Assim, os dados metagenômicos contêm DNA de diferentes organismos, e a maioria das sequências biológicas são de novos organismos que não estão presentes no banco de dados atual. De acordo com diferentes propósitos de pesquisa, os biólogos precisam classificar essas sequências de diferentes perspectivas, como classificação taxonômica1, classificação vírus-bactérias2,3,4, classificação cromossômica-plasmida3,5,6,7, e anotação da função genética (como classificação de gene de resistência a antibióticos8 e classificação fator de virulência9 ). Como os dados metagenômicos contêm um grande número de novas espécies e genes, os algoritmos ab initio, que não se baseiam em bancos de dados conhecidos para classificação de sequências (incluindo classificação de DNA e classificação de proteínas), são uma abordagem importante na análise de dados metagenômicos. No entanto, o desenho desses algoritmos requer conhecimentos de matemática profissional e habilidades de programação; portanto, muitos biólogos e iniciantes no design de algoritmos têm dificuldade em construir um algoritmo de classificação para atender às suas próprias necessidades.

Com o desenvolvimento da inteligência artificial, algoritmos de aprendizagem profunda têm sido amplamente utilizados no campo da bioinformática para completar tarefas como classificação de sequência em análise metagenômica. Para ajudar os iniciantes a entender algoritmos de aprendizagem profunda, descrevemos o algoritmo de forma fácil de entender abaixo.

Uma visão geral de uma técnica de aprendizagem profunda é mostrada na Figura 1. A tecnologia central de um algoritmo de aprendizagem profunda é uma rede neural artificial, que é inspirada na estrutura do cérebro humano. Do ponto de vista matemático, uma rede neural artificial pode ser considerada como uma função complexa. Cada objeto (como uma sequência de DNA, uma foto ou um vídeo) é primeiro digitalizado. O objeto digitalizado é então importado para a função. A tarefa da rede neural artificial é dar uma resposta correta de acordo com os dados de entrada. Por exemplo, se uma rede neural artificial for construída para executar uma tarefa de classificação de 2 classes, a rede deve produzir uma pontuação de probabilidade que esteja entre 0-1 para cada objeto. A rede neural deve dar ao objeto positivo uma pontuação maior (como uma pontuação superior a 0,5) ao mesmo tempo em que dá ao objeto negativo uma pontuação mais baixa. Para obter esse objetivo, uma rede neural artificial é construída com os processos de treinamento e teste. Durante esses processos, os dados do banco de dados conhecido são baixados e, em seguida, divididos em um conjunto de treinamento e conjunto de testes. Cada objeto é digitalizado de forma adequada e recebe um rótulo ("1" para objetos positivos e "0" para objetos negativos). No processo de treinamento, os dados digitalizados no conjunto de treinamento são inseridos na rede neural. A rede neural artificial constrói uma função de perda que representa a diferença entre o escore de saída do objeto de entrada e o rótulo correspondente do objeto. Por exemplo, se a etiqueta do objeto de entrada for "1" enquanto a pontuação de saída for "0.1", a função de perda será alta; e se o rótulo do objeto de entrada for "0" enquanto a pontuação de saída for "0.1", a função de perda será baixa. A rede neural artificial emprega um algoritmo iterativo específico que ajusta os parâmetros da rede neural para minimizar a função de perda. O processo de treinamento termina quando a função de perda não pode ser obviamente diminuída. Finalmente, os dados no conjunto de testes são usados para testar a rede neural fixa, e a capacidade da rede neural de calcular os rótulos corretos para os objetos novos é avaliada. Mais princípios de algoritmos de aprendizagem profunda podem ser encontrados na revisão em LeCun et al. 10.

Embora os princípios matemáticos dos algoritmos de aprendizagem profunda possam ser complexos, muitos pacotes de aprendizagem profunda altamente embalados foram recentemente desenvolvidos, e os programadores podem construir diretamente uma simples rede neural artificial com algumas linhas de código.

Para ajudar biólogos e iniciantes no design de algoritmos a começar a usar o aprendizado profundo mais rapidamente, este tutorial fornece uma diretriz para a construção de uma estrutura de aprendizado profundo fácil de usar para classificação de sequência. Esta estrutura usa a forma de codificação "um-quente" como modelo matemático para digitalizar as sequências biológicas e usa uma rede neural de convolução para realizar a tarefa de classificação (ver o Material Suplementar). A única coisa que os usuários precisam fazer antes de usar esta diretriz é preparar quatro arquivos de sequência no formato "fasta". O primeiro arquivo contém todas as sequências da classe positiva para o processo de treinamento (referido "p_train.fasta"); o segundo arquivo contém todas as sequências da classe negativa para o processo de treinamento (referido a "n_train.fasta"); o terceiro arquivo contém todas as sequências da classe positiva para o processo de teste (referido a "p_test.fasta"); e o último arquivo contém todas as sequências da classe negativa para o processo de teste (referido a "n_test.fasta"). A visão geral do fluxograma deste tutorial é fornecida na Figura 2, e mais detalhes serão mencionados abaixo.

Subscription Required. Please recommend JoVE to your librarian.

Protocol

1. A instalação da máquina virtual

  1. Baixe o arquivo da máquina virtual de (https://github.com/zhenchengfang/DL-VM).
  2. Baixe o software VirtualBox de https://www.virtualbox.org.
  3. Descomprima o arquivo ".7z" usando software relacionado, como "7-Zip", "WinRAR" ou "WinZip".
  4. Instale o software VirtualBox clicando no botão Seguir em cada etapa.
  5. Abra o software VirtualBox e clique no botão Novo para criar uma máquina virtual.
  6. Passo 6: Digite o nome da máquina virtual especificado no quadro "Nome", selecione Linux como o sistema operacional no quadro "Tipo", selecione Ubuntu no quadro "Versão" e clique no botão Próximo.
  7. Aloque o tamanho da memória da máquina virtual. Recomendamos que os usuários puxem o botão para a parte mais direita da barra verde para atribuir o máximo de memória possível à máquina virtual e, em seguida, clique no botão Seguir.
  8. Escolha usar a seleção de arquivos de disco rígido virtual existente, selecione o arquivo "VM_Bioinfo.vdi" baixado a partir do Passo 1.1 e clique no botão Criar.
  9. Clique no botão Estrela para abrir a máquina virtual.
    NOTA: A Figura 3 mostra a captura de tela da área de trabalho da máquina virtual.

2. Crie pastas compartilhadas para troca de arquivos entre o host físico e a máquina virtual

  1. No host físico, crie uma pasta compartilhada chamada "shared_host", e na área de trabalho da máquina virtual, crie uma pasta compartilhada chamada "shared_VM".
  2. Na barra de menu da máquina virtual, clique em Dispositivos, Pasta Compartilhada, Configurações de pastas compartilhadas sucessivamente.
  3. Clique no botão no canto superior direito.
  4. Selecione a pasta compartilhada no host físico criado na Etapa 2.1 e selecione a opção Auto-montagem. Clique no botão OK.
  5. Reinicie a máquina virtual.
  6. Clique com o botão direito do mouse na área de trabalho da máquina virtual e abra o terminal.
  7. Copie o comando siga para o terminal:
    sudo mount -t vboxsf shared_host ./Desktop/shared_VM
    1. Quando solicitado para uma senha, digite "1" e aperte a tecla"Enter",como mostrado na Figura 4.

3. Prepare os arquivos para o conjunto de treinamento e conjunto de testes

  1. Copie todos os quatro arquivos de sequência em formato "fasta" para o processo de treinamento e teste para a pasta "shared_host" do host físico. Desta forma, todos os arquivos também ocorrerão na pasta "shared_VM" da máquina virtual. Em seguida, copie os arquivos da pasta "shared_VM" para a pasta "DeepLearning" da máquina virtual.

4. Digitalize as sequências biológicas usando forma de codificação "um-quente"

  1. Vá para a pasta "DeepLearning", clique no clique com o botão direito do mouse e abra o terminal. Digite o seguinte comando:
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa
    (para sequências de aminoácidos)
    ou
    ./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta nt
    (para sequências de ácido nucleico)
    NOTA: Uma captura de tela deste processo é fornecida na Figura 5.

5. Treine e teste a rede neural artificial

  1. No terminal, digite o seguinte comando conforme mostrado na Figura 6:
    train.py python
    NOTA: O processo de treinamento começará.

Subscription Required. Please recommend JoVE to your librarian.

Representative Results

Em nosso trabalho anterior, desenvolvemos uma série de ferramentas de classificação de sequência para dados metagenômicos usando uma abordagem semelhante a este tutorial3,11,12. Como exemplo, depositamos os arquivos de sequência do subconjunto de conjunto de treinamento e conjunto de testes do nosso trabalho anterior3,11 na máquina virtual.

Fang & Zhou11 visava identificar as proteínas de virion completas e parciais do vírus procariote a partir de dados virome. O arquivo "p_train.fasta" contém fragmentos de proteína de virion do vírus para o conjunto de treinamento; o arquivo "n_train.fasta" contém fragmentos de proteína de não-vida do vírus para o conjunto de treinamento; o arquivo "p_test.fasta" contém os fragmentos de proteína de virion do vírus para o conjunto de testes; e o arquivo "n_test.fasta" contém fragmentos de proteína de não-vida do vírus para o conjunto de testes. O usuário pode executar diretamente os dois seguintes comandos para construir a rede neural:
./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa
e
train.py python

O desempenho é mostrado na Figura 7.

Fang et al.3 visavam identificar fragmentos de DNA de phage de fragmentos de DNA cromossômicos bacterianos em dados metagenômicos. O arquivo "phage_train.fasta" contém os fragmentos de DNA phage para o conjunto de treinamento; o arquivo "chromosome_train.fasta" contém os fragmentos de DNA do cromossomo para o conjunto de treinamento; o arquivo "phage_test.fasta" contém os fragmentos de DNA phage para o conjunto de testes; e o arquivo "chromosome_test.fasta" contém os fragmentos de DNA do cromossomo para o conjunto de testes. O usuário pode executar diretamente os dois seguintes comandos para construir a rede neural:
./onehot_encoding phage_train.fasta chromosome_train.fasta phage_test.fasta chromosome_test.fasta nt
e
train.py python

O desempenho é mostrado na Figura 8.

Vale ressaltar que, como o algoritmo contém alguns processos que possuem aleatoriedade, os resultados acima podem ser ligeiramente diferentes se os usuários reprisarem o script.

Figure 1
Figura 1. Visão geral da técnica de aprendizagem profunda. Clique aqui para ver uma versão maior desta figura.

Figure 2
Figura 2. A visão geral do fluxograma deste tutorial. Clique aqui para ver uma versão maior desta figura.

Figure 3
Figura 3. A captura de tela da área de trabalho da máquina virtual. Clique aqui para ver uma versão maior desta figura.

Figure 4
Figura 4. A captura de tela da ativação das pastas compartilhadas. Clique aqui para ver uma versão maior desta figura.

Figure 5
Figura 5. A captura de tela do processo de digitalização de sequência. Clique aqui para ver uma versão maior desta figura.

Figure 6
Figura 6. Treine e teste a rede neural artificial. Clique aqui para ver uma versão maior desta figura.

Figure 7
Figura 7. O desempenho da identificação de fragmentos de proteína de virion do vírus procariote. Os critérios de avaliação são Sn=TP/(TP+FN), Sp=TN/(TN+FP), Acc=(TP+TN)/(TP+TN+FN+FP) e AUC. Clique aqui para ver uma versão maior desta figura.

Figure 8
Figura 8. O desempenho da identificação de fragmentos de DNA phage. Os critérios de avaliação são Sn=TP/(TP+FN), Sp=TN/(TN+FP), Acc=(TP+TN)/(TP+TN+FN+FP) e AUC. Clique aqui para ver uma versão maior desta figura.

Material Complementar: Clique aqui para baixar este arquivo.

Subscription Required. Please recommend JoVE to your librarian.

Discussion

Este tutorial fornece uma visão geral para biólogos e iniciantes em design de algoritmos sobre como construir uma estrutura de aprendizagem profunda fácil de usar para classificação de sequência biológica em dados metagenômicos. Este tutorial tem como objetivo fornecer uma compreensão intuitiva do aprendizado profundo e enfrentar o desafio que os iniciantes muitas vezes têm dificuldade em instalar o pacote de aprendizagem profunda e escrever o código para o algoritmo. Para algumas tarefas simples de classificação, os usuários podem usar a estrutura para executar as tarefas de classificação.

Considerando que muitos biólogos não estão familiarizados com a linha de comando do sistema operacional Linux, pré-instalamos todo o software dependente em uma máquina virtual. Desta forma, o usuário pode executar diretamente o código na máquina virtual seguindo o protocolo mencionado acima. Além disso, se os usuários estiverem familiarizados com o sistema operacional Linux e a programação python, eles também podem executar este protocolo diretamente no servidor ou PC local. Desta forma, o usuário deve pré-instalar o seguinte software dependente:

Python 2.7.12 (https://www.python.org/)
Pacotes Python:
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/)
Tempo de execução do componente MATLAB (MCR) R2018a (https://www.mathworks.com/products/compiler/matlab-runtime.html)

O manual do nosso trabalho anterior3 tem uma breve descrição da instalação. Observe que o número de versão de cada pacote corresponde à versão que usamos no código. A vantagem de executar o código no servidor ou PC local sem a máquina virtual é que o código pode acelerar com uma GPU desta forma, o que pode economizar muito tempo no processo de treinamento. Desta forma, o usuário deve instalar a versão GPU do TensorFlow (veja o manual do trabalho anterior3).

Alguns dos passos críticos dentro do protocolo são descritos da seguinte forma. Na etapa 4.1, os nomes dos arquivos "p_train.fasta", "n_train.fasta", "p_test.fasta" e "n_test.fasta" devem ser substituídos pelos nomes dos arquivos usados. A ordem desses quatro arquivos neste comando não pode ser alterada. Se os arquivos contivessem sequências de aminoácidos, o último parâmetro deve ser "aa"; se os arquivos contivessem sequências de ácido nucleico, o último parâmetro deve ser "nt". Este comando usa o formulário de codificação "um-quente" para digitalizar as sequências biológicas. Uma introdução do formulário de codificação "um-quente" é fornecida no Material Suplementar. Na etapa 5.1, como a máquina virtual não pode ser acelerada com a GPU, esse processo pode levar algumas horas ou vários dias, dependendo do tamanho dos dados. As barras de progresso para cada época de iteração são mostradas no terminal. Estabelecemos o número de épocas para 50 e, portanto, um total de 50 barras de progresso serão exibidas quando o processo de treinamento estiver concluído. Quando o processo de teste estiver concluído, a precisão do conjunto de testes será exibida no terminal. Na pasta "DeepLearning" da máquina virtual, um arquivo chamado "prever.csv" será criado. Este arquivo contém todas as pontuações de previsão para os dados do teste. A ordem dessas pontuações corresponde à ordem de sequência em "p_test.fasta" e "n_test.fasta" (a primeira metade dessas pontuações corresponde a "p_test.fasta", enquanto a segunda metade dessas pontuações corresponde a "n_test.fatsa"). Se os usuários quiserem fazer previsões para as sequências cujas classes verdadeiras são desconhecidas, eles também podem depositar essas sequências desconhecidas no arquivo "p_test.fasta" ou "n_test.fasta". Desta forma, as pontuações dessas sequências desconhecidas também serão exibidas no arquivo "prever.csv", mas a exibição de "precisão" no terminal não faz sentido. Este script emprega uma rede neural convolucional para realizar a classificação. A estrutura da rede neural e o código para a rede neural são mostrados no Material Suplementar.

Uma das características do aprendizado profundo é que muitas configurações de parâmetros requerem alguma experiência, o que pode ser um grande desafio para os iniciantes. Para evitar a apreensão iniciante causada por um grande número de fórmulas, não focamos nos princípios matemáticos do deep learning, e na máquina virtual, não fornecemos uma interface especial de configuração de parâmetros. Embora esta possa ser uma boa escolha para iniciantes, a seleção inadequada de parâmetros também pode levar a um declínio na precisão. Para permitir que iniciantes experimentem melhor como modificar os parâmetros, no script "train.py", adicionamos alguns comentários ao código relacionado, e os usuários podem modificar os parâmetros relacionados, como o número de núcleos de convolução, para ver como esses parâmetros afetam o desempenho.

Além disso, muitos programas de aprendizagem profunda devem ser executados sob uma GPU. No entanto, a configuração da GPU também requer alguma habilidade de computador que pode ser difícil para profissionais não-computadores; portanto, optamos por otimizar o código em uma máquina virtual.

Ao resolver outras tarefas de classificação de sequência com base nesta diretriz, os usuários precisam apenas substituir os quatro arquivos de sequência por seus próprios dados. Por exemplo, se os usuários precisam distinguir sequências derivadas de plasmídeos e derivados de cromossomo em dados metagenômicos, eles podem baixar diretamente genomas plasmídeos (https://ftp.ncbi.nlm.nih.gov/refseq/release/plasmid/) e genomas cromossomos bacterianos (https://ftp.ncbi.nlm.nih.gov/refseq/release/bacteria/) do banco de dados RefSeq e separar os genomas em um conjunto de treinamento e conjunto de testes. Vale a pena notar que as sequências de DNA em dados metagenômicos são muitas vezes fragmentadas em vez de genomas completos. Nesses casos, os usuários podem usar a ferramenta MetaSim13 para extrair o fragmento de DNA do genoma completo. MetaSim é uma ferramenta fácil de usar com uma interface GUI, e os usuários podem terminar a maioria das operações usando o mouse sem digitar qualquer comando no teclado. Para simplificar a operação para iniciantes, nosso tutorial foi projetado para uma tarefa de classificação de duas classes. No entanto, precisamos realizar a multiclassificação em muitas tarefas. Nesses casos, os iniciantes podem tentar separar a tarefa de multiclassificação em várias tarefas de classificação de duas classes. Por exemplo, para identificar o hospedeiro phage, Zhang et al. construíram 9 classificadores de duas classes para identificar se uma determinada sequência de phage pode infectar um determinado hospedeiro.

A página inicial deste tutorial é depositada no site do GitHub https://github.com/zhenchengfang/DL-VM. Qualquer atualização do tutorial será descrita no site. Os usuários também podem levantar suas dúvidas sobre este tutorial no site.

Subscription Required. Please recommend JoVE to your librarian.

Disclosures

Os autores declaram que não há conflitos de interesse.

Acknowledgments

Esta investigação foi apoiada financeiramente pela Fundação Nacional de Ciência Natural da 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

Genética Edição 175 Metagenome Microbioma Classificação de sequência Inteligência Artificial Aprendizagem Profunda Projeto de Algoritmo
Uma plataforma de máquina virtual para profissionais não-computadores para usar o deep learning para classificar sequências biológicas de dados metagenômicos
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