---
# System prepended metadata

title: Processamento "manual" de dados de sequenciamento *Shotgun* (Metagenômica)

---

# 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: 



