Classificação taxonômica de reads com Kaiju e visualização com Krona - lmigueel/Bioinformatica GitHub Wiki
1. Sobre
Kaiju (https://kaiju.binf.ku.dk/) encontra correspondências (ine)exatas máximas no nível de proteína usando a transformação de Burrows–Wheeler. Kaiju é um programa para a classificação taxonômica de reads de DNA metagenômico. As leituras são atribuídas diretamente aos táxons usando a taxonomia do NCBI e um banco de dados de referência de sequências de proteínas de genomas microbianos e virais.
Cada read de sequenciamento é atribuída a um táxon na taxonomia do NCBI, comparando-o a um banco de dados de referência contendo sequências de proteínas microbianas e virais. Ao usar a classificação em nível de proteína, o Kaiju atinge uma sensibilidade mais alta em comparação com métodos baseados na comparação de nucleotídeos.
Kaiju pode usar o conjunto de genomas completos disponíveis do NCBI RefSeq ou o subconjunto microbiano do banco de dados de proteínas não redundantes NCBI BLAST nr, opcionalmente incluindo também fungos e eucariotos microbianos.
As reads são traduzidas em sequências de aminoácidos, que são então pesquisadas no banco de dados usando uma pesquisa reversa modificada em uma implementação com eficiência de memória da transformada de Burrows-Wheeler, que encontra correspondências exatas máximas(MEMs), opcionalmente permitindo incompatibilidades no alinhamento da proteína.
A pesquisa pode processar até milhões de reads por minuto usando, por exemplo, apenas 10 GB de RAM com um banco de dados de referência compreendendo 4821 genomas microbianos completos. Tome cuidado com a instalação do banco de dados, ELA CONSOME MUITO ESPAÇO!
Kaiju oferece quatro bancos de dados de referência para classificação, que são baixados da página do servidor da web Kaiju (última atualização em 2020-05-25). Os bancos de dados são:
- Genomas completos RefSeq: sequências de proteínas de genomas bacterianos, archaeal e virais completamente montados do NCBI RefSeq.
- proGenomas: sequências de proteínas de um conjunto representativo de genomas derivados de genomas NCBI RefSeq bacteriano, archaeal e viral.
- NCBI BLAST nr: sequências de proteínas de nr: Bacteria, Archaea e Viruses.
- NCBI BLAST nr + euk: sequências de proteínas de nr: Bactérias, Archaea, Vírus, Fungos e eucariotos microbianos.
Kaiju faz praticamente a mesma coisa que Centrifuge, mas usa uma abordagem metodológica diferente. Primeiro precisamos instalar o Kaiju. Novamente, executarei o kaiju em um ambiente conda separado.
2. Instalação
Você pode tanto clonar o diretório como criar um ambiente conda. Eu prefiro ir pelo conda.
# cria um generic environment
conda create -n kaiju
conda activate kaiji
conda install -c bioconda kaiju
Após a instalação do kaiju, a próxima coisa a fazer é gerar o banco de dados. Você pode encontrar uma descrição dos bancos de dados kaiju AQUI. Eu baixei e formatei os bancos de dados nr (OLHA O ESPAÇO INDO EMBORA). O banco de dados nr é um subconjunto do banco de dados NCBI BLAST nr que contém todas as proteínas pertencentes a Archaea, Bacteria and Viruses. Você pode criar uma pasta somente para os bancos de dados.
mkdir kaijudb
cd kaijudb
kaiju-makedb -s nr_euk
O database do NR contém 90Gb.
Você pode remover os arquivos temporários inutilizados. Sendo eles:
rm -r genomes/
rm kaiju_db.bwt
rm kaiju_db.sa
rm merged.dmp
rm kaiju_db.faa
3. Executando
Vamos executar sobre um dataset paired-end. Estou fora da pasta kaijudb
recém criada. Se você criou mais de um database, você usará todas as opções .fmi
criadas na opção -f, por exemplo -f kaijudb/kaiju_db_*.fmi
.
kaiju -t kaijudb/nodes.dmp -f kaijudb/kaiju_db.fmi \
-i meta_reads.1.fastq -j meta_reads.2.fastq \
-o meta_reads_kaiju.out
Kaiju imprimirá uma linha para cada read ou par de reads. O formato de saída padrão contém três colunas separadas por guias. Usar a opção -v ativa a saída detalhada, que imprimirá colunas adicionais:
- C ou U, indicando se a read é classificada ou não classificada.
- nome da read
- Identificador de táxon NCBI do táxon atribuído
- a pontuação da melhor combinação usada para classificação
- os identificadores de táxons de todas as sequências de banco de dados com a melhor correspondência
- os números de acesso de todas as sequências de banco de dados com a melhor correspondência
- sequência(s) de fragmento correspondente(s)
Como o banco de dados nr agrega vários genes de sequências idênticas, apenas o primeiro número de acesso para cada sequência no arquivo de origem nr é mantido no banco de dados de Kaiju e, portanto, também no arquivo de saída.
O número de identificadores de táxons (coluna 5) e números de acesso (coluna 5) é limitado a 20 entradas.
4. KRONA
Para visualizar os resultados, produziremos um gráfico Krona. Esta etapa requer que o KronaTools esteja instalado:
conda install -c bioconda krona
O gráfico que ele irá gerar é sensacional. E vamos gerar o HTML também.
kaiju2krona -t kaijudb/nodes.dmp -n kaijudb/names.dmp \
-i meta_reads_kaiju.out -o meta_reads_kaiju.krona -u
#HTML
ktImportText -o meta_reads_kaiju.krona.html meta_reads_kaiju.krona
Referências
Menzel, Peter, Kim Lee Ng, and Anders Krogh. 2016. “Fast and Sensitive Taxonomic Classification for Metagenomics with Kaiju.” Nature Communications 7: 11257. https://doi.org/10.1038/ncomms11257.