🧬 Analizzatore di Espressione Genica — Riduzione della Dimensionalità PCA dal Vivo
Osserva una vera Analisi delle Componenti Principali (autoscomposizione della matrice di covarianza) ridurre dal vivo dati simulati di espressione genica ad alta dimensionalità, proiettando i campioni sulle vere componenti a massima varianza.
Informazioni sull'Analizzatore di Espressione Genica
I veri esperimenti di espressione genica misurano l'attività di migliaia di geni su molti campioni — una matrice troppo grande per essere osservata direttamente. L'Analisi delle Componenti Principali è il classico primo passo in quasi ogni pipeline genomica: trova la manciata di combinazioni lineari di geni ("componenti") che catturano la maggior parte della varianza nei dati, cosicché i campioni possano essere tracciati in due o tre dimensioni preservando comunque la struttura biologica dominante, come tipi cellulari distinti, sottotipi di malattia o gruppi di trattamento.
Questa simulazione genera un set di dati sintetico di espressione genica con una struttura correlata genuina — un numero scelto di veri "programmi di espressione" sottostanti che ciascun campione attiva in gradi diversi — poi calcola la vera matrice di covarianza centrata sulla media sui geni e la diagonalizza con un algoritmo agli autovalori di Jacobi scritto da zero ed eseguito in JavaScript. Gli autovalori sono ordinati per grandezza, convertiti in percentuale di varianza spiegata per lo scree plot, e i corrispondenti autovettori sono usati per proiettare ogni campione sulle sue prime tre componenti principali per il grafico 3D dal vivo. Poiché i gruppi sottostanti sono noti per costruzione, colorare ogni punto in base al suo vero gruppo generatore permette di osservare la PCA riuscire — o, con rumore elevato, iniziare a fallire — nel separare la struttura reale dal rumore.
Domande frequenti
Che cos'è l'Analisi delle Componenti Principali (PCA) e perché usarla sui dati di espressione genica?
I set di dati di espressione genica misurano tipicamente migliaia di geni su decine o centinaia di campioni, quindi ogni campione è un punto in uno spazio ad altissima dimensionalità impossibile da tracciare direttamente. La PCA trova un piccolo insieme di nuovi assi — combinazioni lineari dei geni originali — che catturano il più possibile della varianza totale nei dati, in ordine di importanza. Proiettare i campioni sui primi due o tre di questi assi (le componenti principali) permette di visualizzare la struttura dominante nei dati, come cluster di campioni con programmi di espressione simili, scartando le direzioni che sono per lo più rumore.
Come viene calcolata la matrice di covarianza e cosa rappresenta?
Dati N campioni ciascuno con M misurazioni geniche, i dati vengono prima centrati sulla media sottraendo l'espressione media di ciascun gene su tutti i campioni. La matrice di covarianza C è allora la matrice M×M C = (1/(N−1)) XᶜᵀXᶜ, dove Xᶜ è la matrice di dati N×M centrata. L'elemento C[i][j] misura come il gene i e il gene j varino insieme tra i campioni: un grande valore positivo significa che i due geni tendono a essere regolati in su o in giù insieme, un grande valore negativo significa che si muovono in direzioni opposte, e un valore vicino a zero significa che variano in modo indipendente. Le componenti principali della PCA sono esattamente gli autovettori di questa matrice di covarianza.
Come trova l'algoritmo agli autovalori di Jacobi gli autovettori e gli autovalori?
L'algoritmo agli autovalori di Jacobi diagonalizza una matrice simmetrica reale applicando ripetutamente rotazioni che azzerano un elemento fuori diagonale alla volta. Ogni rotazione è scelta con angolo φ = 0,5·atan2(2a_pq, a_qq − a_pp) in modo che, dopo averla applicata, l'elemento (p,q) diventi esattamente zero, mentre il prodotto accumulato di tutte le matrici di rotazione converge agli autovettori e la diagonale della matrice trasformata converge agli autovalori. Questa simulazione esegue passate cicliche complete su ogni coppia fuori diagonale, ripetendo finché la norma fuori diagonale non scende sotto una tolleranza rigorosa — questa è una vera autoscomposizione numerica calcolata in JavaScript, non una ricerca in tabella o un'approssimazione, e converge alla precisione di macchina entro poche decine di passate per le dimensioni di matrice usate qui.
Cosa significa percentuale di varianza spiegata, e come si legge lo scree plot?
Ogni autovalore della matrice di covarianza è pari alla quantità di varianza totale catturata dalla sua componente principale corrispondente. La percentuale di varianza spiegata per la componente k è semplicemente l'autovalore_k diviso per la somma di tutti gli autovalori, espressa in percentuale. Il grafico a barre dello scree plot mostra queste percentuali ordinate da PC1 in giù: un calo ripido dopo le prime barre significa che gran parte della struttura nei dati simulati di espressione genica risiede in un sottospazio a bassa dimensionalità (coerente con un piccolo numero di veri programmi di espressione sottostanti), mentre un declino lento e piatto indicherebbe che i dati sono più vicini a rumore non strutturato in cui nessun piccolo insieme di componenti cattura molto segnale.
Perché i punti campione si raggruppano nello spazio PC1/PC2/PC3?
Il set di dati simulato è generato da un piccolo numero di veri programmi di espressione genica sottostanti — vettori di carico casuali nello spazio genico — e ogni campione è costruito attivando fortemente il programma del proprio gruppo più una piccola quantità di dispersione dagli altri, poi aggiungendo rumore per gene. Questo integra una vera struttura correlata nei dati grezzi anziché pura casualità. Poiché le componenti principali della PCA sono, per costruzione, le direzioni di massima varianza, e le differenze tra gruppi create dai programmi sono la fonte dominante di varianza quando il rapporto segnale-rumore è ragionevole, le prime 2-3 componenti si allineano naturalmente con gli assi che separano i veri gruppi — quindi tracciare i campioni nello spazio PC e colorarli in base al loro vero gruppo generatore mostra visibilmente la PCA recuperare con successo quella struttura.
Cosa succede se aumento il livello di rumore o il numero di programmi veri?
Aumentare il livello di rumore aggiunge perturbazioni casuali maggiori per gene sopra il segnale del programma vero di ciascun campione, il che riduce il divario tra varianza intra-gruppo e tra-gruppo; con rumore sufficientemente alto i cluster nello spazio PC si confondono e lo scree plot si appiattisce perché nessuna singola direzione si distingue dal rumore di fondo. Aumentare il numero di programmi veri sottostanti distribuisce la stessa varianza totale del segnale su più direzioni, quindi servono più componenti prima che la varianza cumulativa spiegata si avvicini al 100%, e tracciando solo 2-3 PC alcuni gruppi possono iniziare a sovrapporsi una volta che il numero di programmi veri supera il numero di componenti mostrate.
Un algoritmo ciclico agli autovalori di Jacobi diagonalizza la vera matrice di covarianza centrata sulla media di un set di dati sintetico e correlato di espressione genica — gli autovalori diventano percentuale di varianza spiegata, gli autovettori diventano gli assi di proiezione, e i campioni si posizionano nel vero spazio PC1/PC2/PC3.
3D · renderer Three.js / WebGL · target 60 FPS · funziona interamente lato client, senza installazione