Sunteți pe pagina 1din 6

Biostatistica si Bioinformatica.

Lab 3: Identificarea sabloanelor ______________________________________________________________________________ Sabloanele sunt secvente relativ scurte de nucleotide (aminoacizi) care au un anumit rol (de exemplu marcheaza inceputul unei regiuni codante sau pozitii unde se pot lega anumite enzime). Identificarea sabloanelor (motif finding) este o problema ce poate fi abordata pe diferite nivele de dificultate: Varianta 1: se cunoaste sablonul si se urmareste identificarea tuturor pozitiilor in care acesta apare. Este o problema tipica de pattern matching. Varianta 2: sablonul nu se cunoaste exact insa se stie ca respecta o anumita regula (poate fi descris printr-o expresie regulata). In cazul acesta sabloanele identificate nu au toate aceeasi lungime. Varianta 3: sablonul are lungime fixa insa poate sa apara alterat de mutatii; in acest caz problema principala este de a stabili o masura a similaritatii intre diferite sabloane si de a construi un sablon reprezentativ (profil). In aceste cazuri nu se stie ce sablon se cauta insa se identifica subsecventele frecvente suficient de similare intre ele (si implicit cu sablonul profil). Varianta 4: nu se cunoaste nici dimensiunea nici continutul sablonului. Se cauta subsecvente cu scor mare de similaritate. Este varianta cea mai dificila.

In continuare sunt prezentate cateva exemple corelate cu primele trei variante. 1. Determinarea prezentelor unui sablon fixat Problema: se cauta toate aparitiile unui sablon cunoscut intr-un sir Functie Matlab: pozitii = strfind(sir,sablon) - returneaza toate pozitiile de start ale sablonului in cadrul sirului Observatie: o functie cu rol similar este findstr(s1,s2) care cauta sirul mai scurt in sirul mai lung si returneaza pozitiile pe care se afla sirul mai scurt in cel mai lung Exercitiul 1. Sa se preia din GenBank secventa ADN cu identificatorul NC_001807. Se se determine numarul de aparitii ale subsecventeleor TATA respectiv TATATA. Indicatie. Daca s1 este secventa analizata atunci prin poz = strfind(s1,TATA) se determina pozitiile de start ale sablonului, iar prin size(poz,2) se determina cate prezente ale sablonului cautat au fost intalnite Exercitiul 2. Sa se genereze 30 de secvente aleatoare, sa se determine pentru fiecare dintre ele numarul de aparitii ale sablonului TATA respectiv TATATA si sa se calculeze valoarea medie si abaterea standard a numarului de aparitii pentru fiecare dintre cele doua sabloane.

Indicatie. Se scrie o functie ce contine un ciclu in care se genereaza 30 de secvente aleatoare (folosind randseq). Pentru calculul mediei se poate folosi functia mean iar pentru calculul abaterii standard se poate folosi functia std 2. Determinarea sabloanelor care respecta o expresie regulata Problema: se cauta toate aparitiile unui sablon care respecta o expresie regulata Specificarea expresiilor regulate in Matlab: in specificarea expresiilor regulate se pot utiliza urmatoarele simboluri si constructii lexicale: . (punct) un simbol arbitrar \w - character alfanumeric (litera, cifra sau _) c? - un simbol care apare o data sau deloc c* - succesiune de lungime mai mare sau egala cu 0, constituita prin repetarea simbolului c c+ - succesiune de lungime mai mare sau egala cu 1, constituita prin repetarea simbolului c c{m,n} succesiune cu lungimea cuprinsa intre m si n [c1 c2 c3 ] unul dintre simbolurile specificate [^ c1 c2 c3 ] nici unul dintre simbolurile specificate In locul unui simbol c se poate specifica . (punct) pentru a indica un simbol arbitrar sau (secventa) pentru a specifica o secventa de simboluri. Pentru a analiza prezenta unui sablon specificat printr-o expresie regulata se poate folosi functia regexp care se poate apela prin: [m, s, e] = regexp (secventa, expresie regulata, match,start,end) si returneaza toate subsecventele care se potrivesc cu expresia regulata precum si pozitia de start si cea de final a fiecareia. Observatie. Aceasta este doar una dintre variantele de apel ale functiei regexp Exercitiul 3. Pentru secventa din GenBank si una dintre secventele aleatoare folosite la exercitiile anterioare sa se determine:

a) cel mai lung sablon de forma GAGGAGGAG... GAG b) cel mai lung sablon de forma TA....AT (intre TA si AT pot fi orice caractere )
Indicatie. (a) [m,start,end]=regexp(s,(GAG)*,match,start,end) dupa care se determina cel mai lung sir din vectorul de celule m care contine toate sabloanele descoperite. (b) [m,start,end]=regexp(s,TA(.)*AT,match,start,end) 3. Construirea matricii profil, a sablonului consensual si a scorului de potrivire Se considera un set de t secvente ADN, fiecare de lungime n. Matricea profil a unei astfel de multimi contine 4 linii si n coloane: Linia 1: pe fiecare pozitie se afla numarul de aparitii ale nucleotidei A in pozitia corespunzatoare in toate secventele

Linia 2: pe fiecare pozitie se afla numarul de aparitii ale nucleotidei C in pozitia corespunzatoare in toate secventele Linia 3: pe fiecare pozitie se afla numarul de aparitii ale nucleotidei G in pozitia corespunzatoare in toate secventele Linia 4: pe fiecare pozitie se afla numarul de aparitii ale nucleotidei T in pozitia corespunzatoare in toate secventele Sablonul consensual are n elemente si se construieste punand pe fiecare pozitie nucleotida ce apare cel mai frecvent pe pozitia corespunzatoare in setul de secvente. Scorul de potrivire se obtine adunand valorile maxime de pe coloanele matricii profil. Exercitiul 4. Sa se construiasca matricea profil, sablonul consensual si scorul de potrivire pentru setul de secvente: {'AGGTACTT','CCATACGT','ACGTTAGT','ACGTCCAT','CCGTACGG'} Indicatie. O varianta de rezolvare a problemei se bazeaza pe functia definita mai jos, iar un exemplu de apel este: [profil, sablon, scor] = construireProfil ({'AGGTACTT', 'CCATACGT', 'ACGTTAGT', 'ACGTCCAT', 'CCGTACGG'})

function [profil, sablonConsensual, scor] = construireProfil(s) t=size(s,2); % numarul de secvente n=size(s{1},2); % lungimea fiecarei secvente profil=zeros(4, n); indMaxim=ones(1,n); %sablonConsensual=[]; nucleotide=['A','C','G','T']; nucleotideSmall=['a','c','g','t']; for j=1:n for k=1:4 profil(k,j)=0; for i=1:t if s{i}(j)==nucleotide(k) || s{i}(j)==nucleotideSmall(k) profil(k,j)=profil(k,j)+1; end end end for k=1:4 if profil(indMaxim(j),j)<profil(k,j) indMaxim(j)=k; end end end scor=0; for j=1:n sablonConsensual(j)=nucleotide(indMaxim(j)); scor =scor+profil(indMaxim(j),j); end

Tema: sa se modifice functia de construire a sablonului consensual astfel incat in cazul in care sunt mai multe nucleotide care apar cu aceeasi frecventa acestea sa apara specificate in sablon ca alternative. De exemplu daca matricea profil este: A: 2 1 3 0 2 4 C: 1 3 3 4 3 1 G: 2 3 0 2 2 1 T: 2 0 1 1 0 1 Atunci sablonul consensual ar trebui sa fie: {A|G|T}{C|G}{A|C}CA

4. Determinarea sablonului consensual de scor maxim si a localizarii lui in cazul a doua secvente. Exercitiul 5. Sa se determine sablonul consensual de lungime 8 avand scor maxim corespunzator secventelor: s(1:100) si s(200:400), unde s este secventa ADN de la Exercitiul 1 (GenBank , ID: NC_001807). Indicatie: se parcurg secventele si pentru fiecare pereche de indici de start i si j se calculeaza matricea profil respectiv scorul de potrivire. Sablonul corespunzator scorului maxim precum si pozitiile de unde incepe in fiecare dintre secvente poate fi determinat cu ajutorul functiei urmatoare:
function[sablon,start1,start2,scorMaxim,matriceMaxim]= gasireSablon(s1,s2, n) k1=size(s1,2); k2=size(s2,2); scorMaxim=0; start1=0; start2=0; for i=1:k1-n+1 for j=1:k2-n+1 [matriceProfil,sablonCurent,scorCurent]=construireProfil({s1(i:i+n1),s2(j:j+n-1)}); if scorCurent>scorMaxim sablon=sablonCurent; scorMaxim=scorCurent; matriceMaxim=matriceProfil; start1=i; start2=j; end end end end

Un exemplu de apel este: [sablon, start1, start2, scor] = gasireSablon(s(1:100),s(200:400),8)

5. Determinarea sablonului consensual de scor maxim si a localizarii lui in cazul unui numar arbitrar de secvente folosind algoritmul bazat pe tehnica greedy. Exercitiul 6. Sa se determine sablonul consensual pentru cele 5 exemple de secvente de la Cursul 5. Indicatie: Se determina matricea profil si pozitiile sablonului de scor maxim pentru primele doua secvente dupa care pentru fiecare dintre secventele urmatoare se determina pozitia sablonului de scor maxim (actualizand adecvat matricea profil).

function [start, matriceProfil, sablon, scorMaxim] = greedy(s, lg) t=size(s,2); % numarul de secvente start=ones(1,t); indMaxim=ones(1,lg); nucleotide=['A','C','G','T']; nucleotideSmall=['a','c','g','t']; [sablon,start(1),start(2),scorMaxim,matriceProfil]=gasireSablon(s{1},s{ 2},lg); for k=3:t scorMax=0; for i=1:size(s{k},2)-lg+1 matrice=matriceProfil; for j=i:i+lg-1 for p=1:4 if (s{k}(j)==nucleotide(p)||s{k}(j)==nucleotideSmall(p)) matrice(p,j-i+1)=matrice(p,j-i+1)+1; end end end scor=sum(max(matrice)); if scor>scorMax scorMax=scor; start(k)=i; matriceMax=matrice; end end matriceProfil=matriceMax; scorMaxim=scorMax; for j=1:lg indMaxim(j)=1; for p=1:4 if matriceProfil(indMaxim(j),j)<matriceProfil(p,j) indMaxim(j)=p; end end sablon(j)=nucleotide(indMaxim(j)); end end

Exemplu de apel pentru secventele de la curs: secv={'cctgatagacgctatctggctatccacgtacgtaggtcctctgtgcgaatctatgcgtttccaaccat','agtactggtgtacatttgat acgtacgtacaccggcaacctgaaacaaacgctcagaaccagaagtgc','aaacgtacgtgcaccctctttcttcgtggctctggccaacga gggctgatgtataagacgaaaatttt','agcctccgatgtaagtcatagctgtaactattacctgccacccctattacatcttacgtacgtataca',' ctgttatacaacgcgtcatggcggggtatgcgttttggtcgtcgtacgctcgatcgttaacgtacgtc'}; [start, matriceProfil, sablon, scorMaxim] = greedy(secv, 8)

Tema. Sa se implementeze varianta de algoritm (similara algoritmului Consensus) descrisa in Curs 5 (slide 29) .

S-ar putea să vă placă și

  • Bioinfo12 Lab5
    Bioinfo12 Lab5
    Document3 pagini
    Bioinfo12 Lab5
    Martha Diana Obrinteschi
    Încă nu există evaluări
  • Bioinfo12 Lab4
    Bioinfo12 Lab4
    Document6 pagini
    Bioinfo12 Lab4
    Martha Diana Obrinteschi
    Încă nu există evaluări
  • The Cube
    The Cube
    Document3 pagini
    The Cube
    Martha Diana Obrinteschi
    Încă nu există evaluări
  • The Cube
    The Cube
    Document5 pagini
    The Cube
    Martha Diana Obrinteschi
    Încă nu există evaluări
  • The Final Countdown
    The Final Countdown
    Document12 pagini
    The Final Countdown
    Martha Diana Obrinteschi
    Încă nu există evaluări
  • Analiza Talk Show
    Analiza Talk Show
    Document6 pagini
    Analiza Talk Show
    Martha Diana Obrinteschi
    Încă nu există evaluări
  • Forever Living
    Forever Living
    Document8 pagini
    Forever Living
    Martha Diana Obrinteschi
    Încă nu există evaluări