Tutorial prático do QIIME 2 (16S, Conda)

Metabarcoding com QIIME 2: das reads ao gráfico de diversidade
Fala, pessoal! Bora falar do
QIIME 2
Quantitative Insights Into Microbial Ecology: plataforma para análise de microbioma a partir de genes marcadores.
(pronuncia-se "chime", tipo o sininho 🔔)?
Se no Kraken2 a gente sequencia tudo (metagenômica shotgun), aqui a ideia é outra:
a gente sequencia só um pedacinho de um gene que todo mundo tem, como o
16S rRNA
Gene ribossomal presente em todas as bactérias e arqueias, com regiões conservadas e regiões variáveis (V1 a V9).
das bactérias ou o
ITS
Internal Transcribed Spacer: região usada como "código de barras" para fungos.
dos fungos. É o famoso metabarcoding: mais barato, mais rápido e perfeito para comparar muitas amostras.
O QIIME 2 faz o caminho todo: importa as reads, limpa e corrige os erros de sequenciamento com o DADA2 Algoritmo que corrige erros de sequenciamento e gera ASVs (Amplicon Sequence Variants), variantes exatas de sequência. , classifica cada sequência, monta uma árvore filogenética e calcula diversidade alfa e beta Alfa: diversidade dentro de uma amostra. Beta: quão diferentes as amostras são entre si. . E o melhor: ele gera visualizações interativas que você abre direto no navegador.
Ficou na dúvida entre metabarcoding e metagenômica? Expliquei a diferença no Medium: Quem está na festa?
O que você vai precisar antes:
- Conda — instalação aqui
- WSL/Linux — tutorial aqui (o QIIME 2 não roda direto no Windows)
- ~15 GB de disco livre e paciência na instalação (o ambiente é grandinho!)
Neste guia, você vai:
- Instalar o QIIME 2 num ambiente Conda,
- Entender o que são os arquivos
.qzae.qzv, - Rodar o fluxo completo com dados reais de 16S: DADA2 → classificação taxonômica → gráfico de barras → diversidade.

Passo a passo
- Instalação
- Artefatos e visualizações: o jeito QIIME 2 de trabalhar
- Baixando os dados de exemplo
- Olhando a qualidade das reads
- Gerando ASVs com DADA2
- Filtrando e resumindo a tabela
- Classificação taxonômica
- Árvore filogenética e diversidade
1. Instalação
O QIIME 2 é instalado a partir de um arquivo de ambiente pronto, que já vem com todos os plugins. Primeiro, atualize o Conda (recomendado):
conda update conda -y
Agora crie o ambiente com a versão 2026.7:
conda env create \ --name qiime2-2026.7 \ --file https://raw.githubusercontent.com/qiime2/distributions/refs/heads/dev/2026.7/qiime2/released/rachis-qiime2-linux-64-conda.yml conda activate qiime2-2026.7
Essa instalação demora mesmo (pode levar de 10 a 30 minutos). Não feche o terminal, vai tomar um café ☕.
Teste se deu tudo certo:
qiime info
O QIIME 2 lança versões novas algumas vezes por ano. Para instalar a mais recente, confira o número da versão no guia oficial de instalação e troque2026.7nos comandos acima.
Está num Mac com chip M1/M2/M3? Lá no guia oficial tem o comando específico (usa o Rosetta).
2. Artefatos e visualizações: o jeito QIIME 2 de trabalhar
Antes de rodar qualquer coisa, entenda os dois tipos de arquivo do QIIME 2. Isso evita muita confusão depois:
| Extensão | O que é | Como abrir |
|---|---|---|
.qza |
Artefato: dados (sequências, tabelas, árvores…) + o histórico de tudo que foi feito com eles. | É entrada para o próximo comando. |
.qzv |
Visualização: gráficos e tabelas interativas. | Arraste para o view.qiime2.org. |
Esse histórico dentro do .qza se chama
provenance
Registro automático de todos os comandos, parâmetros e versões usados para gerar aquele arquivo.
.
Seis meses depois, quando o revisor perguntar "qual parâmetro você usou no DADA2?", é só abrir o arquivo no view.qiime2.org e olhar a aba Provenance. Reprodutibilidade de graça!
Os comandos sempre seguem o mesmo padrão: qiime PLUGIN AÇÃO, e as opções começam com
--i- (entrada), --p- (parâmetro), --m- (metadados) e --o- (saída).
3. Baixando os dados de exemplo
Vamos usar os dados do tutorial oficial Gut-to-soil: amostras de 16S de um experimento de compostagem 💩🌱.
As reads já vêm importadas e separadas por amostra (demux.qza), junto com a tabela de metadados.
mkdir -p ~/qiime2_tutorial cd ~/qiime2_tutorial wget -O sample-metadata.tsv \ https://gut-to-soil-tutorial.readthedocs.io/en/latest/data/gut-to-soil/sample-metadata.tsv wget -O demux.qza \ https://gut-to-soil-tutorial.readthedocs.io/en/latest/data/gut-to-soil/demux.qza
Dê uma olhada nos metadados:
qiime metadata tabulate \ --m-input-file sample-metadata.tsv \ --o-visualization sample-metadata.qzv
Quer usar seus próprios FASTQs? Monte um arquivomanifest.tsvcom três colunas (sample-id,forward-absolute-filepath,reverse-absolute-filepath) e importe:qiime tools import \ --type 'SampleData[PairedEndSequencesWithQuality]' \ --input-path manifest.tsv \ --input-format PairedEndFastqManifestPhred33V2 \ --output-path demux.qzaO resto do guia continua igualzinho.
4. Olhando a qualidade das reads
qiime demux summarize \ --i-data demux.qza \ --o-visualization demux.qzv
Abra o demux.qzv no view.qiime2.org e vá na aba
Interactive Quality Plot. Repare em qual posição a qualidade das reads começa a cair.
É com base nisso que você escolhe onde cortar as reads no próximo passo.
Regra prática: corte onde a mediana da qualidade fica abaixo de ~Q25–Q30. Mas lembre: as reads R1 e R2 ainda precisam se sobrepor (pelo menos ~20 bases) para o DADA2 conseguir juntá-las. Para a região V4 (~250 pb), cortar em 250/250 sobra overlap tranquilo.
5. Gerando ASVs com DADA2
Aqui acontece a mágica: o DADA2 filtra, corrige os erros de sequenciamento, junta R1 com R2, remove quimeras e gera as ASVs Amplicon Sequence Variants: sequências exatas, sem agrupar por 97% de similaridade como as antigas OTUs. .
qiime dada2 denoise-paired \ --i-demultiplexed-seqs demux.qza \ --p-trim-left-f 0 \ --p-trunc-len-f 250 \ --p-trim-left-r 0 \ --p-trunc-len-r 250 \ --o-representative-sequences asv-seqs.qza \ --o-table asv-table.qza \ --o-denoising-stats denoising-stats.qza \ --o-base-transition-stats base-transition-stats.qza
Principais parâmetros:
| Parâmetro | Descrição |
|---|---|
--p-trim-left-f / -r |
Quantas bases cortar no início das reads (ex.: para remover primers). |
--p-trunc-len-f / -r |
Em que posição truncar as reads (onde a qualidade cai). |
--o-table |
Tabela de contagem: quantas vezes cada ASV aparece em cada amostra. |
--o-representative-sequences |
A sequência de cada ASV. |
--o-denoising-stats |
Quantas reads sobraram em cada etapa (filtragem, junção, quimeras). |
Confira quantas reads sobreviveram:
qiime metadata tabulate \ --m-input-file denoising-stats.qza \ --o-visualization denoising-stats.qzv
Se a colunapercentage of input mergedestiver muito baixa (tipo abaixo de 50%), provavelmente você truncou demais e as reads R1 e R2 não estão mais se sobrepondo. Volte e aumente o--p-trunc-len.
6. Filtrando e resumindo a tabela
Remova as ASVs que aparecem em só uma amostra (geralmente ruído) e filtre as sequências para combinar com a tabela:
qiime feature-table filter-features \ --i-table asv-table.qza \ --p-min-samples 2 \ --o-filtered-table asv-table-ms2.qza qiime feature-table filter-seqs \ --i-data asv-seqs.qza \ --i-table asv-table-ms2.qza \ --o-filtered-data asv-seqs-ms2.qza
Agora gere o resumo da tabela (esse você vai precisar no passo 8!):
qiime feature-table summarize \ --i-table asv-table-ms2.qza \ --m-metadata-file sample-metadata.tsv \ --o-summary asv-table-ms2.qzv \ --o-sample-frequencies sample-frequencies-ms2.qza \ --o-feature-frequencies asv-frequencies-ms2.qza
No asv-table-ms2.qzv, a aba Interactive Sample Detail mostra quantas reads cada amostra tem.
Anote um número que mantenha a maioria das amostras: ele vai ser a profundidade de rarefação no passo 8.
7. Classificação taxonômica
Para dizer quem é cada ASV, a gente usa um classificador Modelo Naive Bayes treinado com sequências de referência e suas taxonomias (ex.: SILVA, Greengenes2, GTDB). já treinado. Para o tutorial, baixe o classificador pequeno que acompanha os dados:
wget -O suboptimal-16S-rRNA-classifier.qza \ https://gut-to-soil-tutorial.readthedocs.io/en/latest/data/gut-to-soil/suboptimal-16S-rRNA-classifier.qza qiime feature-classifier classify-sklearn \ --i-classifier suboptimal-16S-rRNA-classifier.qza \ --i-reads asv-seqs-ms2.qza \ --o-classification taxonomy.qza
Esse classificador é "subótimo" de propósito: ele é leve para rodar em qualquer computador durante a aula. Para os seus dados de verdade, use um classificador completo (SILVA, Greengenes2…) da página de recursos do QIIME 2, da mesma versão do QIIME 2 que você instalou, e de preferência treinado para a sua região (ex.: V4, 515F/806R).
Agora o gráfico que todo mundo quer ver, o de barras empilhadas:
qiime taxa barplot \ --i-table asv-table-ms2.qza \ --i-taxonomy taxonomy.qza \ --m-metadata-file sample-metadata.tsv \ --o-visualization taxa-bar-plots.qzv
Abra otaxa-bar-plots.qzvno view.qiime2.org. Dá pra mudar o nível taxonômico (filo, classe, gênero…), ordenar as amostras por qualquer coluna dos metadados (tentaSampleType!) e baixar a figura em SVG.
8. Árvore filogenética e diversidade
Algumas métricas de diversidade, como Faith PD Diversidade filogenética: soma dos ramos da árvore ocupados pelas ASVs de uma amostra. e UniFrac Distância entre amostras que leva em conta o parentesco evolutivo das ASVs. , precisam de uma árvore. Bora montar:
qiime phylogeny align-to-tree-mafft-fasttree \ --i-sequences asv-seqs-ms2.qza \ --o-alignment aligned-asv-seqs.qza \ --o-masked-alignment masked-aligned-asv-seqs.qza \ --o-tree unrooted-tree.qza \ --o-rooted-tree rooted-tree.qza
Agora calcule várias métricas de uma vez. Troque o 1800 pelo valor que você anotou no passo 6:
qiime diversity core-metrics-phylogenetic \ --i-phylogeny rooted-tree.qza \ --i-table asv-table-ms2.qza \ --p-sampling-depth 1800 \ --m-metadata-file sample-metadata.tsv \ --output-dir core-metrics-results
O --p-sampling-depth faz a
rarefação
Sorteia o mesmo número de reads em todas as amostras, para comparar de forma justa.
.
Amostras com menos reads que esse valor ficam de fora. Valor alto demais = perde amostras; baixo demais = perde informação.
A pasta core-metrics-results/ tem várias coisas legais. Dois exemplos para começar:
# Diversidade alfa (dentro da amostra): compara os grupos de cada coluna dos metadados qiime diversity alpha-group-significance \ --i-alpha-diversity core-metrics-results/faith_pd_vector.qza \ --m-metadata-file sample-metadata.tsv \ --o-visualization core-metrics-results/faith-pd-group-significance.qzv # Diversidade beta (entre amostras): os grupos de SampleType são diferentes? (PERMANOVA) qiime diversity beta-group-significance \ --i-distance-matrix core-metrics-results/unweighted_unifrac_distance_matrix.qza \ --m-metadata-file sample-metadata.tsv \ --m-metadata-column SampleType \ --p-pairwise \ --o-visualization core-metrics-results/unweighted-unifrac-sampletype-significance.qzv
Não deixe de abrir o core-metrics-results/unweighted_unifrac_emperor.qzv: é a
PCoA
Análise de Coordenadas Principais: mostra as amostras num gráfico onde amostras parecidas ficam perto.
em 3D, que dá pra girar e colorir pelos metadados. É aquele gráfico que vai pro artigo!
Conclusão
Você rodou um fluxo completo de metabarcoding de 16S com o QIIME 2:
- Avaliação da qualidade das reads
- Correção de erros e geração de ASVs com DADA2
- Classificação taxonômica e gráfico de barras
- Árvore filogenética, diversidade alfa e beta
E tudo isso com o histórico guardado dentro de cada .qza. Seu “eu do futuro” agradece.
Até a próxima!

Desafio!!!
Troque o classificador “subótimo” por um classificador completo (SILVA ou Greengenes2) e compare os dois gráficos de barras.
Quantos gêneros a mais aparecem?
Depois, tente colocar tudo num Snakefile: cada comando do QIIME 2 vira uma regra!
Até a próxima!
Dê um suporte ao meu projeto. Doe um cafézinho ☕.
Pix: biologolee@gmail.com
Bitcoin: bc1qg7qrfhclzt3sm60en53qv8fmwpuacfaxt5v55k

Referências
- QIIME 2 — site oficial
- Guia oficial de instalação
- Tutorial Gut-to-soil (dados usados neste guia)
- Reproducible, interactive, scalable and extensible microbiome data science using QIIME 2 (Nature Biotechnology, 2019)
- DADA2: High-resolution sample inference from Illumina amplicon data (Nature Methods, 2016)
- Classificadores pré-treinados e outros recursos
- QIIME 2 View
- Fórum do QIIME 2 (o melhor lugar pra tirar dúvidas!)