Documente Academic
Documente Profesional
Documente Cultură
Analiza filogenetic permite identificarea relaiilor de evoluie ntre diferite specii (reprezentate
prin secvene ADN sau de aminoacizi). Rezultatul analizei este o diagram ierarhic (similar
dendrogramelor utilizate n gruparea bazat pe algoritmi ierarhici) numita arbore filogenetic.
Ramurile n arbore exprim descendena sau ascendena n procesul de evoluie. De regul
speciile analizate sunt asociate cu noduri frunz ale arborelui iar nodurile interne corespund unor
specii ipotetice care ar reprezenta strmoi comuni.
Metodele bazate pe distane presupun c pentru fiecare pereche de secvene se poate calcula
distana dintre ele. Distana este calculat pe baza numrului de nepotriviri ntre secvene sau
pe baza numrului estimate de mutaii
1.1. Algoritmul UPGMA (Unweighted Pair Group Method using arithmetic Averages)
Structura algoritm:
Iniializare:
Construiete lista iniial cu noduri (fiecare nod corespunde unei secvene xi care
definete clusterul propriu Ci) . Acestea sunt nodurile frunz ale arborelului. Pentru
fiecare nod se asigneaz nlimea: h(Ci )=0 i se reine numrul de secvene care fac
part din clusterul corespunztor nodului (la iniializare acesta este 1)
Construiete matricea de distane (aceasta poate fi reprezentat ca o list pentru
fiecare element din list se specific perechea de noduri corespunztoare i valoarea
distanei)
Prelucrare repetitiv:
Determin cele mai apropiate dou noduri (corespunztoare clusterilor Ci i Cj ) e
perechea de noduri pentru care distana este minim)
Grupeaz nodurile i i j i construiete nodul k ce corespunztor reuniunii dintre
clusterele corespunztoare nodurilor i i j (Ck = Ci Cj ). Nodul k va avea nlimea
h(Ck)= dij /2; eticheteaz muchia (Ck,Ci) cu h(Ck)-h(Ci) i muchia (Ck,Cj) cu h(Ck)-
h(Cj)
Actualizeaz lista cu noduri prin marcarea nodurilor Ci i Cj ca inactive i adaugarea
lui Ck ca nou nod active
Calculeaz distana de la Ck la nodurile active i actualizeaz matricea (lista) cu
distane
Condiie de terminare:
Cnd se ajunge la un singur nod activ (corespunde clusterului ce conine toate
secvenele)
Are ca scop tot construirea unui arbore ntr-o manier similar algoritmilor aglomerativi de
grupare, ns se urmrete minimizarea sumei lungimilor tuturor muchiilor ce unesc nodurile.
Din acest motiv la alegerea nodurilor care se unesc se determin perechea (i,j) pentru care
distana dintre ele este minim, iar distana medie fa de celelalte noduri este maxim. Prin
urmare se alege perechea (i,j) care minimizeaz o valoare ajustat a distanei:
Q(i,j)=d(i,j)-r(i)-r(j) unde r(i)= media distanelor de la nodul i la celelalte noduri din arbore
Dup ce s-a ales perechea (i,j) se adaug nodul k (printe pentru nodurile i i j) i se calculeaz:
Distana de la nodul k la celelalte noduri din arbore: d(k,l)=d(i,l)+d(j,l)-d(i,j)
Etichetele muchiilor care unesc nodul k de nodurile i i j:e(k,i)=(d(i,j)+r(i)-r(j))/2
respectiv e(k,l)=(d(i,j)+r(j)-r(i))/2
matrice_distante=seqpdist(seqs,'Method',tip_distanta,'Alphabet',tip_secventa)
Dac se dorete utilizarea unei metode de tip Neighbour-Joining se poate folosi funcia
seqneighjoin care se apeleaz prin seqneighjoin(matrice_distante, metoda, nume_secvente)
Metodele care se pot folosi: equivar, firstorder, average (corespunde variantei standard de
algoritm Neighbour-Joining).
Obs. Metoda seqneighjoin permite modificarea rdcinii arborelului prin specificarea opiunii
Reroot.
Exerciiu 1. Se incarca ADN mitocondrial (ADN transmis doar prin intermediul mamei i prin
urmare afectat doar de mutaie i nu i de ncruciri) pentru cteva specii de hominizi:
Obs. In locul variantei de ncrcare a secvenelor bazate pe funcia getgenbank se poate folosi
varianta bazata pe preluarea separat a fiecrei secvene (prin export n fiier Fasta din Genbank).
distances = seqpdist(seqs,'Method','Jukes-Cantor','Alphabet','DNA');
tree = seqlinkage(distances,'UPGMA',seqs)
h = plot(tree,'orient','bottom');
ylabel('Distanta evolutiva')
set(h.terminalNodeLabels,'Rotation',-45)
names = get(tree,'LeafNames')
b) Determinarea speciei care este cea mai apropiat n arbore de o specie dat. De exemplu
pentru determinarea celei mai apropiate specii de omul din Europa se foloseste funcia select:
[h_all,h_leaves] = select(tree,'reference',3,'criteria','distance','threshold',0.6);
Apelul de mai sus permite identificarea tuturor nodurilor (h_all) dar i selectarea nodurilor frunz
(h_leaves) aflat la o distan (n arbore) mai mic de 0.6. Numele speciilor selectate pot fi
obinute cu
subtree_names = names(h_leaves)
c) Extragerea unui subarbore prin eliminarea nodurilor frunz nedorite. De exemplu pentru
eliminarea nodurilor aflate la o distan mai mic de 0.6 de specia european se poate specifica:
leaves_to_prune = ~h_leaves;
pruned_tree = prune(tree,leaves_to_prune)
h = plot(pruned_tree,'orient','bottom');
ylabel('Distanta de evolutie')
set(h.terminalNodeLabels,'Rotation',-30)
Obs. Pentru explorarea, editarea si formatarea unui arbore filogenetic se poate folosi aplicatia
phytreetool care se apeleaza pentru un arbore filogenetic creat cu seqlinkage sau modificat prin
prune