Documente Academic
Documente Profesional
Documente Cultură
Bioinformatica Curs4
Bioinformatica Curs4
Laborator 4
Alinierea secvenţelor
Măsurarea similarităţii secvenţelor
Atunci când se dau două secvenţe de caractere există două metode de măsurare a
distanţei dintre acestea:
- distanţa Hamming – se poate calcula numai pentru şiruri de caractere egale ca
lungime şi este dată de numărul de poziţii care diferă
- distanţa Levenshtein – sau distanţa de editare, poate fi calculată pentru şiruri de
lungimi diferite şi este formată din numărul minim de operaţii de ştergere, inserare
sau schimbare de caractere care transformă un şir în altul
-
Exemplu:
agtc Distanţa Hamming:2
cgta
Pentru aplicaţiile din domeniul biologiei moleculare, unele modificări din cadrul unei
secvenţe sunt mai frecvente decât altele. Un exemplu poate fi, înlocuirea aminoacizilor:
înlocuirea unui aminoacid cu unul având dimensiuni şi proprietăţi apropiate este mai
probabilă decât înlocuirea acestuia cu un altul având proprietăţi total diferite. Ştergerea unei
secvenţe continui de lungime N de aminoacizi este mai probabilă decât ştergerea a N
aminoacizi care nu sunt unul după altul. De aceea se pot acorda diferite punctaje pentru
diferite operaţii de editare. Sistemul de punctare trebuie să ţină cont de înlocuiri, inserări sau
ştergeri (o inserare din punctul de vedere al unei secvenţe poate fi considerată o ştergere din
punctul de vedere al celeilalte). Ştergerile şi spaţiile din secvenţă vor trebui să aibă punctaje
diferite în funcţie de lungimea acestora.
Distanţele Hamming şi Levenshtein măsoară în realitate nesimilaritatea secvenţelor:
Secvenţele similare au distanţe mici, în timp ce secvenţele care nu seamănă una cu alta au
distanţe mari.
a t g c
a 20 10 5 5
t 10 20 5 5
g 5 5 20 10
c 5 5 10 20
Bioinformatica L04 1
U.M.F. Gr. T. Popa Iaşi – Facultatea de Bioinginerie Medicală
Pentru proteine au fost propuse mau multe scheme de punctare. Aminoacizii pot fi
grupaţi în clase având proprietăţi similare. Acest lucru a fost făcut prima dată de M. O.
Dayhoff, colectând statistic frecvenţele de substituţie în secvenţele de proteine cunoscute în
acel moment. Rezultatele obţinute au fost folosite mult timp pentru a calcula scorul de aliniere
dintre diferite proteine. Ele au fost optimizate creând matrici noi pe baza numărului în creştere
de secvenţe disponibile.
Atunci când două organisme evoluează diferit, mutaţiile tind să se acumuleze. Pentru a
măsura probabilitatea relativă a unei substituţii particulare, de exemplu Serina->Treonina, se
poate calcula numărul de schimbări Serina->Treonina în perechile alineate ale unor
organisme. Frecvenţele de apariţie ale acestei mutaţii pot fi folosite la schimbarea matricelor
de substituţie.
O unitatea de măsură pentru divergenţa secvenţelor este PAM: 1PAM=1 Percent
Accepted Mutation. Pentru cele mai multe secvenţe de proteine, 1 PAM diferenţă înseamnă
nu mai mult de o schimbare la orice poziţie. Relaţia dintre scorul PAM şi identitatea secvenţei
în procente (%) este dată mai jos:
PAM 0 30 80 110 200 250
% 100 75 50 60 25 20
Pragul de PAM250 corespunzând 20% constituie pragul minim de similaritate între
două secvenţe pentru care se poate spera la obţinerea unei alinieri
Semnificaţia alinierilor
În cazul descoperirii unei similarităţi între două secvenţe apare următoarea întrebare:
similaritatea este semnificativă sau a fost pură întâmplare?
Pentru fenomenele simple, există o teorie a probabilităţilor care poate calcula exact
distribuţia aşteptată a unui rezultat. În cazul secvenţelor nu este o sarcină uşoară definirea
populaţiilor din care se vor alege secvenţele. Un exemplu ar fi alegerea unor şiruri aleatoare
de nucleotide sau aminoacizi ca secvenţe de control şi compararea cu toate acestea – totuşi
numărul mare de secvenţe existente împiedică obţinerea unui rezultat .
O abordare practică a acestei probleme este următoarea: dacă scorul alinierii observate
nu este mai bun decât cel realizat în urma unei permutări aleatoare a secvenţei, este foarte
probabil ca acesta să fie obţinut dintr-o întâmplare. Se poate amesteca de mai multe ori una
dintre secvenţe, recalcularea alinierii acesteia cu a doua secvenţă şi colectarea distribuţiei
rezultatului. Un rezultat tipic este dat în figura de mai jos:
Scorurile de aliniere pentru două perechi de secvenţe formează curba lui gauss
(distribuţie normală). Pentru orice scor x, probabilitatea de a observa un scor mai mare sau
egal cu x este: P( scor x) 1 exp( Ke x ) , unde K şi sunt parametri relativi la înălţimea
maximă şi lăţimea distribuţiei.
În mod clar, dacă secvenţa amestecată obţine scoruri la fel de bune ca cea originală,
atunci rezultatul obţinut nu este semnificativ.
Bioinformatica L04 2
U.M.F. Gr. T. Popa Iaşi – Facultatea de Bioinginerie Medicală
Sørensen–Dice coefficient
Jaccard index
Renkonen similarity index (datorită Olavi Renkonen)
Tversky index
Distanța Damerau–Levenshtein
Distanța Damerau-Levenshtein între două cuvinte este numărul minim de operațiuni (care
constau în inserții, ștergeri sau înlocuiri ale unui singur caracter sau transpunerea a două
caractere adiacente) necesare pentru a schimba un cuvânt în altul.
Funcția de distanță între două șiruri s1 și s2 se construiește recursiv i – prefix pentru subșir
initial j – prefix pentru șirul s2 target.
D (i 1, j ) del_cost( source(i ))
D (i, j ) min D (i, j 1) del_insert(target( j ))
D (i 1, j ) subst_cost( source(i ), target( j ))
Bioinformatica L04 3
U.M.F. Gr. T. Popa Iaşi – Facultatea de Bioinginerie Medicală
What's the minimum cost to convert “Z” to “t”? It's the smallest of
the three values computed as
Add
1 plus the cost of converting “Z” to “” (we get this cost by
looking to the left one position).
Remove
1 plus the cost of converting “” to “t”, giving “tZ” (we get
this cost by looking up one position).
Change
1 (because “Z” and “t” are different characters) plus the
cost of converting “” to “” (we get this cost by looking
diagonally up and to the left one position).
The last of these yields the minimal distance: 1.
What's the minimum cost to convert “Z” to “tr”? It's the smallest of the three values computed as
Add
1 plus the cost of converting “Z” to “t” (we get this cost by looking to the left one position).
Remove
1 plus the cost of converting “” to “tr”, giving “trZ” (we get this cost by looking up one position).
Change
1 (because “Z” and “t” are different characters) plus the cost of converting “” to “t” (we get this cost by looking
diagonally up and to the left one position).
Bioinformatica L04 4
U.M.F. Gr. T. Popa Iaşi – Facultatea de Bioinginerie Medicală
m=length(string1);
n=length(string2);
v=zeros(m+1,n+1);
for i=1:1:m
v(i+1,1)=i;
end
for j=1:1:n
v(1,j+1)=j;
end
for i=1:m
for j=1:n
if (string1(i) == string2(j))
v(i+1,j+1)=v(i,j);
else
v(i+1,j+1)=1+min(min(v(i+1,j),v(i,j+1)),v(i,j));
end
end
end
d=v(m+1,n+1);
en
Bioinformatica L04 5
U.M.F. Gr. T. Popa Iaşi – Facultatea de Bioinginerie Medicală
Funcţii matlab
randperm
Calculează o permutare
Sintaxa:
randperm(N)
Argumente:
N – dimensiunea permutării
Descriere:
Funcţia returnează o permutare a numerelor de la 1 până la N.
Exemple:
>> x=randperm(10);
>> x
nwalign
nwalign(...,'ALPHABET', A)
Specifică cu ajutorul variabilei A alfabetul folosit la calcularea similaritaţii. A poate
avea valorile: ‘AA’ specifică aminoacizi, ‘NT’ specifică nucleotide. Dacă alfabetul nu este
specificat, se foloseşte AA.
Exemple:
Compară două secvenţe de nucleotide
[sc, al]=nwalign(s1, s2, 'ALPHABET', ’NT’);
Compară două secvenţe de aminoacizi
[sc, al]=nwalign(s1, s2, 'ALPHABET', ’AA’);
[sc, al]=nwalign(s1, s2)
stem
Trasează un grafic de puncte.
Sintaxa:
stem(Y)
stem(X, Y)
Argumente:
Y – valorile punctelor care se trasează
X – dacă există, reprezintă punctele pe axa Ox unde se vor desena valorile din Y.
Descriere
Trasează un grafic de puncte. Graficul este trasat prin linii verticale de lungime Y.
Exemple:
>> y=randperm(5);
>> stem(y)
hist
Trasează histograma.
Sintaxa:
hist(Y)
hist(Y, X)
Argumente:
Y – valorile punctelor pentru care se trasează histograma
Bioinformatica L04 6
U.M.F. Gr. T. Popa Iaşi – Facultatea de Bioinginerie Medicală
Exemple:
1. Amestecarea unui şir de caractere
Iniţializarea unui şir de caractere
>> s='abcdefg';
Calculează lungimea şirului în vederea obţinerii unei permutări cu dimensiunea dorită
>> n=length(s);
Calculează permutarea
>> p=randperm(n);
Amestecă şirul de caractere. Rezultatul va fi copiat in variabila sa
>> sa=s(p);
Afişează rezultatul
>> sa
Bioinformatica L04 7
U.M.F. Gr. T. Popa Iaşi – Facultatea de Bioinginerie Medicală
După rularea acestui program se obţine un grafic asemănător cu cel de mai jos. Datorită
modului de generarea numerelor aleatoare, graficul poate diferi de la un calculator la altul.
6
Numar de secvente
0
-160 -140 -120 -100 -80 -60 -40 -20 0 20 40
Scor
Se observă faptul că scorul alinierii celor două secvenţe este mult mai mare decât cele
obţinute în urma alinierii cu o secvenţă permutată. Pentru un număr mai mare de încercări se
poate arăta faptul că probabilitatea de obţinere a unei alinieri mai mari folosind o secvenţă
permutată este foarte mică. Se poate trage concluzia că secvenţele sunt aliniate corespunzător.
În figura de mai jos este redată rularea programului pentru un număr de 1000
permutări, cu histograma împărţită în 20 de categorii. Se observă faptul că nici o aliniere cu
secvenţa permutată nu s-a apropiat la distanţă semnificativă de alinierea iniţială.
Bioinformatica L04 8
U.M.F. Gr. T. Popa Iaşi – Facultatea de Bioinginerie Medicală
120
100
80
Numar de secvente
60
40
20
0
-200 -150 -100 -50 0 50
Scor
Probleme
1. Încărcaţi o secvenţă la alegere din fişierele de pe CD-ul laboratorului şi creaţi o
permutare din secvenţa existentă (se recomandă alegerea unui fişier in format GenPept
deoarece secvenţa conţinută de acestea este mai mare)
2. Rulaţi exemplele din laborator. Încercaţi şi alegerea altor secvenţe din fişierele
furnizate pe CD.
3. La exemplul 2 înlocuiţi una din înregistrări cu AAC28367. Ce observaţi?
Bioinformatica L04 9