6  Esplorazione dei Dati

6.1 Heatmap

Un heatmap è uno strumento potente per visualizzare dati di espressione genica, in quanto consente di osservare pattern di espressione di più geni in diversi campioni simultaneamente.

Come funziona:

  1. Matrice di dati: I dati di espressione genica sono organizzati in una matrice, dove le righe rappresentano i geni e le colonne rappresentano i campioni. Ogni cella della matrice contiene un valore che indica il livello di espressione di un particolare gene in un particolare campione.

  2. Mappa di colori: I valori di espressione sono mappati a una scala di colori, in genere con colori freddi (ad esempio, blu) che rappresentano bassi livelli di espressione e colori caldi (ad esempio, rosso) che rappresentano alti livelli di espressione.

  3. Visualizzazione: La matrice viene visualizzata come una griglia di celle colorate, dove ogni cella rappresenta un valore di espressione. I pattern di espressione possono essere facilmente identificati osservando le variazioni di colore nella griglia.

Clustering gerarchico:

Spesso, i heatmap vengono combinati con il clustering gerarchico per raggruppare geni e campioni con pattern di espressione simili.

  • Clustering dei campioni: I campioni con pattern di espressione simili vengono raggruppati insieme in colonne.
Mostra il codice R
dst <- as.matrix(dist(t(assay(vst)))) |> data.frame()

acol <- data.frame("Infection"= vst$infection)
arow <- data.frame("Sex"= vst$infection)
rownames(acol) <- vst$geo_accession
rownames(arow) <- vst$geo_accession

pheatmap(dst, annotation_col = acol, cluster_row = TRUE, display_numbers = TRUE)

6.2 PCA

Mostra il codice R
pcaData <- DESeq2::plotPCA(vst, intgroup = c("infection"), ntop = 3000)
#> using ntop=3000 top features by variance
pcaData2 <- pcaData$data

pp <- ggplot(pcaData2, aes(x = PC1, y = PC2, text = name)) +
  geom_point(aes(color = infection), size = 5) +
  theme_minimal() 

plotly::ggplotly(pp)

6.3 Esplorazioni interattiva dei dati

Mostra il codice R
## Convert DESeqDataSet object to a SingleCellExperiment object, in order to
## be able to store the PCA representation
# library(SingleCellExperiment)
# sce <- as(dds, "SingleCellExperiment")

# ## Add PCA to the 'reducedDim' slot
# stopifnot(rownames(pcaData) == colnames(sce))
# reducedDim(sce, "PCA") <- as.matrix(pcaData[, c("PC1", "PC2")])

# ## Add variance-stabilized data as a new assay
# stopifnot(colnames(vst) == colnames(sce))
# assay(sce, "vst") <- assay(vst)

# app <- iSEE::iSEE(sce)
# shiny::runApp(app)