Introduzione Primi passi Costruzione di un albero filogenetico Esercizio
Filogenesi:Esercitazione Matlab
Anno Accademico 2010/2011
Laboratorio di Bioinformatica II
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
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.
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
. . .
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
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
Introduzione Primi passi Costruzione di un albero filogenetico Esercizio
Un tipico comando Matlab
m_alignment = multialignread(
’PF0002.aln’)
;
Introduzione Primi passi Costruzione di un albero filogenetico Esercizio
Un tipico comando Matlab
Risultato
m_alignment = multialignread(
’PF0002.aln’)
;
Introduzione Primi passi Costruzione di un albero filogenetico Esercizio
Un tipico comando Matlab
Risultato
m_alignment = multialignread(
’PF0002.aln’)
;
Nome del comando
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
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.
Introduzione Primi passi Costruzione di un albero filogenetico Esercizio
L’interfaccia grafica
Sotto Applicazioni −→ Programmazione
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)
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);
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!
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’);
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’);
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’);
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);
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);
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);
Introduzione Primi passi Costruzione di un albero filogenetico Esercizio
Visualizzare l’albero
Sintassiphytreetool(tree);
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
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
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
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);
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!
Top Related