Analisi di dati Microarray: Esercitazione...

Post on 14-Feb-2019

219 views 0 download

Transcript of Analisi di dati Microarray: Esercitazione...

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Analisi di dati Microarray:Esercitazione Matlab

Laboratorio di Bioinformatica II

Pietro Lovato

Anno Accademico 2011/2012

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Contenuti

1 IntroduzioneIntroduzione a MatlabBioinformatics ToolboxDNA Microarray

2 Analisi di una singola ibridazioneAmbiente MatlabSottrazione del backgroundScatter plot

3 Analisi di più ibridazioniEsempio: Serie temporali di lievitoGene SelectionCluster analysisValidare i risultati

4 PCA e Visualizzazione scientificaPrincipal Component Analysis

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Introduzione a Matlab

Che cos’èMATrix LABoratory

Sistema interattivo per il calcolo tecnico e scientifico

Linguaggio di programmazione

Internamente: librerie numeriche altamente ottimizzate

Una caratteristica di Matlab è l’espansibilità delle sue funzioni,attraverso delle soluzioni denominate toolbox. Tali toolbox sonocollezioni complete di funzioni Matlab per risolvere particolaricategorie di problemi.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

I toolbox

Statistica

Elaborazione di immagini

Elaborazione di segnali

Pattern recognition

Bioinformatica

Sistemi di comunicazione

Sistemi di controllo

Economia & Finanza

Calcolo parallelo

. . .

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Applicazioni per la bioinformatica

1 Analisi di sequenzeAllineamento, primer design, identificazione di motivi

2 Analisi di dati microarrayAnalisi di immaginiNormalizzazione dei datiClustering & data mining

3 ProteomicaAnalisi di dati da spettrometria di massa

4 Systems BiologySimulazione di pathway metabolici

5 Filogenesi

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

DNA Microarray

Che cos’è

Tecnologia capace di misurare simultaneamentel’espressione di migliaia di geni.Sono analizzate differenti condizioni sperimentali:

Diversi tessuti (es. da individui sani/malati)Diverse condizioni di crescitaDiversi istanti di tempo

Enorme quantità di dati, da analizzare con strumentiinformatici.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

DNA Microarray (2)

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

DNA Microarray (3)

ProblematicheDesign delle sondeProblematiche di Image Processing:

Segmentazione spotRimozione rumoreRilevamento della qualità degli spotQuantificazione del segnale

Analisi dei dati:Riduzione della dimensionalitàCluster analysisVisualizzazione scientifica

Interscambio di formati

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

DNA Microarray (4)

ProblemaA seconda del tipo di esperimento edella piattaforma utilizzata, i dati checi vengono forniti possono averediversi formati.

Qualche esempio

.cel (Affymetrix)

.chp (Affymetrix)

.gpr (GenePix)

.soft (Dataset GEO)

.txt...

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

L’interfaccia grafica

Sotto Applicazioni −→ Programmazione

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Un tipico comando Matlab

data_mouse = gprread(

’mouse_a1pd.gpr’)

;

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Un tipico comando Matlab

Risultato

data_mouse = gprread(

’mouse_a1pd.gpr’)

;

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Un tipico comando Matlab

Risultato

data_mouse = gprread(

’mouse_a1pd.gpr’)

;

Nome del comando

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Un tipico comando Matlab

Risultato

data_mouse = gprread(

’mouse_a1pd.gpr’)

;

Nome del comando

Argomenti in input

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Un tipico comando Matlab

Risultato

data_mouse = gprread(

’mouse_a1pd.gpr’)

;

Nome del comando

Argomenti in input

NotaPer i comandi di visualizzazione non è necessario specificareun risultato.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Lavorare con una singola ibridazione

Esempio

Dati di espressione di topo in cui è stato indottofarmacologicamente il morbo di Parkinson.

Ogni chip contiene l’espressione in una regione (voxel) delcervello.

Dati grezzi: file in formato .gpr oppure soft (GEOaccession GSE30).

File .gpr già presente come demo Matlab.

Caricare i datipd = gprread(’mouse_a1pd.gpr’);

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Strutture in Matlab

struct()

Tipo di dato che raggruppa più campi in un unico oggetto.

Un campo può memorizzare informazioni di vario tipo.

Accesso ai campi con variabile.nomeCampo.

NotaFormati di file microarraydiversi avranno campicon nomi diversi (mal’informazione contenutaè sostanzialmente lastessa).

Header: [1x1 struct]Data: [9504x38 double]

Blocks: [9504x1 double]Columns: [9504x1 double]

Rows: [9504x1 double]Names: {9504x1 cell}...

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Cosa ci interessa

Campi

Il campo Data è una matrice che contiene i dati.

Il campo Names contiene i nomi dei geni (le righe).

Il campo ColumnNames contiene i nomi delle colonne.

All’interno del campo ColumnNames:

’F635 Median’ intensità del canale rosso (cy5,λ = 635nm).

’F635 Median - B635’, come sopra ma consottrazione del background.

’F532 Median - B532’ intensità del canale verde (cy3,λ = 532nm).

La mediana è uno stimatore robusto dell’intensità dei pixel.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Sottrazione del background

Background: fluorescenza che puòcontribuire all’intensità misurata manon è dovuta all’ibridazione del target.

Può dipendere da polvere, molecoleisolate, imperfezioni nel sistema diacquisizione, rumore, ...

Il background varia lungo il supporto eva stimato localmente.

B532 Median

Provare a visualizzare il bg del canale verde con il comandomaimage(pd, ’B532 Median’);

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Salvare in variabili separate i campi di interesse

Sintassi

cy5Data = magetfield(pd,’F635 Median - B635’);cy3Data = magetfield(pd,’F532 Median - B532’);genes = pd.Names;

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Scatter plot: R vs G

Dati “osservati”: {(R,G)i}

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Scatter plot: log2 R vs log2 G

Dati “osservati”: {(log2 R, log2 G)i}

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Scatter plot: I vs R

Dati “osservati”:{(

log10(R · G), log2

(RG

))

i

}

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

In Matlab

Per creare uno scatter plot del tipo log R vs log G:

maloglog(cy5Data,cy3Data,’labels’,genes);

Per creare uno scatter plot del tipo I vs R:

mairplot(cy5Data,cy3Data,’labels’,genes);

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

In Matlab

Per creare uno scatter plot del tipo log R vs log G:

maloglog(cy5Data,cy3Data,’labels’,genes);

Per creare uno scatter plot del tipo I vs R:

mairplot(cy5Data,cy3Data,’labels’,genes);

EsercizioProvare a disegnare uno scatter plot “a mano”:

Dato un vettore x , il logaritmo delle sue componenti sicalcola con il comando: variabile = log10(x);Un qualsiasi scatter plot (non microarray-specifico) sidisegna con il comando: scatter(x,y);

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Ricapitolando...

» pd = gprread(’mouse_a1pd.gpr’);

» maimage(pd, ’B532 Median’);

» cy5Data = magetfield(pd,’F635 Median - B635’);

» cy3Data = magetfield(pd,’F532 Median - B532’);

» genes = pd.Names;

» maloglog(cy5Data,cy3Data,’labels’,genes)

» mairplot(cy5Data,cy3Data,’labels’,genes)

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Idea: combinare dati provenienti da diverse ibridazioni

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Cluster analysis

Passi (a grandi linee)

Identificare geni differenzialmente espressi:t-test se il problema è a due classi.Altri indici per selezionare geni “rilevanti” (varianza,entropia, ...).

Definire una distanza tra profili di espressione.

Scegliere un algoritmo di clustering.

Validare il risultato.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Esempio: Serie temporali di lievito

ProblemaInvestigare come variano nel tempo i livelli di espressionedel lievito (Saccharomyces cerevisiae).

Si è interessati alla riprogrammazione metabolica nelpassaggio dalla fermentazione alla respirazione.

IdeaCercare di raggruppare geni con profili di espressione“simili”.

Cercare di caratterizzare ciascun gruppo attraverso ilprocesso biologico cui i geni prendono parte.

Caricare i datiload yeastdata;

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Plottare un profilo di espressione

plot(

times, yeastvalues(

15 , :)

)

;

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Plottare un profilo di espressione

Matrice dei dati

plot(

times, yeastvalues(

15 , :)

)

;

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Plottare un profilo di espressione

Matrice dei dati

plot(

times, yeastvalues(

15 , :)

)

;

Seleziono la quindicesima riga=gene

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Plottare un profilo di espressione

Matrice dei dati

plot(

times, yeastvalues(

15 , :)

)

;

Seleziono la quindicesima riga=gene

Seleziono tutte le colonne=tempi

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Gene Selection

Scartare i geni “non informativi”

Geni a bassa varianza.

Geni con basso valore assoluto in ogni istante temporale.

Geni a bassa entropia informativa.

Sintassi» [mask, yeastvalues, genes] =genevarfilter(yeastvalues, genes);

» [mask, yeastvalues, genes] =genelowvalfilter(yeastvalues, genes, ’absval’, log2(3));

Quanti geni rimangono dopo la selezione?

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Introduzione: Cluster Analysis

Una possibile definizione

Il clustering rappresenta l’organizzazione di un insieme di entitàin gruppi (clusters) sulla base della similarità.

Il concetto di cluster è vago:

Dipendentemente dalle misure di similarità utilizzatecambia il risultato.La scelta della misura di similarità è cruciale

Dovrebbe essere fatta in modo da inglobare la maggiorquantità possibile di informazione a priori.

Il risultato può cambiare anche a seconda dellametodologia utilizzata per fare clustering.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Clustering partizionale vs gerarchico

Clustering partizionale

Il risultato è una singola partizione dei dati.

Tipicamente il numero di cluster deve essere dato a priori.

Esempio: K-means.

Clustering gerarchico

Il risultato è una serie di partizioni innestate (undendrogramma).

Non è necessario settare a priori il numero di cluster.

Più informativo del clustering partizionale ma improponibileper dataset molto grandi.

Esempi: Complete link, single link, ...

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Clustering gerarchico

Funzione clustergram

clustergram(data, ’Linkage’, ’tipo’, ’rowlabels’, genes);

Dove:data: matrice di espressione.’tipo’: Algoritmo di clustering gerarchico.

’single’: Algoritmo Single Link’complete’: Algoritmo Complete Link’average’: UPGMA...

genes: identificativi dei geni.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Clustering partizionale

K-meansAlgoritmo più famoso di clustering partizionale.

Ogni gene è un punto in uno spazio n-dimensionale (nnumero di esperimenti).

Ogni cluster è rappresentato dalla sua media.Idea:

L’algoritmo è iterativo: si “assesta” in più passi.Si parte da una clusterizzazione iniziale, e ad ogniiterazione si assegna ogni gene alla media più vicina.Si riaggiornano le medie.Si ripete fino a convergenza.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

K-means clustering

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

K-means clustering (2)

Funzione kmeans

[cidx, ctrs] = kmeans(data, K, ’dist’, ’tipo’);

Input:

data: matrice di espressione.

K : numero di cluster. Per questo esempio K=16.’tipo’: Distanza da utilizzare.

’sqEucl’: Distanza euclidea’corr’: Distanza di correlazione statistica...

Output:

cidx: indica, per ogni gene, il cluster a cui appartiene.

ctrs: centri dei cluster – profilo “medio” di espressione.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Visualizzare i risultati

Funzione maplot

Per visualizzare i profili appartenenti ad ogni cluster:

maplot(times, yeastvalues, cidx)

Per visualizzare il profilo medio di espressione in ognicluster:

maplot(times, yeastvalues, ctrs)

Quale/i cluster rappresenta geni che si esprimono solo durantela respirazione cellulare?

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Validare i risultati: GOstat

Una volta individuato un cluster di interesse x , esportare inun file di testo i geni che lo compongono:cluster = genes(cidx==x);dlmwrite(’cluster.txt’, char(cluster), ’’);

Carico il file su GOstat:Nel campo “Gene-association database” mettere sgd(lievito)(Opzionale) Nel campo “Subset of GO hierarchy” metterebiological_process (siamo interessati al pathway cui igeni nel cluster prendono parte)

In output ho i termini GO che meglio descrivono i geniall’interno del mio cluster.

Che informazioni riesco a dedurre?

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Ricapitolando...

» load yeastdata

» plot(times, yeastvalues(15,:))

» [mask, yeastvalues, genes] =genevarfilter(yeastvalues, genes);

» [mask, yeastvalues, genes] =genelowvalfilter(yeastvalues,genes,’absval’,log2(3));

» clustergram(yeastvalues,’Linkage’,’complete’, ...’rowlabels’,genes)

» [cidx, ctrs] = kmeans(yeastvalues, 16, ’dist’,’corr’);

» maplot(times, yeastvalues, cidx)

» maplot(times, yeastvalues, ctrs)

» cluster = genes(cidx==1);

» dlmwrite(’cluster.txt’, char(cluster), ’’);

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Principal Component Analysis (PCA)

MotivazioniRidurre la dimensione dei dati (qui ogni dato è un genecaratterizzato da 7 numeri)...

per visualizzare il dataset;per ridurre il carico computazionale delle tecnicheapplicate;per eliminare possibile ridondanza;

Mettere in evidenza particolari strutture presenti nei dati.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

PCA (2)

IdeaPresentare i dati nel riferimento che evidenziamaggiormente la loro struttura.

Estrarre le direzioni di massima varianza dei dati.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

PCA (3)

Idea: eliminare le direzioni a bassa varianzaIn questo modo si comprimono i dati minimizzando laperdita di informazione.

Per trasformare ogni punto: formule e nozioni derivantidall’algebra lineare (autovalori e autovettori della matrice dicovarianza...).

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

PCA (4)

Vantaggi

Migliore tecnica di compressione dei datiMigliore in senso di errore quadratico medio

Svantaggi

Non è detto in tutti i casi che le direzioni a varianzamaggiore siano le direzioni ottimali;

Si perde l’interpretabilità delle grandezze rappresentate.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

PCA in Matlab

Funzione princomp

[pc, comp] = princomp(data);

Input:

data: matrice di espressione.

Output:

pc: coefficienti della trasformazione.

comp: coordinate dei punti nello spazio trasformato,ordinate per importanza decrescente.

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

PCA in Matlab (2)

Plottare le prime due o tre componenti per visualizzare i datitrasformati.

Il comando è sempre scatter:scatter(comp(:,1),comp(:,2));

o, in alternativa:scatter3(comp(:,1),comp(:,2),comp(:,3));

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Esercizio

Effettuare un clustering k-means sui dati trasformati,prendendo solo le prime due o tre componenti principali;

Ad es, per prendere solo le prime due componenti

data_pca = comp(1:2,:);

K = 2;

Vengono separati i due cluster?

Introduzione Analisi di una singola ibridazione Analisi di più ibridazioni PCA e Visualizzazione scientifica

Ricapitolando...

» [pc, comp] = princomp(yeastvalues);

» scatter(comp(:,1),comp(:,2));

» scatter3(comp(:,1),comp(:,2),comp(:,3));

» pca_data = comp(:,1:2);

» [pca_idx, pca_ctrs] = kmeans(pca_data, 2,

’dist’, ’sqEucl’);

» scatter(pca_data(:,1), pca_data(:,2), 4,

pca_idx);

NotaMatlab offre un help molto semplice e dettagliato!