Parte 8·8.4·18 min de leitura

Agrupamento e Redução de Dimensionalidade

Como encontrar estrutura em dados biológicos de alta dimensão — PCA, UMAP, t-SNE, agrupamento hierárquico e k-means, com suas aplicações em transcriptômica e análise de célula única.

agrupamentoPCAUMAPt-SNEcélula únicaaprendizado não supervisionado

Os conjuntos de dados biológicos são quase sempre de alta dimensão: 20.000 genes medidos por amostra, 30.000 genes por célula, milhões de variantes genéticas por indivíduo. A intuição humana não se estende além de três dimensões, e os métodos estatísticos lutam com a maldição da dimensionalidade. A redução de dimensionalidade e o agrupamento são as ferramentas para encontrar estrutura nesse espaço de alta dimensão.

Esses métodos são fundamentais para a bioinformática moderna. Toda análise de RNA-seq de célula única os usa. Todo artigo de transcriptômica em massa inclui um gráfico PCA. Entender o que esses algoritmos realmente fazem — e onde eles enganam — é essencial para interpretar resultados.

O Problema Central

Você tem uma matriz: n amostras × p características (onde p pode ser 20.000 genes). Você quer:

  1. Visualizar os dados para descobrir estrutura
  2. Agrupar amostras ou células em grupos com padrões de expressão semelhantes
  3. Reduzir ruído focando nos eixos principais de variação

O desafio fundamental: a geometria de alta dimensão é contraintuitiva. Em 20.000 dimensões, todos os pontos tendem a ser equidistantes uns dos outros, e o volume do espaço cresce exponencialmente com as dimensões. Métodos que funcionam em 2D podem falhar catastroficamente em escala genômica.

Análise de Componentes Principais (PCA)

PCA é o método linear de redução de dimensionalidade padrão. Encontra as direções (componentes principais) de máxima variância nos dados.

A matemática: PCA resolve os autovetores da matriz de covariância dos dados. O primeiro componente principal (PC1) é a direção de máxima variância; PC2 é a direção de máxima variância ortogonal ao PC1; e assim por diante.

Concretamente: dada uma matriz amostras × genes X (com média centralizada), PCA encontra uma rotação W tal que XW = pontuações (coordenadas no espaço de PC), e a variância de cada coluna de pontuação é maximizada (decrescendo de PC1 para PC2 para PC3...).

O que preserva: estrutura global. Pontos que estão distantes no espaço original estão distantes no espaço de PC (distâncias lineares preservadas).

O que perde: estrutura local refinada. PCA projeta linearmente — não pode capturar estrutura não linear (variedades curvas no espaço de expressão gênica).

PCA em Transcriptômica

Entrada: matriz de log-contagens normalizadas (amostras × genes)
↓
Filtrar para genes altamente variáveis (top 2000–5000)
↓
Escalar para variância unitária (opcional, mas comum)
↓
PCA na matriz de expressão gênica
↓
Coordenadas de PC usadas para:
  - Controle de qualidade (detectar efeitos de lote, outliers)
  - Visualização de relações entre amostras
  - Entrada para métodos de agrupamento/UMAP subsequentes

Gráfico PC1 e PC2: amostras próximas no espaço de PC têm perfis de expressão global semelhantes. Em um experimento bem projetado, as amostras devem agrupar por condição biológica, não por lote.

Variância explicada: cada PC explica uma fração da variância total. Um scree plot mostra o "cotovelo" — quantos PCs capturam a maior parte da variação. Tipicamente os primeiros 10–50 PCs são informativos; o restante é ruído.

Detecção de efeito de lote: se PC1 separa amostras por data de sequenciamento em vez de biologia, você tem um efeito de lote. Isso é visualizado antes de qualquer interpretação biológica.

As entradas do PCA importam enormemente

Para RNA-seq: sempre transforme logaritmicamente as contagens antes do PCA (log2(CPM + 1) ou a transformação estabilizadora de variância do DESeq2). Contagens brutas violam as suposições nas quais o PCA se baseia — genes altamente expressos dominam a matriz de covariância e obscurecem a estrutura biológica. Também filtre para genes altamente variáveis; o ruído de genes expressos de forma estável dilui o sinal.

Interpretando Cargas de PC

Cada PC é uma combinação linear de todos os genes. As "cargas" (coeficientes de genes para cada PC) informam quais genes impulsionam a separação:

  • Genes com grandes cargas positivas no PC1 são altamente expressos em amostras com altas pontuações de PC1
  • Genes com grandes cargas negativas no PC1 são altamente expressos em amostras com baixas pontuações de PC1

Isso permite interpretação biológica: se PC1 separa amostras de tumor de normais, suas cargas identificam os genes mais responsáveis por essa separação. Esses são candidatos para investigação adicional.

t-SNE: Visualizando Estrutura Local

O t-SNE (t-Distributed Stochastic Neighbor Embedding) é um método não linear de redução de dimensionalidade projetado especificamente para visualização. Produz embeddings 2D onde pontos similares estão próximos.

O algoritmo:

  1. Calcular similaridades em pares no espaço de alta dimensão (usando kernels Gaussianos)
  2. Definir similaridades em pares alvo em 2D (usando distribuição t com caudas pesadas)
  3. Otimizar coordenadas 2D para minimizar a divergência KL entre as duas distribuições de similaridade

A distribuição t de cauda pesada em 2D é a inovação-chave: previne o aglomeramento (todos os pontos semelhantes colapsando em um ponto) ao permitir que pontos de distância moderada sejam mapeados a maiores distâncias em 2D.

O que o t-SNE preserva: estrutura de vizinhança local. Pontos que estão próximos no espaço de alta dimensão acabam próximos em 2D.

O que o t-SNE NÃO preserva:

  • Distâncias globais. Clusters distantes no t-SNE podem ou não estar distantes no espaço de expressão
  • Tamanhos de cluster. Um grande cluster no t-SNE pode ter menos ou mais células do que um pequeno
  • Distâncias entre clusters não são interpretáveis
O que os gráficos t-SNE não dizem

Em um gráfico t-SNE de dados de célula única, a distância entre o cluster A e o cluster B não diz nada confiável sobre quão diferentes esses tipos celulares são transcriptomicamente. Dois clusters que parecem distantes podem ser mais semelhantes entre si do que dois clusters que parecem adjacentes. Use t-SNE para visualizar pertencimento a cluster, não para quantificar relações.

Parâmetro de perplexidade: controla o número efetivo de vizinhos considerados para cada ponto. Perplexidade baixa (5–10) captura estrutura muito local; perplexidade alta (50–100) captura estrutura mais global. Tente múltiplos valores — o "melhor" t-SNE depende da sua pergunta.

Estocasticidade: t-SNE usa inicialização aleatória e é estocástico. Execute várias vezes com diferentes sementes e use inicialização PCA para reprodutibilidade. Duas execuções de t-SNE dos mesmos dados parecerão diferentes.

Custo computacional: O(n²) ingênuo; a aproximação Barnes-Hut reduz para O(n log n). Ainda lento para >100.000 células.

UMAP: Melhor Preservação de Topologia

O UMAP (Uniform Manifold Approximation and Projection) substituiu em grande parte o t-SNE para análise de célula única. É mais rápido, escala melhor e preserva mais estrutura global.

A base matemática: UMAP está fundamentado em análise de dados topológicos e geometria Riemanniana. Modela os dados como estando em uma variedade de baixa dimensão e constrói uma representação topológica difusa, depois otimiza um embedding 2D para corresponder a essa representação.

Vantagens sobre o t-SNE:

  • Mais rápido (frequentemente 10–100× para grandes conjuntos de dados)
  • Melhor preservação da estrutura global (distâncias entre clusters mais interpretáveis)
  • Determinístico com semente aleatória fixa
  • Escala para milhões de células

Parâmetros-chave:

  • n_neighbors (15–50): controla o equilíbrio entre estrutura local e global. Valores pequenos → foco em vizinhanças locais. Valores grandes → captura mais topologia global
  • min_dist (0,0–1,0): distância mínima no embedding 2D. Valores baixos → clusters mais apertados; valores altos → distribuição mais uniforme
  • n_components: dimensionalidade da saída (geralmente 2 para visualização; às vezes 10–30 como representação intermediária)

UMAP ainda é não linear: como o t-SNE, as distâncias UMAP entre clusters distantes não são perfeitamente interpretáveis. Mas dentro e entre clusters próximos, a estrutura é mais confiável do que o t-SNE.

Pipeline de Análise de Célula Única (Scanpy/Seurat)

Matriz de contagens brutas (células × genes)
↓
Filtragem de qualidade (min genes/célula, % mitocondrial máxima)
↓
Normalização + transformação logarítmica
↓
Identificar genes altamente variáveis
↓
PCA (50 PCs)
↓
Correção de lote (se necessário): Harmony em embeddings de PC
↓
Grafo k-NN no espaço de PC (n_neighbors = 15)
↓
UMAP no grafo k-NN
↓
Agrupamento Leiden/Louvain no grafo k-NN
↓
Anotação de tipo celular (genes marcadores, conjuntos de dados de referência)

Um insight-chave: o UMAP é tipicamente calculado a partir do grafo de k-vizinhos-mais-próximos (k-NN), não diretamente da expressão bruta. E o agrupamento também é calculado a partir do mesmo grafo k-NN — então o layout UMAP e as atribuições de cluster são derivados da mesma estrutura de grafo subjacente.

Métodos de Agrupamento

Agrupamento Hierárquico

O agrupamento hierárquico constrói uma árvore (dendrograma) mostrando como as amostras se agrupam.

Aglomerativo (de baixo para cima): cada amostra começa como seu próprio cluster; depois itera fundindo os dois clusters mais similares até restar um.

Métodos de ligação (como a distância entre clusters é definida):

  • Ligação completa: distância = distância máxima entre qualquer par de pontos dos dois clusters. Produz clusters compactos de tamanho semelhante.
  • Ligação média (UPGMA): distância = distância média entre todos os pares. Equilíbrio balanceado.
  • Método de Ward: minimiza a variância intra-cluster em cada fusão. Frequentemente o melhor para dados de expressão gênica.

Métricas de distância: para dados de expressão, tipicamente:

  • Distância Euclidiana para log-contagens normalizadas
  • 1 − correlação de Pearson para similaridade de padrão de expressão (captura forma relativa, não níveis absolutos)
  • Distância baseada em correlação de Spearman para robustez a outliers

O dendrograma: cortar em diferentes alturas dá diferentes números de clusters. A escolha é subjetiva — use conhecimento de domínio e métricas de validação.

Mapas de calor + agrupamento hierárquico: a visualização canônica para resultados de expressão diferencial de RNA-seq em massa. Genes (linhas) e amostras (colunas) agrupados por perfil de expressão. Módulos de genes co-regulados aparecem como blocos de cor semelhante.

Agrupamento k-Means

k-Means particiona n pontos em k clusters minimizando a soma das distâncias quadradas dentro do cluster ao centroide.

Algoritmo:

  1. Inicializar k centroïdes (aleatoriamente ou com inicialização inteligente k-means++)
  2. Atribuir cada ponto ao seu centroide mais próximo
  3. Recomputar centroïdes como média dos pontos atribuídos
  4. Repetir até convergência

Limitações:

  • Requer especificar k antecipadamente
  • Assume clusters esféricos (variância igual em todas as direções) — falha para clusters alongados ou não convexos
  • Sensível à inicialização (execute várias vezes, tome o melhor resultado)
  • Desempenho ruim com outliers

Escolhendo k: trace a soma das distâncias quadradas dentro do cluster vs. k (método do cotovelo); ou use a pontuação de silhueta (mede quão bem cada ponto se encaixa em seu cluster vs. a alternativa mais próxima).

Agrupamento Baseado em Grafo (Louvain/Leiden)

Para dados de célula única, os métodos baseados em grafo são padrão:

  1. Construir um grafo k-NN: conectar cada célula a seus k vizinhos mais próximos no espaço de PCA
  2. Pesar arestas por similaridade
  3. Aplicar detecção de comunidade (algoritmo Louvain ou Leiden) para encontrar comunidades que maximizam a modularidade

Por que isso funciona para scRNA-seq: as células formam uma variedade no espaço de expressão. Os grafos k-NN capturam a topologia local dessa variedade melhor do que os métodos baseados em distância global. Os clusters correspondem a estados ou tipos celulares distintos.

Parâmetro de resolução: controla a granularidade. Maior resolução → mais clusters menores. Menor resolução → menos clusters maiores. Não há uma resolução "correta" única — depende da pergunta biológica (grandes linhagens vs. subtipos finos).

Leiden vs. Louvain

Leiden (Traag et al. 2019) é uma versão melhorada do Louvain que garante comunidades bem conectadas e é a recomendação atual para agrupamento de célula única. O Louvain pode produzir comunidades internamente desconectadas em alguns casos. Para a maioria dos propósitos práticos, os resultados são semelhantes, mas use Leiden como padrão.

Comparando Métodos de Redução de Dimensionalidade

MétodoTipoPreservaVelocidadeMelhor para
PCALinearVariância globalRápidoQC, detecção de lote, entrada para métodos subsequentes
t-SNENão linearVizinhanças locaisLentoVisualização (≤100K células)
UMAPNão linearLocal + algum globalRápidoVisualização + análise subsequente
HierárquicoAgrupamentoEstrutura hierárquicaO(n²) espaçoMapas de calor, pequenos conjuntos de dados, dendrograma necessário
k-meansAgrupamentoClusters esféricosRápidoGrandes conjuntos de dados, clusters bem separados
Leiden/LouvainComunidade de grafoEstrutura topológicaRápidoAgrupamento de célula única

Avaliando Clusters

O agrupamento é não supervisionado — não há verdade básica. A avaliação é inerentemente mais difícil do que o aprendizado supervisionado:

Métricas internas (não requerem rótulos):

  • Pontuação de silhueta: para cada ponto, mede quão semelhante é ao seu próprio cluster vs. o cluster alternativo mais próximo. Faixa [−1, 1]; maior = melhor separação.
  • Índice Davies-Bouldin: razão média do espalhamento intra-cluster para a distância entre clusters. Menor = melhor.
  • Índice Calinski-Harabasz: razão de variância entre clusters para intra-cluster. Maior = melhor.

Validação biológica (para scRNA-seq):

  • Genes marcadores: os genes marcadores específicos do cluster correspondem a marcadores conhecidos de tipos celulares?
  • Integração de conjunto de dados de referência: os clusters se alinham com conjuntos de dados de referência anotados (CellTypist, Azimuth)?
  • Coerência funcional: as células em um cluster respondem de forma semelhante a perturbações?
  • Análise de trajetória: as relações de cluster formam caminhos de desenvolvimento biologicamente plausíveis?

Correção de Lote Antes da Visualização

Um problema comum: amostras processadas em lotes diferentes agrupam por lote em PCA/UMAP em vez de biologia.

ComBat (RNA-seq em massa): correção paramétrica de efeito de lote que ajusta para efeitos de lote aditivos e multiplicativos. Execute em log-contagens normalizadas antes do PCA.

Harmony (célula única): integra conjuntos de dados de célula única ajustando iterativamente as coordenadas de PC para remover efeitos de lote enquanto preserva a variação biológica.

scVI (modelo generativo profundo): aprende uma representação latente que leva em conta os efeitos de lote probabilisticamente.

Após correção de lote: UMAP e agrupamento devem refletir biologia, não fatores técnicos. Sempre verifique com marcadores biológicos conhecidos — a supercorreção pode fundir tipos celulares genuinamente diferentes.

Aplicação: Fluxo de Trabalho de RNA-seq de Célula Única

O fluxo de trabalho padrão Scanpy/Seurat exemplifica como esses métodos se combinam:

  1. Filtragem de QC: remover células com poucos genes (gotículas vazias), muitos genes (dupletos) ou alta fração mitocondrial (células danificadas)
  2. Normalização: normalizar para 10.000 contagens por célula, depois transformar logaritmicamente
  3. Seleção de características: manter os 2.000–5.000 genes altamente variáveis (reduz ruído, acelera a computação)
  4. PCA: executar em genes altamente variáveis; manter os 50 principais PCs
  5. Correção de lote (se necessário): Harmony em embeddings de PC
  6. Grafo k-NN: k=15 vizinhos no espaço de PC
  7. Agrupamento: Leiden em múltiplas resoluções; escolher resolução que corresponda ao prior biológico
  8. UMAP: para visualização; executar no mesmo grafo k-NN
  9. Expressão diferencial: entre clusters (identifica genes marcadores)
  10. Anotação de tipo celular: combinar marcadores com referência; confirmar com pontuações

Esse pipeline é amplamente automatizado no Scanpy (sc.pp, sc.tl, sc.pl) e Seurat (FindVariableFeatures, RunPCA, FindNeighbors, RunUMAP).

Armadilhas Comuns

Tratar distâncias UMAP como significativas: a interpretação incorreta mais comum. A topologia do cluster no UMAP é informativa; as distâncias inter-cluster não são.

Superagrupamento: muitos clusters dividem tipos celulares reais em sub-clusters arbitrários sem significado biológico. Sempre valide com genes marcadores.

Subagrupamento: poucos clusters fundem populações celulares distintas. Tipos celulares raros (5% das células) podem não aparecer como seu próprio cluster a menos que a resolução seja alta o suficiente.

PCA em contagens brutas: sempre transforme logaritmicamente primeiro. PCA em contagens brutas é dominada por genes altamente expressos e fornece resultados enganosos.

Não filtrar genes altamente variáveis: executar PCA em todos os 30.000 genes inclui milhares de genes housekeeping expressos de forma estável que adicionam ruído sem sinal.

Ignorar efeitos de lote: os efeitos de lote podem ser mais fortes do que o sinal biológico. Sempre execute o PCA primeiro e verifique agrupamentos não biológicos.