Nano'nun Günlüğü…

Ideallerimi gerceklestirmek icin arastiriyorum, Unutmamak icin yaziyorum!

  • Bulundugunuz Sayfa: 
  • Ana Sayfa
  • Profile HMM (Hidden Markov Model)

Profile HMM (Hidden Markov Model)

Gönderim Temmuz 30th, 2014

Bu makalemde, Hidden Markov Model ‘in Biyoinformatikteki Yeri olan Profile HMM inceliyor olucaz. DNA dizilimlerinde genlerin tespiti biyo informatik alaninda halen zorlu ve ilginc bir sorun olarak bilinmektedir.

Bu kadar cok genomun cok hizli bir sekilde diziye girmesi, biyo informatikte gozlemlenecek tekniklere yol acmaktadir.

Amac, dna nukleotidlerinin string’inde kodlanmis ve kodlanmamis bolgeleri bulabilmektedir. Ilgili dizilerin ve yapilarin ayni protein ailesine ait oldugu hakkindaki bilgilere profile bilgi denir. Hidden markov modeli ile gelecek yeni bir proteinin ayni profile ailesine ait olup olmadigini anlamaya calisiliyor.

Ornek :
Seq 1 = ACA- – -ATG
Seq2 = TCAACTATC
Seq3 = ACAC- -AGC
Seq4 = AGA- – -ATC
Seq5 = ACCG- -ATC
Yandaki gibi elimizde 5 dizilimlik bir profile bilgisi bulunmaktadir.
Bu dizilime gelecek olan yeni ACACATC dizilimi bu profile’a ait midir degil midir inceleyelim.

Profile ailesinin yapisinda dikkat edilmesi gereken 3 ozellik bulunmaktadir.
1) Matching – Dizilerin alt alta gelmesiyle eslesen bazlar
2) Insertion – Dizilerin alt alta gelmesiyle toplam baz sayisinin %50’sinden fazlaysa diziye eklenmistir.
3) Deletion – Dizilerin alt alta gelmesiyle toplam baz sayisinin %50’sinden azsa diziden cikarilmistir.

A    C    A    –    –    –    A    T    G
T    C    A    A    C    T    A    T    C
A    C    A    C    –    –    A    G    C
A    G    A    –    –    –    A    T    C
A    C    C    G    –    –    A    T    C

Bu durumda diziler alt alta geldiginde tum bazlarin o profile’da ki gelme olasiliklari hesaplanmaktadir. Soyle ki; 5 dizimiz bulunmaktadir. ilk sutunda alt alta gelen bazlardan; A=4, T=1 adettir. Ayni sekilde ikinci sutunda alt alta gelen bazlardan; C=4, G=1 tanedir. Bu sekilde hepsinin sutun halinde sayilari belirlendikten sonra 5’e oranla olasiliklari hesaplanir.
A = 4 * 1/5 = 0.80 ‘dir…

Asagidaki Tabloda yesil sutun %50 degeri gectigi icin insertion, kirmizi sutun ise %50 degerin altinda oldugu icin deletion olarak kabul edilmektedir.

A % 0.80    A % 0    A % 0.80    A % 0.20    A % 0    A % 0    A % 1.0    A % 0    A % 0
C % 0    C % 0.80    C % 0.20    C % 0    C % 0.20    C % 0    C % 0    C % 0    C % 0.80
G % 0     G % 0.20    G % 0    G % 0.20    G % 0     G % 0     G % 0     G % 0.20    G % 0.20
T % 0.20    T % 0    T % 0    T % 0.20    T % 0    T % 0.20    T % 0    T % 0.80    T % 0

Buna gore Hidden Markov Modelimizi hazirlayacak olursak;

phmm

 

 

 

 

Bu modele gore, yeni gelen dizilimimizi hesaplayacak olursak;

P(ACACATC) = (A * 1.0) * (C * 1.0) * (A * 0.60) * (C * 0.60) * (A * 1.0) * (T * 1.0) * C

P(ACACATC) = (0.80 * 1.0) * (0.80 * 1.0) * (0.80 * 0.60) * (0.40 * 0.60) * (1.0 * 1.0) * (0.80 * 1.0) * 0.80

P(ACACATC) = 0.047

 

Profile HMM icin yazmis oldugum matlab komutlarini asagida bulabilirsiniz.

profileHMM.m Komutlari

clear all;

close all;

clc;

seq1 = ‘ACA—ATG’;

seq2 = ‘TCAACTATC’;

seq3 = ‘ACAC–AGC’;

seq4 = ‘AGA—ATC’;

seq5 = ‘ACCG–ATC’;

seqs = {seq1,seq2,seq3,seq4,seq5};

sq = multialign(seqs)

seQ1 = sq(1,:);

seQ2 = sq(2,:);

seQ3 = sq(3,:);

seQ4 = sq(4,:);

seQ5 = sq(5,:);

yuzdeDeger = 100 / 5; s=1;

disp(‘Profile Representation Matrix’)

for k=1:length(sq(1,:))

t = 0; a = 0; g = 0; c = 0; tire = 0;

for i=1:length(sq(:,1))

if sq(i,k) == ‘A’

a = a + 1;

end

if sq(i,k) == ‘T’

t = t + 1;

end

if sq(i,k) == ‘G’

g = g + 1;

end

if sq(i,k) == ‘C’

c = c + 1;

end

if sq(i,k) == ‘-‘

tire = tire + 1;

sutunNoAl(s,1) = k;

s = s + 1;

end

end

Matrix(1,k) = a * yuzdeDeger / 100;

Matrix(2,k) = t * yuzdeDeger / 100;

Matrix(3,k) = g * yuzdeDeger / 100;

Matrix(4,k) = c * yuzdeDeger / 100;

Matrix(5,k) = tire * yuzdeDeger / 100;

end

Matrix

sutunNoAl = unique(sutunNoAl);

for i=1:length(sutunNoAl)

yeniMatrix(:,i) = Matrix(:,sutunNoAl(i,1));

end

yeniMatrix;

E = zeros(length(yeniMatrix),1);

for k=1:length(yeniMatrix(1,:))

E(:,1) = E(:,1) + yeniMatrix(:,k);

end

yeniMatrix = E;

p = ‘ACAC–ATC’;

for i=1:length(p)

if p(i) == ‘A’

pSonuc(i,1) = Matrix(1,i) * sum(Matrix(:,i));

end

if p(i) == ‘T’

pSonuc(i,1) = Matrix(2,i) * sum(Matrix(:,i));

end

if p(i) == ‘G’

pSonuc(i,1) = Matrix(3,i) * sum(Matrix(:,i));

end

if p(i) == ‘C’

pSonuc(i,1) = Matrix(4,i) * sum(Matrix(:,i));

end

if i == sutunNoAl(1,1) || i == sutunNoAl(2,1) || i == sutunNoAl(3,1)

if p(i) == ‘A’

pSonuc(i,1) = yeniMatrix(1,1) * 0.6;

end

if p(i) == ‘T’

pSonuc(i,1) = yeniMatrix(2,1) * 0.6;

end

if p(i) == ‘G’

pSonuc(i,1) = yeniMatrix(3,1) * 0.6;

end

if p(i) == ‘C’

pSonuc(i,1) = yeniMatrix(4,1) * 0.6;

end

end

end

olasiliklar = pSonuc’

sum(pSonuc);

TotalSonuc = prod(nonzeros(pSonuc))

Keyifli Calismalar Dilerim.

Etiketler: , , , , ,
Bulundugu Konu Etiketleri Akademik, BioInformatic, Matlab, Yazilim |

Lutfen Yorumlarinizi Burdan Ulastiriniz!...

You must be Kullanici Adiniz : to post a comment.

Istatistik

  • 1 Uye
  • 334 Yazi
  • 16 Yorum Var