Rabu, 10 Agustus 2016

Algoritma Bioinformatika – Hidden Markov Model (Part 2)

Yup, KohVic kembali lagi dengan topik yang sama. Masih seputar Hidden Markov Model, karena materi ini yang lagi in di kepala saia…hehehe. So, gimana soal hitung-hitungan probabilitas lempar koin nya? Atau adakah yang mencoba praktek lempar koin di rumah? Yaa, saia berharap setelah membaca tulisan part 1 teman-teman mendapatkan konsep awal dari HMM. Oke, sekarang kita akan mencoba menggunakan teknik HMM ini di dalam dunia bioinformatika. Pada kennyataannya, banyak analisis di dalam bioinformatika yang mengandalkan pemodelan HMM baik yang berdiri sendiri maupun sebagai bagian dari keseluruhan analisis. Prediksi gen dan pengelompokan famili protein merupakan dua analisis yang menggunakan HMM sebagai pondasi utamanya. Nah di dalam tulisan part 2 ini, saia akan membahas tentang pengelompokan famili protein. Mari lanjutttt…
Kita tahu bahwa protein terdiri dari asam amino yang terangkai satu sama lain melalui ikatan peptida. Dari sekian banyak asam amino, hanya 20 jenis yang digunakan oleh organisme untuk membentuk protein dan mereka disebut sebagai asam amino standar. Dalam kebanyakan kasus, protein satu dan lainnya biasanya dikelompokkan berdasarkan fungsi dan strukturnya. Jika dilihat lebih seksama, protein yang fungsinya sangat mirip umumnya memiliki urutan yang sangat mirip pula. Hal inilah yang menjadi dasar penggunaan data urutan asam amino untuk prediksi struktur dan fungsi sehingga dapat dikelompokkan ke dalam famili tertentu. Secara teknis, pengelompokkan urutan protein yang mirip satu sama lain juga cukup sederhana dengan hanya mengandalkan penjajaran urutan banyak dan penghitungan skor similaritas. Hmm..apakah ini artinya masalah telah selesai? Tentu saja belum. Karena banyak kasus di dalam pengelompokan protein dimana anggotanya memiliki urutan yang begitu berbeda sehingga sinyal kemiripannya terlalu lemah untuk dideteksi oleh penjajaran urutan standar.
HMM dapat digunakan untuk menjawab permasalahan pengelompokan famili protein ini. Secara konsep, HMM merupakan pemodelan probabilistik yang dikonstruksi dari data jajaran kelompok protein dan kemudian digunakan untuk memprediksi probabilitas apakah sebuah urutan protein merupakan anggota dari kelompok tersebut atau tidak. Sekarang perhatikan jajaran protein pada Gambar 1. Untuk mengkonstruksi model HMM, terlebih dahulu kita harus menjajarkan urutan protein yang sudah diketahui termasuk ke dalam satu kelompok. Di dalam HMM, kelompok urutan ini disebut juga sebagai dataset training. Selanjutnya, dari dataset ini kita perlu menetapkan parameter theta yang bertugas ‘menyaring’ jajaran awalan ini dari kolom kurang informatif yang ditandai dengan banyak celah. Dalam hal ini kita mengatur nilai theta sebesar satu, yang berarti kolom manapun yang memiliki celah lebih dari satu dianggap tidak informatif dan tidak akan diikutsertakan pada konstruksi profil. Dengan pengaturan tersebut, dua kolom yang terletak di antara kolom 5 dan 6 tidak akan diikutsertakan dan profil yang dikonstruksi hanya memuat 8 kolom.
Gambar 1. Penjajaran lima urutan protein dan konstruksi matriks profil dari jajaran urutan banyak. Nilai theta diatur sebesar 1 yang berarti kolom dengan jumlah celah lebih dari satu tidak akan dimasukkan ke dalam profil.

 Hingga pada tahap ini teman-teman mungkin merasa teknik ini mirip seperti pada konstruksi matriks position-specific scoring matrix (PSSM) yang telah dikenalkan sebelumnya. Eitt nanti dulu…kita ikuti saja ceritanya. Nah sekarang dengan mengandalkan profil pada Gambar 1, hitung probabilitas bahwa urutan protein ADDAFFDF merupakan anggota dari jajaran protein. Mudah saja, tinggal kalikan nilai frekuensi masing-masing asam amino pada matriks profil sesuai dengan urutan asam amino. Disini, kita akan mendapat 1 x 1/4 x 3/4 x 1/5 x 1 x 1/5 x 3/4 x 3/5 = 0,003375. Nilai tersebut masih 13,5 kali lebih tinggi dibandingkan nilai probabilitas terendah (yaitu 0,00025) bagi sebuah urutan untuk bisa masuk ke dalam kelompok. Oke, masalah selesai lalu dimana HMM-nya?
Coba perhatikan sekali lagi matriks profil pada Gambar 1 dan renungkan apakah ada yang aneh? Ketemu? Oke, sekarang saia tanya apakah kita bisa menghitung probabilitas yang sama untuk urutan ADDAFFDF dan AAFFDF? Nah inilah kelemahannya, matriks profil tersebut tidak dapat mengakomodasi urutan yang lebih pendek atau lebih panjang darinya. Dengan kata lain, pemodelan yang dilakukan oleh profil tersebut tidak dapat mengakomodasi delesi dan insersi yang jelas pasti ada di dalam urutan protein. Kembali kepada HMM yang berfokus pada hidden states, apakah sekarang teman-teman sudah tahu apa hidden states di dalam kasus ini? Yup, insersi dan delesi itulah hidden states nya. Oke, sekarang kita konstruksi lagi pemodelan HMM yang mengikutsertakan state insersi dan delesi. Pemodelan diagram HMM untuk mengakomodasi penjajaan urutan cukup sederhana. Model tersebut hanya terdiri dari tiga state, yakni match (M), insersi (I), dan delesi (D) yang dengan sejumlah tanda panah yang mengarah ke masing-masing state (Gambar 2).
Gambar 2. Diagram HMM untuk penjajaran urutan.
Well, seperti pada tulisan sebelumnya, kita tentu harus mengkonversi diagram HMM ini menjadi semacam ‘grafik Viterbi’ sedemikian rupa sehingga dapat mengakomodasi setiap situs di dalam jajaran dataset training. Kembali pada kasus penjajaran tiga urutan di atas, ‘grafik Viterbi’ HMM setengah jadi pada Gambar 3 menyajikan pemodelan HMM untuk tiga urutan: ADDAFFDF, AFDDAFFDF, dan AAFFDF. Terlihat bahwa ‘grafik Viterbi’ ini mampu mengakomodasi jajaran urutan sekalipun ketiganya memiliki panjang yang berbeda.
Gambar 3. Konstruksi model HMM untuk mengakomodasi urutan ADDAFFDF, AFDDAFFDF, dan AAFFDF.

 Nah, berbekal contoh pada Gambar 3 tersebut, kita dapat mengeneralisir konstruksi ‘grafik Viterbi’ agar dapat mengakomodasi dataset urutan secara umum. Konstruksi ‘grafik Viterbi HMM general’ tersebut dapat dilihat pada Gambar 4. Mula-mula kita membuat state M sepanjang n residu dari jajaran urutan banyak yang telah di-filter dengan parameter theta. Selanjutnya, tambahkan sebanyak n+1 state I dan kemudian sebanyak n state D. Perhatikan juga  tanda panah yang mengarah dari satu state ke state yang lain. Pastikan juga bahwa seluruh tanda panah yang dibuat mengarah ke kanan. Terakhir, tambahkan state mula-mula (S) dan state akhir (E).
Gambar 4. Tahapan konstruksi ‘grafik Viterbi HMM general’ untuk mengakomodasi dataset urutan. Dalam model ini, urutan yang dapat diakomodasi adalah sepanjang delapan residu.

 Setelah membuat ‘grafik Viterbi HMM general’, kita dapat melihat bahwa ‘grafik Viterbi’ yang ada sekarang sudah dapat mengakomodasi masing-masing urutan yang terdapat dalam dataset training (Gambar 5). Oke, selanjutnya adalah menghitung probabilitas transisi antar state dan probabilitas emisi residu pada masing-masing posisi 1 hingga 8 menggunakan dataset training. Serupa dengan model pelemparan koin, kita dapat menghitung probabilitas transisi antar state (transition l,k) berdasarkan rasio perpindahan state p1 ke p2 (Tl,k) terhadap perpindahan state p1 ke state lainnya (Tl,j). Sebagai contoh, perhatikan bahwa terdapat empat jalur yang melewati state M5. Tiga dari empat jalur tersebut bergerak menuju state I5, sedangkan satu jalur terakhir langsung mengarah ke state M6. Dengan demikian, hitungannya menjadi:
Transisi M5,I5           = 3/4
Transisi M5,M6        = 1/4
Transisi M5,D6         = 0
Perhitungan probabilitas emisi (emisi k,b) dinyatakan sebagai probabilitas dari HMM mengemisikan residu b pada state k. Nilai ini dapat dihitung dari rasio jumlah residu b diemisikan oleh state k terhadap asam amino lainnya pada state yang sama. Sebagai contohnya:
Emisi M2,A                = 0
Emisi M2,C                 = 1/2
Emisi M2,D                = 1/4
Emisi M2,E                 = 0
Emisi M2,F                 = 1/4
Untuk state insersi, jika menghadapi kasus dimana terdapat lebih dari dua daerah insersi maka perhitungan probabilitas emisi untuk state tersebut menggunakan nilai kumulatif dari seluruh situs yang dikategorikan ke dalam state tersebut. Sebagai contohnya, state I5 memiliki dua kolom residu dengan total residu A sebanyak 3 buah dan residu C dan D masing-masing 1 buah. Dengan demikian perhitungan probabilitas emisinya menjadi:
Emisi I5,A                   = 3/5
Emisi I5,C                    = 1/5
Emisi I5,D                   = 1/5
Emisi I5,E                    = 0
Emisi I5,F                    = 0
Gambar 5. Pencocokan model HMM general terhadap lima urutan yang terdapat di dalam jajaran dataset training.

Oke, jadi hitung semua probabilitas transisi dan emisinya dengan cara di atas yak. Sudah selesai? Kalau belum silahkan lihat Gambar 6 sajah..heheheh. Sip, dengan semua ini kita sudah siap untuk mengkalkulasi nilai probabilitas urutan baru dan menentukan apakah dia akan ‘join to the club’ atau tidak. Kasus pertama, urutannya adalah A - - AFCCADF. Perhitungan probabilitasnya sama dengan kasus pelemparan koin dan hasilnya adalah….jrengg..jrenggg… 0,00000073728. Yaa saia tahu kalau nilai ini cukup kecil, jadi biasanya diekspresikan dalam skala minus logaritmik. Dengan demikian, -log (0,00000073728) = 6.132367547. Setelah kita mendapatkan nilai probabilitas (atau lebih tepatnya nilai likelihood) nya, lantas urutan baru ini ‘join to the club’ atau tidak. Nah pertanyaan ini harus dijawab dengan menguji HMM terlebih dahulu menggunakan kontrol positif dan negatif untuk menentukan ambang batas probabilitasnya.
Gambar 6. ‘Grafik Viterbi HMM general’ konsensus hasil penggabungan seluruh ‘grafik Viterbi’ pada Gambar 4 beserta nilai probabilitas transisi (l,k) dan emisi (k,b).
 Sebagai penutup, ada satu hal penting yang perlu ditambahkan ke dalam model HMM pada Gambar 5. Kita perlu menghilangkan angka probabilitas 0 pada nilai probabilitas transisi maupun emisi. Hal ini perlu untuk mengantisipasi probabilitas akhir yang bernilai 0 apabila salah satu residu di dalam urutannya mengenai state dengan probabilitas 0 di dalam HMM. Teknik penghilangan angka 0 ini disebut dengan pseudocount (simbol sigma), alias menambahkan semacam nilai probabilitas semu pada state dengan nilai probabilitas 0. Terakhir, saia ingin bertanya apakah teman-teman pembaca tidak merasa aneh dengan proses penghitungan probabilitas terhadap urutan baru yang tadi dilakukan? Jika tidak, persilahkan saia untuk memberitahu satu hal. Di dalam prosesnya, sebuah urutan baru tentu saja tidak datang dengan membawa celah (gap) di dalamnya atau dengan kata lain, urutan pada kasus di atas hanya dapat dilihat sebagai AAFCCADF. Hal ini menyulitkan karena kita sebenarnya tidak tahu dimana letak celahnya. So, pada part berikutnya kita akan mempelajari pemodelan yang lebih rinci lagi yang melibatkan konstruksi grafik Viterbi yang sebenarnya (ingat kembali dari awal saya selalu menambahkan tanda kutip pada setiap tulisan ‘grafik Viterbi’) sehingga kita dapat memberikan pemodelan yang tepat untuk menangani celah pada urutan.

KohVic

Senin, 08 Agustus 2016

Algoritma Bioinformatika – Hidden Markov Model (Part 1)

Hola..kohvic kini kembali lagi untuk membuat tulisan berikutnya. Biasa lar, selama ini saia menghilang karena mengumpulkan bahan tulisan di sela-sela kesibukan bekerja..heheheh. Oke, pada kesempatan kali ini saia akan membahas tentang Hidden Markov Model. Well, sebenarnya topik ini sudah pernah dibahas bersama dengan pemodelan statistik urutan PSSM pada tulisan sebelumnya. Namun disini saia ingin membahas secara khusus dan mendalam mengenai hidden Markov model ini. Seperti yang kita tahu bahwa Hidden Markov model banyak digunakan dalam berbagai pemodelan probabilitas urutan DNA atau protein. Aplikasi dari pemodelan ini cukup beragam, mulai dari penjajaran urutan banyak, prediksi gen, hingga prediksi  famili dan struktur protein. Namun sebelum beranjak langsung ke permasalahan real, saia ingin mengenalkan konsep HMM menggunakan contoh sederhana terlebih dahulu, pelemparan koin.
Bayangkan bahwa kita sedang bertaruh pada permainan melempar koin. Seperti yang kita tahu, hasil dari pelemparan koin ada dua, yakni bagian muka (saia singkat M) dan belakang (saia singkat B). Nah, ditambah dengan sedikit bumbu dramatisasi, si bandar atau pelempar koin ternyata sedikit bermain curang. Selain menggunakan koin yang standar (S), ternyata si bandar menggunakan koin non-standar (N) yang memiliki tampilan sama, namun memberikan distribusi peluang hasil yang berbeda dengan koin standar. Katakanlah, peluang munculnya bagian muka (M) dan belakang (B) masing-masing adalah 0,5 pada koin standar (S); sedangkan pada koin non-standar (N) peluang munculnya M dan B masing-masing adalah 0,75 dan 0,25. Dalam melakukan aksinya, si bandar sesekali menukar koin secara diam-diam. Nah pesan moral yang didapatkan dari certa di atas adalah jangan berjudi yah karena judi itu tidak baik. Errr….maaf kembali ke topik. Oke, sekarang apa hubungannya cerita di atas dengan hidden Markov model? Well, pada cerita di atas tentu saja si bandar tidak akan begitu baiknya memberi tahu mana koin S dan mana koin N. Satu-satunya informasi yang kita tahu adalah urutan kemunculan bagian muka M dan belakang B dari setiap pelemparan koin.
 
Gambar 1. (kiri) Tampilan hasil pelemparan koin yang memberikan bagian muka (M) dan belakang (B) dari koin standar S (lingkaran biru) dan non-standar N (lingkaran hijau). Dalam prosesnya, koin standar dan non-standar dapat bertukar dengan probabilitas 0,1. (kanan) Diagram HMM dari ilustrasi koin panel kiri.
Untuk contoh ini, asumsikan saja bahwa kita mengetahui probabilitas penukaran koin dan probabilitas masing-masing koin untuk memberikan bagian muka dan belakang seperti pada Gambar 1 (panel kiri). Nah sekarang pertanyaannya, jika kita mendapatkan urutan hasil pelemparan koin berupa, katakanlah MMMBB, maka koin manakah yang paling mungkin untuk memberikan hasil demikian untuk setiap hasil pelemparannya? Untuk menjawab pertanyaan tersebut, mari kita gambarkan kembali probabilitas dari penukaran antar koin (yang selanjutnya disebut probabilitas transisi) dan hasil yang diberikan oleh masing-masing koin (yang selanjutnya disebut probabilitas emisi) sebagai sebuah diagram HMM (Gambar 1, panel kanan). Dalam kasus ini, koin S dan N merupakan bagian ‘hidden’ dari pemodelan HMM karena kita sebenarnya tidak mengetahui dan hanya bisa membuat dugaannya untuk dimasukkan ke dalam pemodelan HMM.
Jadi…..sebenarnya HMM itu apa sih? Well HMM dapat didefinisikan sebagai sebuah pemodelan statistik terhadap fenomena Markov process yang mengandung status (states) yang tidak terobservasi. Markov process sendiri adalah sebuah model statistik yang mengasumsikan bahwa kondisi di masa depan bergantung dari kondisi di masa sekarang. Dalam kasus pelemparan koin, hasil yang diberikan dari setiap pelemparan koin merupakan Markov process. Nah bagian 'hidden' nya adalah, kita tidak mengetahui ada koin lain yang digunakan di dalam pelemparan tersebut yang dapat mempengaruhi hasil pelemparan. Jadi, di dalam pemodelan HMM ini, kita akan memprediksi koin mana yang paling mungkin digunakan oleh si bandar pada setiap pelemparan. Secara formal, HMM dicirikan oleh empat komponen:
1.         Simbol (E, sigma) yang merupakan hasil keluaran yang didapatkan dari penggunaan hidden states tertentu. Dua simbol dalam kasus pelemparan koin adalah bagian muka (M) dan belakang (B).
2.         States yang merupakan kumpulan dari hidden states. Dalam kasus pelemparan koin, hidden states-nya adalah koin standar (S) dan non-standar (N).
3.         Matriks probabilitas transisi yang berisi nilai probabilitas pertukaran antar states. Dalam kasus pelemparan koin, matriks ini adalah matriks 2x2 antara N dengan S.
4.         Matriks probabilitas emisi yang berisi nilai probabilitas munculnya hasil dari pelemparan masing-masing states. Dalam kasus pelemparan koin, matriks ini juga matriks 2x2 antara probabilitas M dan B masing-masing terhadap koin N dan S.
Untuk lebih jelasnya, silahkan lihat Gambar 2.
Gambar 2. Empat komponen HMM.
Setelah kita mengetahui komponen HMM, selanjutnya kita perlu mengenal rumus utama di dalam pemodelan HMM yang dituliskan dalam persamaan (1) berikut:
Maaf, karena di blog ini saia tidak bisa menuliskan simbol pi, jadinya saia ganti saja menjadi simbol p yah.
Dimana Pr(x,p) merupakan probabilitas dari HMM menggunakan jalur hidden state p DAN memberikan hasil x. Nilai probabilitas tersebut merupakan produk dari perkalian probabilitas HMM memberikan hasil x JIKA menggunakan jalur hidden state p [Pr(x|p)] terhadap probabilitas p [Pr(p)] itu sendiri. Nah, daripada bingung terlalu lama, sebaiknya kita langsung terapkan saja pada contoh pelemparan koin. Kembali ke pertanyaan, berapakah probabilitas dari digunakannya koin dengan urutan state SNNNS untuk memberikan hasil MMMBB. Oke, kondisinya adalah kita sudah mendapatkan urutan hidden state p SNNNS dan probabilitas transisi serta emisi yang tertulis di Gambar 2. Untuk menghitung probabilitasnya, pertama kita memodelkan diagram HMM menjadi semacam ‘grafik Viterbi’ dengan state S/N yang tersebar pada setiap urutan hasil (Gambar 3). Selanjutnya, kita memberikan nilai probabilitas transisi yang mengikuti alur state p yang telah diberikan, yakni SNNNS. Masih ada satu hal yang kurang, yakni probabilitas pemilihan koin pada awal (Start --> S/N) dan akhir (S/N --> End). Untuk pemilihan koin pada awalan, kita asumsikan saja bahwa kedua koin memiliki probabilitas sama besar (0,5); sedangkan untuk mengakhiri pelemparan kita berikan nilai probabilitas 1 dari nodus S/N menuju nodus End.
Gambar 3. Semacam ‘grafik Viterbi’ dari diagram HMM yang memuat pemodelan state koin S/N yang memberikan hasil urutan MMMBB.
 Sekarang, kita akan menandai jalur yang dilewati oleh p (SNNNS) dan memberikan nilai probabilitas menggunakan matriks transisi dan emisi. Diagram HMM dengan jalur p yang sudah ditandai dapat dilihat pada Gambar 4. Kita dapat melihat bahwa nilai probabilitas yang disematkan pada tanda panah kecil di dalam semacam ‘grafik Viterbi’ ini diambil dari matriks transisi; sedangkan nilai pada tanda panah besar diambil dari matriks emisi. Dengan seluruh nilai probabilitas transisi dan emisi ini kita dapat menghitung probabilitas kemunculan urutan MMMBB dari penggunaan koin SNNNS sebagai produk perkalian keduanya. Well, nilai yang kita dapatkan adalah 0,0001424 yang artinya probabilitas si bandar menggunakan koin dengan urutan SNNNS untuk memberikan hasil MMMBB adalah sebesar 0,0001424. Cukup kecil bukan??
Gambar 4. Diagram HMM dengan alur state p SNNNS yang memberikan hasil MMMBB.

 Mungkin ada teman yang bertanya, apakah ada alur urutan penggunaan koin yang dapat memberikan pola probabilitas yang lebih besar dari 0,0001424? Jawabannya dapat kita telusuri dari semacam ‘grafik Vterbi’. Gambar 5 menampilkan seluruh nilai probabilitas transisi dan emisi pada semacam ‘grafik Viterbi’ dan kita dapat menggunakannya untuk membandingkan nilai probabilitas antar jalur p untuk mencari nilai tertinggi. Untungnya, sifat dari HMM ini salah satunya adalah Markov property, yakni nilai probabilitas suatu state di masa kini ditentukan dari satu state sebelumnya. Dengan demikian, solusi dari permasalahan ini dapat diselesaikan dengan teknik pemrograman dinamis (dynamic programming) seperti halnya pada melakukan penjajaran antar dua urutan.
Misalnya, dari nodus Start ke state S/N pertama; masing-masing nodus S dan N hanya memiliki satu arah dari nodus Start sehingga nilai probabilitas untuk S1 adalah 0,5 x 0,5 = 0,25 dan untuk N1 adalah 0,5 x 0,75 = 0,375. Selanjutnya, untuk nodus S dan N kedua, kita perlu mempertimbangkan dua skenario untuk masing-masing nodus:
S2           = S1 x 0,9 x 0,5 = 0,25 x 0,9 x 0,5 = 0,1125 (skenario 1)
                = N1 x 0,1 x 0,5 = 0,375 x 0,1 x 0,5 = 0,01875 (skenario 2)
N2          = S1 x 0,1 x 0,75 = 0,25 x 0,1 x 0,75 = 0,01875 (skenario 1)
                = N1 x 0,9 x 0,75 = 0,375 x 0,9 x 0,75 = 0,2531 (skenario 2)
Berlanjut pada nodus S3 dan N3, kali ini kita perlu membandingkan empat skenario dari masing-masing nodus. Kenapa empat? Karena nilai probabilitas pada S3 (atau N3) diperoleh dari perbandingan nilai probabilitas S2 (atau N2) yang memiliki dua dua skenario, sehingga:
S3           = S2 (dari skenario 1) x 0,9 x 0,5 = 0,1125 x 0,9 x 0,5 = 0,051 (skenario 1)
                = S2 (dari skenario 2) x 0,9 x 0,5 = 0,01875 x 0,9 x 0,5 = 0,00844 (skenario 2)
                = N2 (dari skenario 1) x 0,1 x 0,5 = 0,01875 x 0,1 x 0,5 = 0,0000938 (skenario 1)
                = N2 (dari skenario 2) x 0,1 x 0,5 = 0,2531 x 0,1 x 0,5 = 0,013 (skenario 2)

Gambar 5. Semacam ‘grafik Viterbi’ dengan seluruh nilai probabilitas transisi dan emisi untuk lima pelemparan koin.

Dan begitu seterusnya untuk nodus keempat dan kelima. Hayo, sudah dihitung semua? Kalau begitu sekarang saia tanya, urutan penggunaan koin mana yang paling mungkin memberikan hasil pelemparan MMMBB? Yup, jawabannya adalah SSSSS dengan nilai probabilitas sekitar 0,0102. Jika dibandingkan, penggunaan koin dengan urutan SSSSS memiliki probabilitas 72 kali lebih besar daripada urutan SNNNS. Dengan demikian, kita dapat menyimpulkan bahwa untuk lima lemparan koin pertama, si bandar masih berlaku adil. Bagaimana jika untuk 10 lemparan berikutnya dengan keluaran hasil BMMMBMMBBM? Silahkan dihitung sendiri yak..hehehe
Setelah cukup lelah membuat pemodelan HMM untuk kasus pelemparan koin dan menghitung probabilitasnya, muncul pertanyaan terakhir yang sekaligus menjadi penutup dari tulisan part 1 ini: Apa hubungannya pemodelan koin ini dengan bioinformatika? Nanti pada tulisan part 2 saia akan membahas tentang pemodelan HMM seperti di atas yang diterapkan pada penjajaran urutan protein. Tentunya model HMM yang digunakan akan lebih kompleks dibandingkan yang sekarang digunakan dalam pelemparan koin, namun konsepnya serupa. Ditunggu yak.

KohVic