# 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** ![](https://i.imgur.com/fK4Eu9X.png) 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. ![](https://i.imgur.com/93YY2l0.png) 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. ![](https://i.imgur.com/gzRNFxU.png) 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: