# Processamento "manual" de dados de sequenciamento *Shotgun* (Metagenômica) Neste tutorial 🗒 você vai aprender :nerd_face: a processar dados de sequenciamento *high throughput* *shotgun*, utilizando uma abordagem manual. Usaremos 3 amostras, sequenciadas em plataforma Illumina NextSeq 550, paired-end 2x150. Você também vai ter a oportunidade de processar este tipo de dados com um *pipeline* automâtico chamado 🔗[**SqueezeMeta**](https://github.com/jtamames/SqueezeMeta). Mas isto será para o próximo tutorial 🗒. ## Colaboradores * :female-scientist::female-technologist: MSc. Kelly J. Hidalgo Martinez Microbióloga Doutoranda em Genética e Biologia Molecular Instituto de Biologia - UNICAMP :iphone: Whastapp: +5519981721510 :mailbox_with_mail: Email: khidalgo@javeriana.edu.co * :male-scientist::male-technologist: Victor Borin Centurion Biomédico Doutorando em Genética e Biologia Molecular Instituto de Biologia - UNICAMP :iphone:Whastapp: +5519982349780 :mailbox_with_mail: Email: vborincenturion@yahoo.com.br * :male-scientist::male-technologist: Dr. Tiago Palladino Delforno Biólogo :mailbox_with_mail: Email: tiago.palladino@gmail.com --- ## Requisitos **Importante**:exclamation: Não comece este tutorial 🗒 se você ainda não leu e praticou com anteriores, listados aqui: 1. Não preparou seu 💻 para trabalhar no servidor? então vai em 🔗[Preparativos para começar](https://) (Obrigatório) 2. Já tem uma ideia de que é a tela :black_large_square: e como se navega nela? não? então vai em 🔗[UNIX Shell - Linux](https://) (Obrigatório) 3. Você precisa conhecer o tipo de arquivos com os que vai trabalhar. Em 🔗[Tipos de arquivos ](https://) encontra essa informação (Obrigatório). 4. Você precisa saber como activar e desactivar ambientes virtuais em Conda para o uso das ferramentas presentes no nosso servidor. Se ainda não passou por aí vai 🔗[aqui](https://) (Obrigatório). 5. Este turorial 🗒 é uma continuação da parte III do tutorial 🗒 🔗[Control de qualidade e trimagem](https://). Então não dá para você começar aqui ⛔️. Além porque aí você vai aprender bem os parâmetros de qualidade neste tipo de dados. Vai lá primeiro então. ## Alguns tips interessantes antes de começar Não esqueça ter presentes estes tips 💁🏻‍♀️ * O tip mais **importante** é você ser sempre crítico 🤓 no que você está fazendo, **não** se trata de cópiar e colar comando 🙄, tente entender o que você está fazendo, que tem por trás de cada processo, o que está acontecendo 🤔. Este tutorial 🗒 é só um exemplo, mas tem muitos parâmetros para ser trocados segundo seus dados. * Lembra da tecla [Tab] :keyboard: ? para autocompletar nomes de pastas 📁 e/ou arquivos e evitar erros de digitação. * Com a seta para cima você pode voltar nos comandos que você já usou anteiormente. * Lembre-se que a linha de comando é sensível a maiúsculas e minúsculas. * Todo comando/programa tem um menu de ajuda **help**. `comando --help` * Na linha de comando o simbolo `#`, significa que não vai ser executado, e é usado para deixar mensagens. * Para descarregar 🔽 arquivos desde o servidor não esqueça de usar 🔗[Filezilla](https://) --- ## Vamos lá! :beginner: No tutorial 🗒 de **Control de qualidade e trimagem** você aprendeu como ver gráficamente a qualidade das *reads* e a filtrar aquelas com baixa qualidade, para levar as melhores para os análises *downstream*. Bem, agora vamos continuar trabalhando com essas sequências de boa qualidade para avaliar a diversidade taxonômica e funcional das amostras exemplo. ### Pasta de trabalho Lembre-se que a sua 📁 de trabalho é `/data/usuário/shotgun_tutorial` ```coffeescript= ## Confira onde você está pwd ``` Se não estiver em `/data/usuário/shotgun_tutorial`, então use os comandos aprendidos para entrar na pasta. Precisa lembrar comandos? 🔗[Vai aqui!](https://) ## 3 Assembly Após a checagem ✅ e trimagem ✂️ das sequencias, vamos a fazer a montagem das *reads* em *contigs*. O que está por trás deste processo, é um pouco complexo e confuso, se você não teve nenhuma aula falando sobre isto ou não ficou claro, é muito recomendável você procurar informação, especialmente videos serão mais úteis e fáceis de entender. Procure por *Whole genome shotgun sequencing assembly*. 🔗[Aqui](https://www.youtube.com/watch?v=5wvGapmA5zM) tem um video que pode servir. O conceito de **contig** que vem da palavra "contíguo" - é uma série de sequências de DNA sobrepostas usadas para reconstruir a sequência consenso do DNA original sequenciado. O **scaffold** é uma estrutura maior, composta por contigs. Para a montagem de *reads* existem muitos programas chamados de montadores, alguns deles são: * **Megahit:** 🔗[MEGAHIT: an ultra-fast single-node solution for large and complex metagenomics assembly via succinct de Bruijn graph](https://www.ncbi.nlm.nih.gov/pubmed/25609793) / 🔗[GitHub](https://github.com/voutcn/megahit) * **Spades:** 🔗[Manual](http://cab.spbu.ru/files/release3.14.0/manual.html) / 🔗[GitHub](https://github.com/ablab/spades) * **Velvet:** 🔗[Manual](https://www.ebi.ac.uk/~zerbino/velvet/Manual.pdf) / 🔗[GitHub](https://github.com/dzerbino/velvet) * Dentre outros.. * Existem muitos artigos onde comparam o desempenho de vários montadores, o qual é muito útil para escolher o melhor para seus dados. Além de levar em conta os melhores resultados, tem que também ter presente o custo computacional que é dependente de nosso servidor. - Vollmers, J., Wiegand, S., and Kaster, A.-K. (2017). Comparing and evaluating metagenome assembly tools from a microbiologist’s perspective-not only size matters! PloS one 12, e0169662. - Van Der Walt, A.J., Van Goethem, M.W., Ramond, J.-B., Makhalanyane, T.P., Reva, O., and Cowan, D.A. (2017). Assembling metagenomes, one community at a time. BMC genomics 18, 521. - Greenwald, W.W., Klitgord, N., Seguritan, V., Yooseph, S., Venter, J.C., Garner, C., Nelson, K.E., and Li, W. (2017). Utilization of defined microbial communities enables effective evaluation of meta-genomic assemblies. BMC genomics 18, 296. Segundo o análises que a gente fez desses artigos de comparações, escolhimos trabalhar principalmente com dois montadores, Megahit e Spades, sendo o Megahit mais usado pois tem um equilíbrio ideal entre desempenho e uso de memória. Neste tutorial usaremos ele. Bom, depois de toda esa introdução (grande mais necessária), vamos para a ação... Como vamos a usar o modo *co-assembly* (montagem de tudo o conjunto de amostras simultaneamente), devemos juntar as *reads* 1 (ou R1) de cada amostra em um arquivo só, e o mesmo procedimento será feito para as *reads* 2 (ou R2). Para isto usaremos o comando **cat**, aprendido no tutorial 🗒 🔗[UNIX Shell](https://). ```coffeescript= ## Lembre-se de rodar todos os comandos desde sua pasta de trabalho /data/usuario/shotgun_tutorial/ ## Se as amostras estiverem comprimidas (.gz) é necessário primeiro descomprir elas gunzip 02.CleanData/* #use este comando só nesse caso ## Primeiro crie a pasta onde vai colocar o arquivos de saída mkdir 03.JoinedSamples ## Reads 1 cat 02.CleanData/*_1* > 03.JoinedSamples/amostra_all_1.fq ## Reads 2 cat 02.CleanData/*_2* > 03.JoinedSamples/amostra_all_2.fq ``` Leia os comandos assim: concatenar todas as amostras que terminam tenham no meio do nome `_1` (reads R1) que se encontram na 📁 `02.CleanData/`, e salvar o resultado num novo arquivo chamado `amostra_all_1.fq.gz` na 📁 `03.JoinedSamples/`. E concatenar todas as amostras que terminam em `_2.fq.gz` (reads R2) que se encontram na 📁 `shotgun_tutorial/`, e salvar o resultado num novo arquivo chamado `amostra_all_2.fq.gz` na 📁 `03.JoinedSamples`. Agora vamos rodar o comando da montagem, no Megahit, o qual está instalado no ambiente virtual bioinfo do conda. Para lembrar o que é o conda 🐍 e como funciona 🔗[vai aqui!](https://). ```coffeescript= ## Ative o ambiente virtual bioinfo source /opt/Miniconda3/bin/activate bioinfo ## Co-assembly ## Comando básico genêrico # megahit -1 amostra_1.fq -2 amostra_2.fq -o pasta_saida/ -t X nohup megahit --k-list 21,29,39,59,79,99,119 --min-contig-len 150 -1 03.JoinedSamples/amostra_all_1.fq -2 03.JoinedSamples/amostra_all_2.fq -o 04.Assembly/ -t 10 & ## Você pode usar o nohup "&" no começo de todo comando. O nohup é um programinha que grava cada passo do comando em um arquivo plano. você pode ir acompanhando o que acontece no comando olhando dentro desse arquivo. nano nohup.out ``` ![](https://i.imgur.com/zPo9d2K.png) Em condições normais, as amostras de sequenciamento *shotgun* tem um alto número de *reads*, normalmente milhões de sequências, por tanto a montagem vai demorar. Neste exemplo é muito rápido por serem poucas amostras e com pouco número de reads. O Megahit tem muitos mais parâmetros nos que você pode mexer, para saber que opções você tem pode rodar `megahit -h`. O flag 🚩 `--k-list`, você pode usar para colocar os *k-mers* que você quer usar para a montagem. No nosso caso vamos a usar *k-mers* 21, 29, 39, 59, 79, 99, 119. *k-mers* é uma sequência de nucleotídeos de cumprimento 📏 *k*. ## 4 Avaliação das montagens Vamos a avaliar a qualidade da montagem usando 🔗 [**MetaQuast**](http://quast.sourceforge.net/metaquast.html) ```coffeescript= ## Crie uma pasta para os arquivos de saída mkdir 05.AssemblyQuality ## O Metaquast está instalado dentro do ambiente virtual bioinfo2 source /opt/Miniconda3/bin/activate bioinfo2 ## Metaquast metaquast.py -t 10 --min-contig 150 04.Assembly/final.contigs.fa -o 05.AssemblyQuality/ ``` Explore o resultado do *Metaquast*. Descarregue 🔽 pelo Filezilla os arquivos `05.AssemblyQuality/report.html`, `05.AssemblyQuality/icarus.html` e `05.AssemblyQuality/krona_charts/final.contigs_taxonomy_chart.html`, também se quiser ver mais gráficos pode explorar os arquivos dentro da 📁 `05.AssemblyQuality/summary/`. O significado de cada parâmetro pode ser consultado [aqui](http://quast.sourceforge.net/docs/manual.html#) * O `report.html`, traz todas as estatitiscas da montagem. É o mais importante. E sobre tudo muito útil para comparar entre montagens, por exemplo com diferentes *k-mers* ou diferentes montadores. ## 5 Predição ORFs (*Open Reading Frames*) Nesta etapa vamos a usar um *software* chamado 🔗[**Prodigal**](https://github.com/hyattpd/prodigal/wiki) para realizar a predição de genes nos contigs anteriormente montados. ```coffeescript= ## Prodigal está instalado no ambiente virtual bioinfo source /opt/Miniconda3/bin/activate bioinfo ## Crie a pasta para os arquivos de saída mkdir 06.ORFsPredicted ## Prodigal nohup prodigal -i 04.Assembly/final.contigs.fa -o 06.ORFsPredicted/amostras_orf -a 06.ORFsPredicted/amostras_proteins.faa -d 06.ORFsPredicted/amostras_ORFnucleotides.faa -s 06.ORFsPredicted/amostras_genes -p meta & ``` ## 6 Anotação Funcional Para a anotação funcional vamos usar a base de dados de ortologias 🔗[**KEGG**](https://www.kegg.jp/) e o programa para alinhamento 🔗[**Diamond**](http://www.diamondsearch.org/index.php). Se você precisar pode também usar outras bases de dados como 🔗[**eggNOG**](http://eggnog5.embl.de/#/app/home). As bases de dados já se encontram no servidor e formatadas para ser usadas com o **Diamond**. ```coffeescript= ## Criar pasta para os arquivos de saída mkdir 07.FunctionalAnnotation ## Diamond nohup diamond blastx --more-sensitive --threads 10 -k 1 -f 6 qseqid qlen sseqid sallseqid slen qstart qend sstart send evalue bitscore score length pident qcovhsp --id 80 --query-cover 80 -d /home/bioinfo/Documentos/Databases/SqueezeMeta/db/keggdb.dmnd -q 04.Assembly/final.contigs.fa -o 07.FunctionalAnnotation/kegg_annotation.txt & ``` O que significa cada flag 🚩 usado se encontra 🔗[aqui](https://github.com/bbuchfink/diamond_docs/blob/master/2%20Command%20line%20options.MD). ## 7 Mapeamento Agora precisamos *mapear* as ORFs anotadas nos contigs gerados no assembly. Para isso, é preciso *"mapear"*. Este processo vai ser feito usando o programa BWA (*Burrows-Whheler Aligner*). Primeramente, com o comando **cut** vamos a cortar a primeira coluna do arquivo de saída do *Diamond* (`07.FunctionalAnnotation/kegg_annotation.txt`) e vamos a gravar essa coluna em um novo arquivo `contigs_ID_list.txt`. Esta coluna corresponde aos IDs dos contigs anotados pelo *Diamond* com a base de dados de ortologias KEGG. ```coffeescript= cut -f1 07.FunctionalAnnotation/kegg_annotation.txt > 07.FunctionalAnnotation/contigs_ID_list.txt ``` Subsequentemente, vamos procurar os IDs dos contigs anotados do arquivo `07.FunctionalAnnotation/contigs_ID_list.txt` no arquivo `06.ORFsPredicted/amostras_ORFnucleotides.faa` que contem as sequências nucleotídicas de cada ORF predita para extrair las. ```coffeescript= ## Crie a pasta para o arquivo de saída do mapeamento mkdir 08.Maping ## Extrair sequências anotadas perl -ne 'if(/^>(\S+)/){$c=$i{$1}}$c?print:chomp;$i{$_}=1 if @ARGV' 07.FunctionalAnnotation/contigs_ID_list.txt 04.Assembly/final.contigs.fa > 08.Maping/kegg_annotation_seqs.fa ``` Agora vamos a realizar o *mapeamento* das sequências extraídas e anotadas dentro das *reads* de todas as amostras analisadas. Para isto precisamos *indexar* as sequências das ORFSs anotadas para ser nosso *"banco de dados"*. Este processo será realizado para cada uma das amostras por separado para conseguir ter o número de reads mapeadas por cada uma. ```coffeescript= ## BWA está instalado dentro do ambiente virtual bioinfo, se precisar ative ele! bwa index 08.Maping/kegg_annotation_seqs.fa ``` Agora o *mapeamento* usando nosso *banco de dados* criado anteriormente e o r1 e r2 de cada amostra ```coffeescript= ## Amostra 1 bwa mem 08.Maping/kegg_annotation_seqs.fa 02.CleanData/amostra1_1_paired.fq 02.CleanData/amostra1_2_paired.fq > 08.Maping/mapeamento_amostra1.sam ## Amostra 2 bwa mem 08.Maping/kegg_annotation_seqs.fa 02.CleanData/amostra2_1_paired.fq 02.CleanData/amostra2_2_paired.fq > 08.Maping/mapeamento_amostra2.sam ## Amostra 3 bwa mem 08.Maping/kegg_annotation_seqs.fa 02.CleanData/amostra3_1_paired.fq 02.CleanData/amostra3_2_paired.fq > 08.Maping/mapeamento_amostra3.sam ``` ## 8. Avaliação da anotação Vamos a avaliar quantas sequências foram mapeadas para cada contig (ou *node*) de cada amostra. Os arquivos de saída do mapeamento, `mapeamento_amostra1.sam`, `mapeamento_amostra2.sam` e `mapeamento_amostra3.sam` tem que ser transformados e formatados para conseguir ler eles. Para isto vamos usar o programa 🔗[**SAMtools**](http://samtools.sourceforge.net/) (*Manipulating alignments in the SAM format*). **Amostra 1** ```coffeescript= ###AMOSTRA 1### ## Primero devemos transformar o arquivo .sam para .bam. SAMtools está instalado no ambiente virtual bioinfo, se precisar ative ele! samtools view -b -S -o 08.Maping/mapeamento_amostra1.bam 08.Maping/mapeamento_amostra1.sam ## Ordenando samtools sort 08.Maping/mapeamento_amostra1.bam -o 08.Maping/mapeamento_amostra1.sorted ## Indexando samtools index 08.Maping/mapeamento_amostra1.sorted ## Criando as estatísticas da anotação functional samtools idxstats 08.Maping/mapeamento_amostra1.sorted > 07.FunctionalAnnotation/amostra1_kegg_annotation_stats.txt ## Ordenando sort -k1,1 07.FunctionalAnnotation/amostra1_kegg_annotation_stats.txt > 07.FunctionalAnnotation/amostra1_kegg_annotation_stats_sorted.txt ## Explorar o arquivo nano 07.FunctionalAnnotation/amostra1_kegg_annotation_stats_sorted.txt ``` **Amostra 2** ```coffeescript= ###AMOSTRA 2### ## Primero devemos transformar o arquivo .sam para .bam. SAMtools está instalado no ambiente virtual bioinfo, se precisar ative ele! samtools view -b -S -o 08.Maping/mapeamento_amostra2.bam 08.Maping/mapeamento_amostra2.sam ## Ordenando samtools sort 08.Maping/mapeamento_amostra2.bam -o 08.Maping/mapeamento_amostra2.sorted ## Indexando samtools index 08.Maping/mapeamento_amostra2.sorted ## Criando as estatísticas da anotação functional samtools idxstats 08.Maping/mapeamento_amostra2.sorted > 07.FunctionalAnnotation/amostra2_kegg_annotation_stats.txt ## Ordenando sort -k1,1 07.FunctionalAnnotation/amostra2_kegg_annotation_stats.txt > 07.FunctionalAnnotation/amostra2_kegg_annotation_stats_sorted.txt ## Explorar o arquivo nano 07.FunctionalAnnotation/amostra2_kegg_annotation_stats_sorted.txt ``` **Amostra 3** ```coffeescript= ###AMOSTRA 2### ## Primero devemos transformar o arquivo .sam para .bam. SAMtools está instalado no ambiente virtual bioinfo, se precisar ative ele! samtools view -b -S -o 08.Maping/mapeamento_amostra3.bam 08.Maping/mapeamento_amostra3.sam ## Ordenando samtools sort 08.Maping/mapeamento_amostra3.bam -o 08.Maping/mapeamento_amostra3.sorted ## Indexando samtools index 08.Maping/mapeamento_amostra3.sorted ## Criando as estatísticas da anotação functional samtools idxstats 08.Maping/mapeamento_amostra3.sorted > 07.FunctionalAnnotation/amostra3_kegg_annotation_stats.txt ## Ordenando sort -k1,1 07.FunctionalAnnotation/amostra3_kegg_annotation_stats.txt > 07.FunctionalAnnotation/amostra3_kegg_annotation_stats_sorted.txt ## Explorar o arquivo nano 07.FunctionalAnnotation/amostra3_kegg_annotation_stats_sorted.txt ``` Arquivo `amostra1_kegg_annotation_stats_sorted.txt` ![](https://i.imgur.com/vNUG5qa.png) 1º coluna: nome da sequência 2º coluna: tamanho da sequência 3º coluna: quantidade de reads mapeados 4º coluna: quantidade de reas **não** mapeados ## 9 Análises randômico KEGG orthology Nesta etapa vamos adicionar as informações sobre os diferentes KEGG numbers, realizando uma asignação randômica dos diferentes níveis a cada KEGG number anotados. Primeiro é necessário que copie o arquivo `kegg.tsv`, o qual é uma tabela com todos os níveis de información dos KEGG numbers. Esse arquivo se encontra na 📁 `/home/bioinfo/Documentos/examples_datasets/` ```coffeescript= ## copiar o arquivo kegg.tsv para sua pasta de anotação funcional cp /home/bioinfo/Documentos/examples_datasets/kegg.tsv 07.FunctionalAnnotation/ ## Ordenando sort -k1,1 07.FunctionalAnnotation/kegg.tsv > 07.FunctionalAnnotation/kegg_sort.tsv ``` Agora corte a coluna dos ID dos contigs e ID dos KEGG do arquivo ```coffeescript= ## Formatar tabela da anotação funcional perl -pe 's/\|?(?:\s+gi|ref)?\|\s*/\t/g' 07.FunctionalAnnotation/kegg_annotation.txt > 07.FunctionalAnnotation/kegg_annotation_formated.txt ## Cortar as colunas 1 (Contig ID) e 4 (KEGG ID) e gravar em um novo arquivo cut -f1,4 07.FunctionalAnnotation/kegg_annotation_formated.txt > 07.FunctionalAnnotation/ID_contigs_keggs.tsv ## Ordenando sort -k2,2 07.FunctionalAnnotation/ID_contigs_keggs.tsv > 07.FunctionalAnnotation/ID_contigs_keggs_sorted.tsv ## Assignação randômica cat 07.FunctionalAnnotation/ID_contigs_keggs_sorted.tsv | while read line ; do echo "$line" | join -1 2 -2 1 -e"NA" -o1.1,0,2.2,2.3,2.4,2.5 -t $'\t' - 07.FunctionalAnnotation/kegg_sort.tsv | shuf -n1 >> 07.FunctionalAnnotation/keggs_randomic_analysis.tsv ; done ## Ordenando por Contig ID sort -k1,1 07.FunctionalAnnotation/keggs_randomic_analysis.tsv > 07.FunctionalAnnotation/keggs_randomic_analysis_sorted.tsv ``` ## 10 Anotação Taxonômica Nesta etapa usaremos o programa 🔗[**Kaiju**](http://kaiju.binf.ku.dk/) que usa como banco de dados o NCBI nr (*BLAST non-redundant protein database nr,*) para anotar as sequências previamente anotadas funcionalmente e mapeadas ```coffeescript= ## Crie a pasta para os arquivos de saída mkdir 09.TaxonomicAnnotation ## O Kaiju está instalado no ambiente virtual bioinfo, se precisar ative ele! nohup kaiju -t /home/bioinfo/Documentos/Databases/kaiju_RefSeq/nodes.dmp -f /home/bioinfo/Documentos/Databases/kaiju_RefSeq/kaiju_db.fmi -i 08.Maping/kegg_annotation_seqs.fa -o 09.TaxonomicAnnotation/arquivo_taxon.out ## Add nomes dos taxons nohup kaiju-addTaxonNames -t /home/bioinfo/Documentos/Databases/kaiju_RefSeq/nodes.dmp -n /home/bioinfo/Documentos/Databases/kaiju_RefSeq/names.dmp -i 09.TaxonomicAnnotation/arquivo_taxon.out -o 09.TaxonomicAnnotation/arquivo_taxon.txt -p ## Ordenando sort -k1,1 09.TaxonomicAnnotation/arquivo_taxon.txt > 09.TaxonomicAnnotation/arquivo_taxon_sorted.txt ## Eliminando a primeira coluna cut -f2,3,4 09.TaxonomicAnnotation/arquivo_taxon_sorted.txt > 09.TaxonomicAnnotation/arquivo_taxon_sorted_formated.txt ``` ## 11 Construção da Tabela Final Agora vamos a rodar uma série de comandos para formatar e juntar as tabelas das anotações de todas as amostras em uma tabela só ```coffeescript= ## Crie uma pasta para colocar tabelas temporais ou intermediarias mkdir tmp ## Juntando Tabela de contigs + keggs + reads amostra1 join -j 1 -o 1.1,1.2,1.3,1.4,1.5,1.6,2.2,2.3 07.FunctionalAnnotation/keggs_randomic_analysis_sorted.tsv 07.FunctionalAnnotation/amostra1_kegg_annotation_stats_sorted.txt -t $'\t' > tmp/Contigs_Keggs_amostra1.txt ## Juntando Contigs_Keggs_amostra1.txt + reads amostra2 join -j 1 -o 1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,2.3 tmp/Contigs_Keggs_amostra1.txt 07.FunctionalAnnotation/amostra2_kegg_annotation_stats_sorted.txt -t $'\t' > tmp/Contigs_Keggs_amostra1_amostra2.txt ## Juntando Contigs_Keggs_amostra1_amostra2.txt + reads amostra3 join -j 1 -o 1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.3 tmp/Contigs_Keggs_amostra1_amostra2.txt 07.FunctionalAnnotation/amostra3_kegg_annotation_stats_sorted.txt -t $'\t' > tmp/Contigs_Keggs_amostra1_amostra2_amostra3.txt ## Juntando Contigs_Keggs_amostra1_amostra2_amostra3.txt + tabela taxonomias join -j 1 -o 1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,1.10,2.2,2.3 tmp/Contigs_Keggs_amostra1_amostra2_amostra3.txt 09.TaxonomicAnnotation/arquivo_taxon_sorted_formated.txt -t $'\t' > 10.FinalTable/FinalTable.txt ``` Faça *download* 🔽 da tabela pelo *Filezilla*. Como é um arquivo `.txt`, você tem que usar a opção abrir com, e escolher *Excel*. E voilá! 💃🏼🕺🏼 a tabela final com todas as informações (funcional e taxonômica) ![](https://i.imgur.com/KR2Onu1.png) Esta tabela ainda precisa de algumas formatações, como colocar os nomes das colunas e separar a anotação taxonômica (para cada nível uma coluna). Por enquanto, no excel adicione uma linha para colocar os nomes das colunas, que são: | Contig ID | KEGG ID | Level1 | Level2 | Level3 | GenName | Length | amostra1 | amostra2 | amostra3 | NCBI ID | Taxonomy | | --------- | ------- | ------ | ------ | ------ | ------- | ------ | -------- | -------- | -------- | ------- | -------- | --- | Em próximos tutoriais vamos aprender a usar o ***software R*** para formatar esta tabela e analisar os dados. ## Referências 📄 **Megahit:** Li, D., Liu, C.-M., Luo, R., Sadakane, K., and Lam, T.-W. (2015). MEGAHIT: an ultra-fast single-node solution for large and complex metagenomics assembly via succinct de Bruijn graph. Bioinformatics 31, 1674-1676. 📄 **SPAdes:** Bankevich, A., Nurk, S., Antipov, D., Gurevich, A.A., Dvorkin, M., Kulikov, A.S., Lesin, V.M., Nikolenko, S.I., Pham, S., and Prjibelski, A.D. (2012). SPAdes: a new genome assembly algorithm and its applications to single-cell sequencing. J Comput Biol 19. 📄 **MetaQUAST:** Mikheenko, A., Saveliev, V., and Gurevich, A. (2016). MetaQUAST: evaluation of metagenome assemblies. Bioinformatics 32. 📄 **Prodigal:** Hyatt, D., Chen, G.-L., Locascio, P.F., Land, M.L., Larimer, F.W., and Hauser, L.J. (2010). Prodigal: prokaryotic gene recognition and translation initiation site identification. BMC Bioinformatics 11, 119. 📄 **KEGG Database:** Kanehisa, M., Sato, Y., Kawashima, M., Furumichi, M., and Tanabe, M. (2016). KEGG as a reference resource for gene and protein annotation. Nucleic Acids Res 44, D457-462. 📄 **EggNOG Database:** Huerta-Cepas, J., Szklarczyk, D., Forslund, K., Cook, H., Heller, D., Walter, M.C., Rattei, T., Mende, D.R., Sunagawa, S., and Kuhn, M. (2015). eggNOG 4.5: a hierarchical orthology framework with improved functional annotations for eukaryotic, prokaryotic and viral sequences. Nucleic acids research 44, D286-D293. 📄 **BWA:** Li, H., and Durbin, R. (2009). Fast and accurate short read alignment with Burrows–Wheeler transform. Bioinformatics 25, 1754-1760. 📄 **DIAMOND:** Buchfink, B., Xie, C., and Huson, D.H. (2014). Fast and sensitive protein alignment using DIAMOND. Nature methods 12, 59 📄 **SAMtools:** Li, H., Handsaker, B., Wysoker, A., Fennell, T., Ruan, J., Homer, N., Marth, G., Abecasis, G., and Durbin, R. (2009). The sequence alignment/map format and SAMtools. Bioinformatics 25, 2078-2079. 📄 **Kaiju:** Menzel, P., Ng, K.L., and Krogh, A. (2016). Fast and sensitive taxonomic classification for metagenomics with Kaiju. Nature communications 7, 11257. FIM! :sparkle: