Introduzione al Calcolo Scientifico A.A Lab. 11

Documenti analoghi
Laboratorio di Informatica 2004/ 2005 Corso di laurea in biotecnologie - Novara Viviana Patti Esercitazione 7 2.

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

MatLab - Testo pagina 1 di 5 101

InfoBioLab I ENTREZ. ES 1: Ricerca di sequenze di aminoacidi in banche dati biologiche

Distanza di Edit. Speaker: Antinisca Di Marco Data:

PSICOMETRIA. Esercitazione n.1. C.d.L. Comunicazione e Psicologia a.a. 2012/13

BLAST. W = word size T = threshold X = elongation S = HSP threshold

Esame di Laboratorio di Fisica Computazionale

ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

Sottosequenza comune piu' lunga (programmazione dinamica)

Prof. Marco Masseroli

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Introduzione a Matlab

FASTA. Lezione del

A.A. 2018/2019 FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Programmazione dinamica

Esercitazione 3. Heapsort

Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica, Prof. G. Boracchi Allievi Ingegneria Civile e Mitigazione del Rischio

Calcolo Numerico I - a.a Laboratorio 9 - Sistemi lineari

05. Determinare una base ortonormale per ognuno dei seguenti spazi vettoriali.

Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

>> A = [1 2 3; 4 5 6; 7 8 9]; >> A

Introduzione al MATLAB c Parte 3 Script e function

Fondamenti di Informatica

Corso di Perfezionamento

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Universita degli Studi di Siena

24 giugno Soluzione esame di geometria - 12 crediti Ingegneria gestionale - a.a COGNOME... NOME... N. MATRICOLA...

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

FONDAMENTI DI SEGNALI E TRASMISSIONE 2 Laboratorio

Quarta lezione. 1. Ricerca di omologhe in banche dati. 2. Programmi per la ricerca: FASTA BLAST

Laboratorio di Algoritmi e Strutture Dati

Algoritmi e Strutture Dati

LABORATORIO DI PROGRAMMAZIONE TURNO 3 (SERALE)

Fattorizzazione LU (lu)

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili Programma gnuplot

Allineamenti di sequenze: concetti e algoritmi

Laboratorio di Algoritmi e Strutture Dati

Rappresentazione dei dati multivariati

Metodi numerici con elementi di Programmazione A.A

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Esercizi 5 CICLI. Es.5(cicli)

MATLAB Alcune funzioni utili: fprintf, length, size

Laboratorio di Algoritmi e Strutture Dati

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

R - Esercitazione 2. Andrea Fasulo 20 Ottobre Università Roma Tre

13 Esercizi di Riepilogo

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Esercitazione 2. Prima parte

Programmazione dinamica

8 luglio Soluzione esame di geometria - 12 crediti Ingegneria gestionale - a.a COGNOME... NOME... N. MATRICOLA...

FONDAMENTI DI INFORMATICA

Introduzione al MATLAB c Parte 2

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 8 Febbraio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

Esercitazione 2. Prima parte

Complementi di Matematica e Calcolo Numerico A.A

ESERCIZIO 1. Informatica B - Esercitazione 12

Laboratorio di Python

Cultura Tecnologica di Progetto

8 novembre Soluzione esame di geometria - 12 crediti Ingegneria gestionale - a.a COGNOME... NOME... N. MATRICOLA...

Programmare con MATLAB c Parte 5 Cicli: for e while

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

Fondamenti di Informatica

1. Calcolo dell indice di condizionamento di una matrice

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di INFORMATICA. 15 ottobre 2009

Informatica (A-K) 5. Algoritmi e pseudocodifica

Esercizi di autovalutazione - Matlab Metodi Numerici con Elementi di Programmazione A.A

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale

Calcolo Numerico A.A Laboratorio 11 Risoluzione di equazioni differenziali ordinarie

Menù principale di Calc

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Grafici e Pagina web

Fondamenti di Informatica, A.A

11 giugno Soluzione esame di geometria - 12 crediti Ingegneria gestionale - a.a COGNOME... NOME... N. MATRICOLA...

Università degli Studi di Ferrara

Laboratorio di algoritmi e strutture dati

ALLINEAMENTO DI SEQUENZE

13 Esercizi di Riepilogo

Laboratorio di Informatica 2004/ 2005 Corso di laurea in biotecnologie - Novara Viviana Patti Esercitazione 6 2.

8 gennaio Esame di geometria - Ing. gestionale - a.a COGNOME... NOME... N. MATRICOLA... ISTRUZIONI

Quadrato Magico. Fondamenti di Programmazione

Equazioni differenziali con valori al bordo

5.4 Istruzione di input L istruzione di input ha la forma:

12 Function Handles e Ricorsione in MATLAB

Applicazioni eliminazione di Gauss

Transcript:

Introduzione al Calcolo Scientifico A.A. 2009-2010 - Lab. 11 Si consideri il problema dell allineamento di sequenze di proteine in biologia, legato per esempio all annotamento di genomi Si realizzi con Matlab un dotplot che mostri le identità tra le lettere del nome abbreviato DOROTHYHODGKIN e il nome esteso DOROTHYCROWFOOTHODGKIN di una nota biologa. Si osservi dove compaiono le corrispondenze tra lettere, usando nella rappresentazione delle opportune etichette che permettano di identificare righe e colonne. Si stabilisca la convenzione, valida anche in tutto il seguito, che la stringa più corta determini il numero di righe, mentre la stringa più lunga il numero di colonne della matrice. Si realizzi il dotplot che mostra l identità tra la stringa ABRACADABRACADABRA e se stessa. Si realizzi il dotplot che mostra l identità tra la stringa palindromica MAXISTAYAWAYATSIXAM e se stessa (spesso regioni del DNA hanno sequenze palindromiche che si incrociano tra un filamento e un altro) Si scarichi dalla pagina web della banca dati biologici EXPASY dell Istituto Svizzero di Bioinformatica http://www.expasy.ch/cgi-bin/sprot-search-ful

la sequenza relativa alla ribonucleasi pancreatica di balenottera, cavallo e canguro. A questo scopo, si inserisca il termine di ricerca: pancreatic ribonuclease e si aggiungano alla ricerca di volta in volta i termini (o parte dei termini) specifici del nome dell animale Balaenoptera acutorostrata (Minke whale) Equus caballus (Horse) Macropus rufus (Red kangaroo) Per ciascun link, si scarichi la sequenza in FASTA format (ultimo link della tabella gialla in alto a destra della pagina) e si costruisca la stringa di caratteri corrospondenti eliminando la prima riga di identificazione. Si visualizzi il dotplot della correlazione tra cavallo e balena e tra cavallo e canguro. Che cosa si osserva? Si vuole ora dare un interpretazione di carattere più quantitativo ai dati precedenti, utilizzando per l allineamento di sequenze un algoritmo di programmazione dinamica. Si considerino per iniziare le brevi stringhe seqx= TTCATA e seqy= TGCTCGTA. Si costruisca la matrice S dei punteggi 2

relativi all allineamento di tali sequenze, di dimensione (m,n), con m=length(seqx)+1,n=length(seqy)+1. Si consideri un sistema che assegni un punteggio σ = +5 se i due residui sono uguali, un punteggio σ = 2 se sono diversi e un punteggio γ = 6 se deve essere inserito un gap. Dopo aver posto S(1, 1) = 0, S(i, 1) = iγ, i = 2,..., m S(1, j) = jγ, j = 2,..., n, si usi la seguente legge ricorsiva per generare i restanti punteggi in S: S(i 1, j 1) + σ, S(i, j) = max S(i 1, j) + γ, S(i, j 1) + γ. Si osservi che la matrice viene riempita da sinistra a destra e dall alto al basso. Usando il codice percorso.m (da scaricare alla pagina web del corso), si costruisca l allineamento ottimale. Quanto vale il punteggio dell allineamento ottimale? Si osservi l allineamento delle stringhe generato. 3

Si applichi ora l algoritmo alle coppie delle sequenze cavallobalena e cavallo-canguro. 4

Introduzione al Calcolo Scientifico A.A. 2009-2010 - Lab. 11 - Soluzione Per realizzare il dotplot richiesto, possiamo ad esempio usare il comando pcolor che rappresenta gli elementi di una matrice come colori. Una possibile implementazione è la seguente function dotplot(stringa1,stringa2) m=length(stringa1); n=length(stringa2); A=zeros(m+1,n+1); for i=1:n carattere=stringa2(i); ind=find(stringa1==carattere); A(ind,i)=1; end for i=1:length(stringa1) s1(i)=cellstr(stringa1(i)); end for i=1:length(stringa2) s2(i)=cellstr(stringa2(i)); end 5

pcolor(a); set(gca, XAxisLocation, top, XTickLabel,... s2, XTick,[1:length(stringa2)]+.5); set(gca, YDir, reverse, YTickLabel,... s1, YTick,[1:length(stringa1)]+.5); set(gca, FontSize,7) return Si osservi che il comando pcolor nel suo uso di default rappresenta una matrice esclusa l ultima riga e colonna, quindi la matrice A è stata orlata artificialmente di una riga e una colonna finali. Si osservi inoltre che per specificare sugli assi i caratteri dei due nomi, si è dovuto trasformare ciascuna stringa in un array di cell Matlab con il comando cellstr. Le regioni di corrispondenza tra caratteri delle due stringhe sono mostrate in colore rosso. In particolare, esse sono il nome DOROTHY, e il secondo cognome HODGKIN. Le regioni con una corrispondenza più limitata, come i caratteri OTH di DOR{OTH}Y e di CROWFO{OTH}ODGKIN sono considerabili come rumore di fondo. Nel caso della stringa ABRACADABRACADABRA correlata con se stessa, le ripetizioni compaiono, oltre che nella diagonale 6

principale, anche in diverse diagonali secondarie parallele alla diagonale principale. Nel caso della stringa palindromica, la palindrome viene rivelata come un tratto di corrispondenze perpendicolare alla diagonale principale. Dopo aver scaricato le stringhe dalla pagina web indicata, possiamo procedere con la loro analisi. Osserviamo che la sequenza del cavallo è la più lunga delle tre, seguita da quella della balena e infine dal canguro. La correlazione visiva illustrata dal dotplot mostra che balena e cavallo hanno sequenze più simili che canguro e cavallo. Questo dato può suggerire che balena e cavallo sono più strettamente imparentati che cavallo e canguro, infatti essi sono entrambi mammiferi placentati, mentre il canguro è un marsupiale (ma attenzione a non dedurre conclusioni scorrette da queste semplici considerazioni!). Il dato qualitativo del dotplot verrà ripreso in modo quantitativo nella costruzione della matrice dell allineamento ottimo. Programmazione dinamica per l allineamento di sequenze Un possibile codice che implementa la costruzione della matrice dei punteggi è il codice allinea.m incluso con il materiale di questo laboratorio. Si osservi che la matrice Matscore che assegna la struttura dei punteggi viene costruita in modo generale (per far sì che il codice possa essere utilizzato an- 7

che nell allineamento di proteine). eventualmente caricata da file. Tale matrice può essere Per quanto riguarda le due stringhe TTCATA e TGCTCGTA, l allineamento ottimo calcolato dall algoritmo è il seguente (attenzione: non è detto che ciò sia realmente ciò che accade in natura!) TGCTCGTA T--TCATA dove il simbolo - indica l inserzione di un gap. Il punteggio relativo a tale allineamento è 11: esso corrisponde al valore dell ultimo elemento a destra in basso della matrice S. Si osservi che, in generale, il percorso che dà luogo al punteggio ottimo non è unico: per stabilire un percorso di scelta fra più percorsi possibili, sarebbero necessari ulteriori raffinamenti nella struttura della matrice di assegnazione dei punteggi; tali raffinamenti non sono oggetto di questo laboratorio introduttivo all argomento. Il punteggio relativo all allineamento ottimo tra le sequenze di cavallo e balena (allineamento che qui non riportiamo per brevità) è 395, mentre quello dell allineamento per le sequenze di cavallo e canguro è 263, a conferma delle osservazioni qualitative del dotplot. Nel caso si considerino le stringhe relative ai tre animali, va considerato un array Nomi appropriato, 8

trattandosi di sequenze di aminoacidi. Per ricavarlo, possiamo usare per esempio il comando Nomi=unique(strcat(stringabalena,stringacavallo,... stringacanguro)); Nomi(end+1)= - ; 9