# Processamento "automâtico" de dados de sequenciamento *Shotgun* (Metagenômica)
Neste tutorial 🗒 você vai aprender 🤓 a processar dados de sequenciamento *high throughput* *shotgun*, utilizando dois abordagens diferentes: i) manual e ii) automâtico (🔗[*SqueezeMeta*](https://github.com/jtamames/SqueezeMeta) / 🔗[SqueezeMeta, A Highly Portable, Fully Automatic Metagenomic Analysis Pipeline](https://www.frontiersin.org/articles/10.3389/fmicb.2018.03349/full)). Usaremos 3 amostras, sequenciadas em plataforma Illumina NextSeq 550, paired-end 2x150.
## 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 preta 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 🗒 tem uma parte de control de qualidade e trimagem, por tanto não precisaria de estudar primeiro o tutorial 🗒 🔗[Control de qualidade e trimagem](https://). **Porém** é recomendável porque aí você vai aprender bem os parâmetros de qualidade neste tipo de dados.
## 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://)
---
## Introdução
O **SqueezeMeta** é um pipeline automático completo para metagenômica / metatranscriptômica, cobrindo todas as etapas da análise. Além de processamento e análise de metagenomas, também permite a recuperação de genomas individuais a partir dos metagenomas (*Binning*). Para o processamento manual da reconstrução de genomas temos o tutorial :link:[XXXX](https://)
Este tutorial 🗒**não** pretende substituir o 🔗[**manual oficial do *pipeline***](https://github.com/jtamames/SqueezeMeta/blob/master/SqueezeMeta_manual_v1.1.pdf), o qual é muito recomendado de seguir pois tem **TUDO** o relacionado com o processamento e foi criado pelos desenvolvedores da ferramenta ⚒.
Aqui só pretendemos dar uma guia para o uso de este *pipeline* no nosso servidor 🖥.
O **SqueezeMeta** usa uma combinação de scripts personalizados pelos desenvolvedores e software externos para as diferentes etapas da análise:
1. Trimagem ✂️ com 🔗[**Trimmomatic**](http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/TrimmomaticManual_V0.32.pdf) para remoção de adaptadores, e filtragem por qualidade, de acordo com os parâmetros definidos pelo usuário
2. Montagem (🔗[**Megahit**](https://github.com/voutcn/megahit) / 🔗[**Spades**](https://github.com/ablab/spades) 🔗[Manual Spades](http://cab.spbu.ru/files/release3.14.0/manual.html))
3. Predição de RNAs (🔗[**Barrnap**](https://github.com/tseemann/barrnap)) e classificação (🔗[**RDP**](https://rdp.cme.msu.edu/classifier/classifier.jsp))
4. Predição de ORFs (*Open Reading Frames*) ou CDS (*Coding Sequences*) 🧬 (🔗[**Prodigal**](https://github.com/hyattpd/prodigal/wiki))
5. Procura de homologia 🔗[**Diamond**](http://www.diamondsearch.org/index.php) em bancos de dados taxonômicos 🦠 (🔗[**NCBI nr**](https://www.ncbi.nlm.nih.gov/refseq/about/nonredundantproteins/)) e funcionais (🔗 [**KEGG**](https://www.kegg.jp/) / 🔗[**eggNOG**](http://eggnog5.embl.de/#/app/home))
6. 🔗[**Hmmer**](http://hmmer.org/) para procura de homologias na base de dados 🔗[**Pfam**](https://pfam.xfam.org/)
7. Assignação taxonômica dos genes 🧬 (*Scripts* personalizados criados pelos desenvolvedores)
8. Assignação funcional dos genes 🧬 (KEGG, EggNog)
9. **Blastx** nos contigs sem ORFs preditas
10. Assiganação taxonômica 🦠 dos contigs
11. Estimação da cobertura e abundância dos genes 🧬 e contigs (🔗[**Bowtie2**](http://bowtie-bio.sourceforge.net/bowtie2/index.shtml))
12. Estimação da abundância dos taxa
13. Estimação da abundância das funções (Scripts personalizados criados pelos desenvolvedores para calcular a cobertura média e os valores de RPKM normalizados que fornecem informações sobre a abundância de genes 🧬 e contigs)
14. Criação de todos os resultados obtidos para na *ORF table*
15. Binning com 🔗[**MaxBin**](https://microbiomejournal.biomedcentral.com/articles/10.1186/2049-2618-2-26)
16. Binning com 🔗[**MetaBAT**](https://bitbucket.org/berkeleylab/metabat/src/master/)
17. Integração dos resultados do binning com 🔗[**DAS tools**](https://github.com/cmks/DAS_Tool)
18. Assignação taxonômica dos bins, e checagem de dissimilaridades taxonômicas
19. Checagem dos bins com 🔗[**CheckM**](https://github.com/Ecogenomics/CheckM/wiki)
20. Integração dos resultados do binning para obter a *bin table*
21. Integração dos resultados do binning para obter a contig table
22. Predição de **KEGG e** :link:[**metacyc**](https://metacyc.org/) **patwhays** para cada bin
23. Estatísticas finais da rodada
---
## Vamos lá! :beginner:
### Pasta de trabalho
Crie uma 📁 de trabalho
```coffeescript=
mkdir shotgun_SqueezeMeta_tutorial
## Agora entre nesta pasta
cd shotgun_SqueezeMeta_tutorial/
```
**Todos os comandos vão ser rodados estando dentro desta 📁**
Agora vamos a criar uma 📁 para colocar os dados brutos
```coffeescript=
mkdir 00.RawData
```
### Example dataset
O *example dataset* se encontra numa 📁 no servidor. Vamos a **cópiar** o dataset exemplo na 📁 que você criou para isto.
**Entrada**
```coffeescript=
## Cópiar
cp /home/bioinfo/Documentos/examples_datasets/shotgun/* 00.RawData
## Lembre-se que o simbolo * siginifica qualquer caracter. Nesta linha vamos cópiar todos os arquivos dentro da pasta ~/examples_datasets/shotgun/ para a pasta ~/00.RawData/
## Confira
ls 00.RawData/
```
**Saída**
```coffeescript=
amostra1_1.fq amostra1_2.fq amostra2_1.fq amostra2_2.fq amostra3_1.fq amostra3_2.fq
```
**Nota:** Você poderia trabalhar diretamente com seus dados se você tiver, mas a recomendação 🙂 é primeiro praticar com este *dataset*.
### Explorar a qualidade das sequências
```coffeescript=
## Crie um novo diretório para armazenar os reportes de qualidade
mkdir 01.FastqcReports
```
Para analisar 🤓 a qualidade das sequências vamos usar um programa chamado Fastqc, ele faz um scan de cada sequência e determina a qualidade delas segundo vários parâmetros, criando um reporte com interfaz gráfica.
```coffeescript=
## Fastqc está instalado no ambiente virtual bioinfo
source /opt/Miniconda3/bin/activate bioinfo
## Rodar fastqc
fastqc -t 10 00.RawData/* -o 01.FastqcReports/
```
o flag 🚩 -t significa quantos núcleos ou threads você quer que o programa use. Nosso servidor 🖥 tem 22. 10 é suficiente para este processo.
Na anterior linha de comando você processou todas as amostras de uma vez só, simbolizado no caracter *. Lea o comando assim: fastqc por favor me mostra a qualidade das sequências de todas as amostras que se encontram dentro da 📁 `00.RawData/` e coloque os reportes na 📁 `01.FastqcReports/`
Opcionalmente, você pode gerar um reporte único com todas as amostras, usando a ferramenta multiqc
```coffeescript=
multiqc 01.FastqcReports/* -o 01.FastqcReports/
```
Agora para conseguir observar os reportes vai no filezilla e faça download 🔽 deles no seu 💻. Só descarregue os arquivos `.html`
Você vai encontrar dois arquivos por cada amostra o r1 e o r2.
Por enquanto preocupe-se com o parâmetro **Per base sequence quality** que dever ser **Q >30**

Você vai ver esse gráfico de barras 📊. Lembra no tutorial de tipos de arquivos que tem a explicação do que é *Phred score*? para refrescar a memória, 🔗[vai lá](https://) **é importante**:exclamation:.
O r2 sempre tem uma qualidade um pouco mais baixa.

No caso destas amostras, a qualidade delas está muito boa, por tanto não é necessário trimar elas.
Aqui neste reporte você também pode confirmar o número de sequências (**Basic Statistics**) que foram analisadas. Para estas amostras exemplo foram criados subsample de um sequenciamento *shotgun* com 100.000 *reads* para cada amostra. Para facilitar e agilizar as análises.

Se quiser conhecer mais sobre este reporte, saber que significam os demais parâmetros. 🔗[Vai aqui](https://dnacore.missouri.edu/PDF/FastQC_Manual.pdf).
### *SqueezeMeta*
Antes de rodar o *SqueezeMeta* você precisa criar um arquivo plano separado por tabulações, onde vai especificar o nome de suas amostras e os nomes de seus arquivos, assim:
```coffeescript=
## Crie o arquivo map
nano map
## O arquivo deve ser seguindo o seguinte formato, lembre, cada coluna deve estar separada por tab
amostra1 amostra1_1.fq pair1
amostra1 amostra1_2.fq pair2
amostra2 amostra2_1.fq pair1
amostra2 amostra2_2.fq pair2
amostra3 amostra3_1.fq pair1
amostra3 amostra3_2.fq pair2
## Para sair
Ctrl + x
## Para salvar
S
Enter
```
A primeira coluna indica o ID da amostra, a segunda contém os nomes dos arquivos das sequências e a terceira especifica o número do par das leituras (`_1, _2` ou `r1, r2`).Se for o caso, você podeira incluir uma quarta coluna para pedir para o *pipeline* não realizar o *coassembly** de determinadas amostras `noassembly`. Os arquivos podem estar no formato fastq ou fasta e podem ser compactados com gzip.
## Comando principal
O *script* principal tem as informações e comandos necessários para rodar o *pipeline* completo.
No nosso caso especifico vamos a rodar as três amostras no modo *co-assembly*, anotar com KEGG, EggNog, pfam, e será realizado o binning.
```coffeescript=
## O SqueezeMeta está instalado pelo conda e um ambiente virtual chamdo SqueezeMeta. Para ativar:
source /opt/Miniconda3/bin/activate SqueezeMeta
```
O comando genêrico do *SqueezeMeta* é:
```coffeescript=
## Comando genêrico do SqueezeMeta
SqueezeMeta.pl -mode <modo> -p <nomedoprojeto> -s <arquivomap> -f <pastacomasseqs> <opções>
```
Aqui vamos apresentar os argumentos que podem ser usados para rodar. Lembre que no site do 🔗[GitHub](https://github.com/jtamames/SqueezeMeta) dos desenvolverdores e no 🔗[manual](https://github.com/jtamames/SqueezeMeta/blob/master/SqueezeMeta_manual_v1.1.pdf) encontrará informação muito mais detalhada.
### Parâmetros obrigatórios
* `-m` <sequential, coassembly, merged>: Modos para a montagem. Para conhecer o que é cada modo, consulte o 🔗[manual](https://github.com/jtamames/SqueezeMeta/blob/master/SqueezeMeta_manual_v1.1.pdf)
* `-p` `<nomedoprojeto>`: é obrigatório para os modos *coassembly* e *merged*.
* `-s` ou `-samples` `<caminho/do/arquivo/map>`: O arquivo map é obrigatório.
* `-f` ou `-seq` `<caminho/das/seqs>`: 📁 onde estão suas sequências. Obrigatório.
***Trimagem***
* `--cleaning` Com este flag 🚩 você avisa que quer que seja feita a trimmagem (Padrão: não)
* `-cleaning_options` `[opções do Trimmomatic]`: Aqui você deve colocar as opções de trimagem disponíveis no **Trimmomatic**. (Padrão: `LEADING:8 TRAILING:8 SLIDINGWINDOW:10:15 MINLEN:30`). Se você precisar pode consultar nosso tutorial 🗒 sobre 🔗 [Controle de qualidade e trimagem](https://) onde você vai encontrar alguns dos parâmetros e que significam, ou consulte o 🔗 [**Manual do Trimmomatic**](http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/TrimmomaticManual_V0.32.pdf)
***Montagem***
* `-a` `[megahit,spades,canu]`: montador (Padrão: megahit)
* `-assembly_options` `[opções dos montadores]`: Se você quiser pode adicionar opções extra do montador que você vai usar. Consulte os manuais dos montadores para conhecer as alternativas.(🔗 [**Megahit**](https://github.com/voutcn/megahit) / 🔗 [**Spades**](http://cab.spbu.ru/files/release3.14.0/manual.html))
`-c`ou `-contiglen` `[número]`: comprimento mínimo dos contigs (Padrão:200)
`-extassembly` `[pasta/da/montagem/externa]`: Você poderia prover uma montagem anteriormente realizada. O arquivo deve contar os *contigs* em formato `.fasta`. Com este argumento é substituída a etapa de montagem do *SqueezeMeta*.
***Annotation***
* `--nocog`: Pula a assignação funcional pelo **COG** (Padrão: não)
* `--nokegg`: Pula a assignação funcional pelo **KEGG** (Padrão: não)
* `--nopfam`: Pula a assignação funcional pelo **Pfam** (Padrão: não)
* `--euk`: Relaxa os filtros de identidade para anotação de eucariotos (Padrão: não). Isto é recomendado para análises nos quais a população de eucariotos é relevante.
* `-extdb` `[pasta/com/db/externa/]`: Você pode anotar com outras bases de dados diferentes as que usa o *SqueezeMeta*. (p.e. 🔗[**Cazy**](http://www.cazy.org/)) No 🔗[manual](https://github.com/jtamames/SqueezeMeta/blob/master/SqueezeMeta_manual_v1.1.pdf) encontra mais detalhes sobre como formatar bases de dados para *SqueezeMeta*.
* `--D` ou `--doublepass`: Com este flag 🚩 você avisa que quer rodar o **BlastX** para predição de ORF além do Prodigal (Padrão: não)
***Mapeamento***
* `-map` `[bowtie2,bwa,minimap2-ont,minimap2-pb,minimap2-sr]`: se você quiser usar um mapeador diferente do **Bowtie2** pode especificar neste flag 🚩 (Padrão: bowtie2)
***Binning***
* `--nobins`: Pula a etapa de binning (Padrão: não)
* `--nomaxbin`: Pula o binning com MaxBin (Padrão: não)
* `--nometabat`: Pula o binning com MetaBat2 (Padrão: não)
***Desempenho/Performance***
* `-t` `[número]`: Número de núcleos a usar para o processo (Padrão: 12)
* `--lowmem`: Rodar com menos de 16 Gb of RAM de memoria (Padrão: não).
***Outros***
* `-v`: Para conhecer o número da versão instalada
* `-h`: menú de ajuda
Bom, agora no nosso exemplo vamos rodar a seguinte linha de comando:
```coffeescript=
## Lembrando que pode usar o nohup para acompanhar o processo, olhando no arquivo nohup.out
nohup SqueezeMeta.pl -m coassembly -p tutorial -s map -f 00.RawData/ --cleaning --cleaning_options LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:100 -c 150 -t 10 -miniden 70
```
Então, rodamos nossas amostras com as seguintes especificações:
* Modo *coassembly* com o Megahit
* O projeto se chama tutorial
* O arquivo map se chama `map` e se encontra na 📁 atual de trabalho
* Os arquivos com as sequências estão dentro da pasta `00.RawData/`
* O comprimento mínimo dos contigs foi de 150
* Usamos 10 núcleos para o processamento
* O mínimo de identidade foi de 70
* O mapeador usado foi Bowtie2
* Foram permitidas todas as anotações funcionais (KEGG,COG,pfam)
* Foi permitida a reconstrução de genomas (*Binning*) com *MaxBin* e *MetaBat2*
Você pode fazer seguimento do processo entrando nos seguintes arquivos:
```coffeescript=
nano nohup.out
## Você também pode usar o comando tail para mostrar na telas as últimas linhas do arquivo
tail nohup.out
## O pipeline gera dois arquivos para seguimento também
nano tutorial/progress
nano tutorial/syslog
```
Em todos os anteriores arquivos você poderia perceber se por algum erro o processo falhou e parou. Se isso acontecer é possivel souber em que passo ele foi interrompido e reiniar o processo ai.
Vamos supor que o processo parou por falta de memória, no passo 5, que corresponde à anotação funcional na base de dados pfam realizada com o programa **HMMER**. Para reiniciar o processo a partir do passo 5, o comando é
```coffeescript=
## Comando genêrico
restart.pl <nomedoprojeto> -step <passo_para_reiniciar>
## Aplicado a nosso exemplo
restart.pl tutorial -step 5
```
Também é possível rodar cada *script* individualmente se for o caso, com o seguinte comando:
```coffeescript=
## Comando genêrico
script <nomedoprojeto>
## Por exemplo
05.run_hmmer.pl tutorial
```
## Resultados
Quando o processo total acabar, você vai encontrar múltiplas 📁, produto do processamento.
```coffeescript=
## Listar
ls tutorial/
## Saída
SqueezeMeta_conf.pl data/ ext_tables/ intermediate/ methods.txt parameters.pl progress results/ syslog temp/
```
No 🔗[manual](https://github.com/jtamames/SqueezeMeta/blob/master/SqueezeMeta_manual_v1.1.pdf) você vai encontrar o que é cada um dos arquivos gerados durante o processamento. Assim mesmo em próximos tutoriais vamos aprender a usar o ***software R*** para formatar as tabelas de interesse, analisar os dados e gerar gráficos.
## Referências
📄 **SqueezeMeta:** Tamames, J., and Puente-Sánchez, F. (2019). SqueezeMeta, A Highly Portable, Fully Automatic Metagenomic Analysis Pipeline. Frontiers in Microbiology 9.
📄 **SqueezeMeta:** Tamames, J., and Puente-Sanchez, F. (2018). SqueezeM, a fully automatic metagenomic analysis pipeline from reads to bins. bioRxiv, 347559.
📄 **SqueezeMeta:** Tamames, J., Cobo-Simon, M., and Puente-Sanchez, F. (2019). Assessing the performance of different approaches for functional and taxonomic annotation of metagenomes. bioRxiv, 522292.
📄 **FastQC:** Andrews, S. (2010). FastQC: a quality control tool for high throughput sequence data.
📄 **MultiQC:** Ewels, P., Magnusson, M., Lundin, S., and Käller, M. (2016). MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics 32, 3047-3048.
📄 **Trimmomatic:** Bolger, A.M., Lohse, M., and Usadel, B. (2014). Trimmomatic: a flexible trimmer for Illumina sequence data. Bioinformatics 30.
📄 **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.
📄 **Barrnap:** Seemann, T. (2015). "Barrnap". Github
📄 ** 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.
📄 **HMMER:** Eddy, S.R. (2009). "A new generation of homology search tools based on probabilistic inference," in Genome Informatics 2009: Genome Informatics Series Vol. 23. World Scientific), 205-211.
📄 **pfam Database:** Finn, R.D., Bateman, A., Clements, J., Coggill, P., Eberhardt, R.Y., Eddy, S.R., Heger, A., Hetherington, K., Holm, L., and Mistry, J. (2013). Pfam: the protein families database. Nucleic acids research 42, D222-D230.
📄 **RDP Classifier:** Wang, Q., Garrity, G.M., Tiedje, J.M., and Cole, J.R. (2007). Naive Bayesian classifier for rapid assignment of rRNA sequences into the new bacterial taxonomy. Appl. Environ. Microbiol. 73, 5261-5267.
📄 **Bowtie2:** Langmead, B., and Salzberg, S.L. (2012). Fast gapped-read alignment with Bowtie 2. Nature methods 9, 357.
📄 **MaxBin:** Wu, Y.-W., Simmons, B.A., and Singer, S.W. (2015). MaxBin 2.0: an automated binning algorithm to recover genomes from multiple metagenomic datasets. Bioinformatics 32, 605-607.
📄 **MetaBat2:** Kang, D., Li, F., Kirton, E.S., Thomas, A., Egan, R.S., An, H., and Wang, Z. (2019). MetaBAT 2: an adaptive binning algorithm for robust and efficient genome reconstruction from metagenome assemblies. PeerJ Preprints 7, e27522v27521.
📄 **MetaCyc:** Caspi, R., Billington, R., Ferrer, L., Foerster, H., Fulcher, C.A., Keseler, I.M., Kothari, A., Krummenacker, M., Latendresse, M., Mueller, L.A., Ong, Q., Paley, S., Subhraveti, P., Weaver, D.S., and Karp, P.D. (2016). The MetaCyc database of metabolic pathways and enzymes and the BioCyc collection of pathway/genome databases. Nucleic Acids Research 44, D471-D480.
📄 **CheckM:** Parks, D.H., Imelfort, M., Skennerton, C.T., Hugenholtz, P., and Tyson, G.W. (2015). CheckM: assessing the quality of microbial genomes recovered from isolates, single cells, and metagenomes. Genome research, gr. 186072.186114.
FIM! :sparkle: