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

Fastp logo

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 .qza e .qzv,
  • Rodar o fluxo completo com dados reais de 16S: DADA2 → classificação taxonômica → gráfico de barras → diversidade.

gif


Passo a passo

  1. Instalação
  2. Artefatos e visualizações: o jeito QIIME 2 de trabalhar
  3. Baixando os dados de exemplo
  4. Olhando a qualidade das reads
  5. Gerando ASVs com DADA2
  6. Filtrando e resumindo a tabela
  7. Classificação taxonômica
  8. Á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 troque 2026.7 nos 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 arquivo manifest.tsv com 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.qza
O 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 coluna percentage of input merged estiver 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 o taxa-bar-plots.qzv no view.qiime2.org. Dá pra mudar o nível taxonômico (filo, classe, gênero…), ordenar as amostras por qualquer coluna dos metadados (tenta SampleType!) 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!

gif


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

QR Code


Referências

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