27
Introduzione Primi passi Costruzione di un albero filogenetico Esercizio Filogenesi: Esercitazione Matlab Anno Accademico 2010/2011 Laboratorio di Bioinformatica II

Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Embed Size (px)

Citation preview

Page 1: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Filogenesi:Esercitazione Matlab

Anno Accademico 2010/2011

Laboratorio di Bioinformatica II

Page 2: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Contenuti

1 IntroduzioneIntroduzione a MatlabBioinformatics Toolbox

2 Primi passiAnalisi filogeneticaL’ambiente Matlab

3 Costruzione di un albero filogeneticoImportazione del datasetCalcolo delle distanze e modelli di sostituzioneScelta dell’algoritmoValidazione

4 Esercizio

Page 3: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

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.

Page 4: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

I toolbox

Statistica

Elaborazione di immagini

Elaborazione di segnali

Pattern recognition

Bioinformatica

Sistemi di comunicazione

Sistemi di controllo

Economia & Finanza

Calcolo parallelo

. . .

Page 5: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

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

Page 6: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Passi di un’analisi filogenetica

1 Costruzione del datasetOttenere le sequenze geniche o proteiche degli organismiin esame

2 Allineamento multiplo di sequenzeCercare l’allineamento migliore introducendo gap

3 Costruzione dell’alberoDefinire una “distanza evolutiva” tra tutte le coppie disequenzeScegliere un algoritmo di clustering per costruire l’albero(UPGMA, Neighbor Joining)

4 ValidazioneDeterminare la robustezza dell’albero

Page 7: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Un tipico comando Matlab

m_alignment = multialignread(

’PF0002.aln’)

;

Page 8: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Un tipico comando Matlab

Risultato

m_alignment = multialignread(

’PF0002.aln’)

;

Page 9: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Un tipico comando Matlab

Risultato

m_alignment = multialignread(

’PF0002.aln’)

;

Nome del comando

Page 10: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Un tipico comando Matlab

Risultato

m_alignment = multialignread(

’PF0002.aln’)

;

Nome del comando

Argomenti in input

Page 11: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Un tipico comando Matlab

Risultato

m_alignment = multialignread(

’PF0002.aln’)

;

Nome del comando

Argomenti in input

NotaPer i comandi di visualizzazione non è necessario specificareun risultato.

Page 12: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

L’interfaccia grafica

Sotto Applicazioni −→ Programmazione

Page 13: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Il problema

Il virus dell’HIVLe mutazioni si accumulano nel genoma dei patogeni durante ilpropagarsi dell’infezione. Questa informazione può essereutilizzata per studiare la storia degli eventi di trasmissione, ecome evidenza per l’origine dei diversi ceppi virali.

Caratterizzazione (ad oggi)

Ci sono due ceppi ben caratterizzati nell’AIDS umano: il tipo 1(HIV-1) e il tipo 2 (HIV-2). Entrambi i ceppi rappresentanoinfezioni cross-species. Il portatore dell’HIV-2 è statoidentificato nella specie Cercocebus atys, mentre quellodell’HIV-1, sebbene dibattuto, si ritiene essere lo scimpanzè(Pan troglodytes)

Page 14: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

I dati

Sequenze della proteina codificata da pol

Le sequenze sono già allineate

aapol = fastaread(’hivseq.fas’);

Provare a visualizzare l’allineamento con il comando

multialignviewer(aapol);

Page 15: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

I dati

Sequenze della proteina codificata da pol

Le sequenze sono già allineate

aapol = fastaread(’hivseq.fas’);

Provare a visualizzare l’allineamento con il comando

multialignviewer(aapol);

NotaSalvare ed estrarre i file nella propria home!

Page 16: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Definire una distanza

DistanzaSi basa tipicamente sul numero di sostituzioni che ci sono tra ledue sequenze (numero di caratteri diversi).

Sintassi del comando

d = seqpdist(aapol,’method’,’Tipo di distanza’);

Page 17: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Definire una distanza (2)

p-distance

Percentuale di siti aminoacidici dove le due sequenze sonodifferenti.

≈ 1 se le sequenze sono molto diverse, ≈ 0 se sono benallineate.

Sintassi

d = seqpdist(aapol,’method’,’p-distance’);

Page 18: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Definire una distanza (3)

Jukes-CantorStima Maximum Likelihood delnumero di sostituzioni tra duesequenze. In pratica ho unmodello che mi dice quantopesare una sostituzione.

Modello

A T C GA - α α α

T α - α α

C α α - α

G α α α -

Sintassi

d = seqpdist(aapol,’method’,’Jukes-Cantor’);

Page 19: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Scelta dell’algoritmo

L’albero filogenetico viene costruito a partire dalle distanzecalcolate:

Utilizzo di metodi di clustering generici (UPGMA)

Utilizzo di metodi nati ad hoc per la filogenesi (NeighborJoining)

Sintassi del comando

tree = seqlinkage(d,’metodo’,aapol);tree = seqneighjoin(d,’metodo’,aapol);

Page 20: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Unweighted pair group method using arithmetic averages

UPGMAApproccio di base

La distanza tra cluster è definita come la media delledistanze di tutte le possibili coppie formate da un punto delprimo e un punto del secondo

Da un punto di vista biologico è piuttosto povero: assumeun rate di evoluzione costante

Sintassi

tree = seqlinkage(d,’UPGMA’,aapol);tree = seqlinkage(d,’WPGMA’,aapol);

Page 21: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Neighbor Joining

IdeaInvece di raggruppare i cluster Ci e Cj più vicini fra loro, allostesso tempo:

Minimizza la distanza tra Ci e Cj

Massimizza la separazione di Ci e Cj (entrambi) dagli altricluster

Calcola esplicitamente la lunghezza dei rami

Sintassi

tree = seqneighjoin(d,’equivar’,aapol);

Page 22: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Visualizzare l’albero

Sintassiphytreetool(tree);

Page 23: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Validazione

1 Validazione biologica:Il ceppo dell’HIV2 forma un cluster abbastanza compattoAntenato comune tra uomo e Sooty Mangabey(Cercocebus atys)Ragionamento analogo per HIV1: ultima divergenzaevolutiva tra uomo e scimpanzè

2 Validazione numerica - Bootstrap:Vengono creati M nuovi dataset campionando casualmenteN colonne (con rimpiazzo) e, costruito l’albero per ognidatasetPer ogni sotto-albero dell’albero originale, conto quantevolte compare con la stessa topologia negli alberi dibootstrapRisultato: indice che misura la robustezza dell’albero

Page 24: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Ricapitolando...

» aapol = fastaread(’hivseq.fas’); %caricoi dati

» multialignviewer(aapol);» d = seqpdist(aapol,’method’,’Jukes-Cantor’);» tree = seqlinkage(d,’WPGMA’,aapol);» phytreetool(tree); %visualizzo l’albero

Page 25: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Esercizio

Cercare su pfam la famiglia PF00002 e scaricarel’allineamento

Importare i dati in Matlab con la funzionem = multialignread(’file’); oppurem = fastaread(’file’); (dipende dal formato)Costruire l’albero filogenetico

Provare diversi tipi di distanzeProvare diversi algoritmi di clustering

Testare la robustezza dell’albero con la tecnica delbootstrap

Page 26: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Esercizio (2)

Comandi utilim = fastaread(’file’);

m = multialignread(’file’);

multialignviewer(seq);

d = seqpdist(seq,’method’,’tipo_distanza’);

t = seqlinkage(dist,’variante_alg’,seq);

t = seqneighjoin(dist,’variante_alg’,seq);

phytreetool(albero);

Pc = bootstrap(seq,albero,n_reps);

Page 27: Filogenesi: Esercitazione Matlab - molsim.sci.univr.itmolsim.sci.univr.it/2012_bioinfo2/filogenesi_matlab.pdf · Che cos’è MATrix LABoratory ... Statistica Elaborazione di immagini

Introduzione Primi passi Costruzione di un albero filogenetico Esercizio

Esercizio (2)

Comandi utilim = fastaread(’file’);

m = multialignread(’file’);

multialignviewer(seq);

d = seqpdist(seq,’method’,’tipo_distanza’);

t = seqlinkage(dist,’variante_alg’,seq);

t = seqneighjoin(dist,’variante_alg’,seq);

phytreetool(albero);

Pc = bootstrap(seq,albero,n_reps);

NotaMatlab offre un help molto semplice e dettagliato!