Rabu, 22 Juli 2015

Sebuah Tulisan Bioinformatika – Pemodelan Statistik Urutan (Part 1)



Holaa…seperti yang saia janjikan, kali ini saia kembali dengan topik baru. Well, topik ini sebenarnya masih terkait dengan topik sebelumnya (pencarian similaritas database) karena salah satu aplikasinya adalah untuk pencarian tersebut. Nah pada tulisan ini saia ingin mengajak teman-teman semua untuk mengenal apa yang dinamakan sebagai pemodelan statistik urutan, bagaimana cara membuatnya, dan bagaimana aplikasinya. Oke, mari kita lanjutttt…

Saia akan memulai topik ini dengan hal yang umum dijumpai di dalam bioinformatika, yakni jajaran urutan banyak (multiple sequence alignment). Bayangkan sebuah kodisi dimana teman-teman memiliki sebuah jajaran dari sejumlah urutan. Nah jika saia minta untuk menjabarkan bagaimana pola yang terdapat pada jajaran tersebut, bagaimana teman-teman menjawabnya? Untuk lebih memperjelas serta menyamakan imajinasi, mari kita lihat pada Gambar 1. Pertanyaan yang saia ajukan barusan pasti akan dijawab dengan mudah jika yang teman-teman miliki adalah jajaran (a). Namun jika yang kalian miliki adalah jajaran (b), akan sedikit sulit menjawabnya. Well, walau saia telah menuliskan polanya yang berupa urutan konsensus, terdapat kekurangan di dalam pola yang ditulliskan tersebut. Kekurangannya adalah, dengan hanya mengandalkan urutan konsensus tersebut, kita kehilangan informasi mengenai frekuensi jenis residu (dalam hal ini nukleotida) pada setiap posisi di dalam masing-masing urutan. Lalu kenapa? Tetunya hal ini akan berakibat pada sensitivitas pencarian yang kecil sehingga berdampak pada pencarian database yang tidak menyeluruh atau dengan kata lain menghilangkan urutan-urutan yang berpotensi homolog dengan jajaran yang kita miliki.

Gambar 1. Pola urutan konsensus pada jajaran yang identik satu dengan lainnya (a) dan, yang lebih sering muncul pada kasus biologis, jajaran dengan mutasi pada beberapa posisinya (b).

Untuk mengatasi masalah di atas, sebuah cara alternatif yang disebut sebagai pemodelan statistik urutan dapat dilakukan. Pemodelan statistik urutan merupakan sebuah cara untuk menagkap dan mempertahankan informasi statistik yang terdapat di dalam sebuah jajaran. Nantinya, pemodelan ini akan menghasilkan profil urutan, yang merupakan model statitsik yang menjelaskan frekuensi residu nukelotida atau asam amino pada setiap posisi di dalam sebuah jajaran urutan. Dua metode yang digunakan untuk menghasilkan profil urutan ini adalah position-specific scoring matrices (PSSM) dan hidden Markov model (HMM). Pada tulisan ini saia akan memfokuskan pembahasan pada PSSM dan menyisakan HMM untuk part berikutnya.

Position-specific scoring matrices atau yang disingkat dengan PSSM dapat didefinisikan sebagai sebuah matriks berisi informasi mengenai probabilitas nukleotida atau asam amino pada setiap posisi di dalam sebuah jajaran urutan banyak. Dalam metode ini, kita mengkonstruksi sebuah matriks frekuensi (Ckj) yang mencatat frekuensi kemunculan setiap jenis residu (nukleotida atau asam amino) pada setiap posisi  dan kemudian mengkonversinya ke dalam matriks log-probabilitas (Mkj) PSSM yang berisi informasi probabilitas kemunculan residu tertentu pada posisi tertentu (Gambar 2). Nah bermodalkan matriks PSSM ini, kita dapat menghitung probabilitas kemunculan sebuah urutan sehingga nantinya kita dapat menentukan apakah sebuah urutan dapat dikatakan termasuk ke dalam kelompok jajaran urutan yang kita miliki atau tidak.

Gambar 2. Skema konstruksi matriks log-probabilitas PSSM. Keterangan: pj = probabilitas acak kemunculan sebuah residu (0,25 untuk nukleotida dan 0,05 untuk asam amino); Z = jumlah urutan. Rumus yang tertera didasarkan pada Gibskov et al. (1987) dan Hertz & Stormo (1999).

Sekarang kita coba aplikasikan matriks PSSM ini untuk sebuah kasus, yakni apakah urutan CCTTTTAA termasuk ke dalam jajaran urutan yang kita miliki atau tidak. Untuk menentukannya, kita perlu membandingkan probabilitas urutan query tersebut terhadap urutan dengan probabilitas tertinggi. Probabilitas tertinggi sebuah urutan merupakan susunan dari probabilitas tertinggi dari setiap posisinya. Dengan demikian, kita dapat dengan mudah menjumlahkan probabilitas tertinggi pada setiap posisi. Dengan cara ini, kita memperoleh urutan CCAATTTA memiliki probabilitas tertinggi, yakni 1,2 + 1,3 + 0,8 + 1,3 + 0,6 + 1,3 + 1,2 + 0,6 = 8,3. Nah dengan perhitungan yang sama, urutan query kita memiliki skor 1,2 + 1,3 + 0.2 + (-2,4) + 0,6 + 1,3 + (-0,8) + 0,6 = 2,0. Lantas, apakah nilai 2,0 ini membuat si urutan query diterima ke dalam persaudaraan urutan kita atau tidak? Jawabannya, bisa ya dan bisa juga tidak tergantung dari jenis urutannya. Sebagian kelompok urutan cukup beragam sehingga memiliki kisaran nilai probabilitas yang besar, namun sebagian juga memiliki kisaran  yang sempit. Namun dalam kasus ini kita pinjam saja aturan dari Harbison et al. (2004) yang menyatakan bahwa ambang batas penerimaan sebuah urutan adalah jika nilainya >60% dari nilai probabilitas tertinggi. Hal ini berarti ambang minimumnnya adalah 4,98. So, kesimpulannya? Err..sorry bro, the query is not accepted.

Setelah kita mempelajari semua ini, teman-teman pasti akan bertanya, lantas apa gunanya metode semacam ini? Well, dengan metode ini kita dapat melakukan pencarian similaritas database (PSD) tingkat lanjut. Yaa semacam level up dari PSD yang kemarin sudah dijelaskan lah. Pencarian similaritas semacam ini disebut juga sebagai pencarian berdasarkan profil (profile-based search). Ya tentu saja kita tidak harus membuat profil PSSM ini secara manual karena sudah ada program yang didedikasikan untuk itu. Perkenalkanlah Position-Specific Iterated BLAST atau disingkat PSI-BLAST, sebuah program persembahan NCBI GenBank yang didedikasikan untuk pencarian berdasarkan profil PSSM semacam ini.

Ingin tahu lanjutannya mengenai PSI-BLAST? Nantikan di part berikutnya yak. Saia rasa segini dulu, biar ga terlalu panjang tulisannya..hehehe. Enjoy the read!!

Salam,
KohVic

Pustaka
Gribskov, M., A. D. McLachlan, & D. Eisenberg. 1987. Profile analysis: detection of distantly related proteins. Proceedings of the National Academy of Sciences 84: 4355–4358.
Harbison, C. T., D. B. Gordon, T. I. Lee et al. 2004. Transcriptional regulatory code of a eukaryotic genome. Nature 431: 99–104.
Hertz, G. Z. & G. D. Stormo. 1999. Identifying DNA and protein patterns with statistically significant alignments of multiple sequences. Bioinformatics 15 (7): 563–577.

Selasa, 21 Juli 2015

Sebuah Tulisan Bioinformatika – Pencarian Similaritas Database (Part 4)



Kembali bersama KohVic di Bukan Tulisan Ilmiah dalam seri barunya yaitu Sebuah Tulisan Bioinformatika. Oke, kali ini saia berjanji akan menceritakan part terakhir dari judul Pencarian Similaritas Database (PSD) dan kemudian bersiap move on ke topik selanjutnya. Pada part ini saia akan bercerita tentang analisis lanjutan yang dilakukan setelah mendapatkan urutan hasil PSD. Mari kita ikuti tulisan berikut yak…hohoho

Pada umumnya hasil PSD akan ditampilkan sebagai sejumlah daftar urutan yang dianggap berhubungan dengna urutan query yang kita masukan di awal. Apa yang lantas kita lakukan setelah itu? Well kembali kepada tujuan awal, untuk apa kita melakukan PSD? Beragam jawaban yang muncul berkisar dari mencari urutan di dalam database yang mirip dengan urutan query kita (horeee urutan saia ada temennya), mencari informasi urutan query (anotasi), atau sekedar mengumpulkan urutan yang mirip untuk dilakukan analisis lebih lanjut. Apapun jawabanmu, semuanya menuntut pada satu hal yaitu pilihlah urutan yang “benar”.

Pada tulisan ini saia akan coba mengambil jalan tengah, yakni menjelaskan dari pihak user dan juga dari pihak database. Sebagai user, pilihan ini cukup mudah untuk diputuskan karena semua database telah dirancang untuk menampilkan urutan paling relevan di urutan teratas dalam daftar. Jadi pilihlah urutan pertama yang ditampilkan dalam daftar atau kumpulkan, katakanlah, 20 urutan pertama dari daftar. Well, gampang toh.

Di sisi lain, jika kita berada di pihak database, maka kita harus memastikan pihak user terfasilitasi seperti yang saia ceritakan di paragraf sebelumnya. Disini saia berbicara mengenai kualitas sebuah urutan hasil PSD. Hal yang ditanyakan disini adalah seberapa signifikankah kecocokan sebuah urutan hasil PSD terhadap urutan query? Kita dapat mendefinisikan kecocokan ini dalam dua pandangan, yakni tingkat similaritas urutan hasil PSD terhadap query dan probabilitas bahwa urutan hasil PSD tersebut tidak didapatkan secara kebetulan semata. Pandangan pertama dapat dijawab dengan mudah,  yakni dengan parameter persentase similaritas/identitas pasangan urutan. Semakin tinggi similaritas/identitas antara urutan query dengan urutan hasil PSD artinya semakin cocok. Pandangan kedua ini yang lebih sulit untuk dijawab dan umumnya disediakan tiga jenis parameter statistik untuk menjawabnya, yakni E-value, bit score, dan Z-value.

Parameter statistik yang pertama adalah E-value (expectation value). Parameter ini mengindikasikan probabilitas jajaran antara query dengan urutan database merupakan hasil dari kejadian acak. Nilai E-value dihitung menggunakan rumus , dimana m merupakan total residu di dalam database, n merupakan jumlah residu dalam urutan query, dan P merupakan probabilitas bahwa jajaran yang dihasilkan antara urutan query dengan database adalah hasil kejadian acak. Nilai E-value memberikan gambaran kemungkinan bahwa pasangan urutan diperoleh secara kebetulan. Dengan demikian, semakin rendah nilai E-value, maka semakin kecil kemungkinan bahwa pasangan urutan diperoleh secara kebetulan dan hal itu berarti kecocokan antar keduanya semakin signifikan. Berdasarkan rumus di atas, besaran nilai E-value sangat dipengaruhi oleh ukuran sebuah database. Seiring dengan pertumbuhan sebuah database nilai E-value akan mengalami peningkatan, sementara similaritas antar pasagan urutan tetap konstan. Hal ini akan menjadi masalah karena seiring dengan pertumbuhan sebuah database, maka pasangan urutan yang disimpulkan homolog akan "hilang" akibat peningkatan nilai E-value ini.

Sebuah alternatif lain parameter statistik kualitas pasangan urutan adalah bit score yang biasanya ditampilkan bersama dengan E-value. Pengukuran similaritas pasangan urutan menggunakan bit score tidak bergantung baik pada panjang urutan query atau ukuran sebuah database. Bit score merupakan normalisasi skor yang diekspresikan dalam bentuk bits (log basis 2) terhadap sebuah urutan hasil pencarian yang mendefinisikan besaran pencarian yang perlu dilakukan untuk mendapatkan sebuah urutan dengan skor yang sama baiknya. Sebagai contoh, jika bit score yang tertera adalah 30 maka hal ini berarti dibuatuhkan pencarian sebanyak 230 pasangan untuk mendapatkan urutan dengan skor yang sama  secara kebetulan. Dengan demikian, semakin tinggi nilai bit score, maka kecocokan antar pasangan urutan semakin signifikan.

Selain E-value dan bit score, terdapat juga parameter statistik lainnya yang bernama Z-score. Parameter Z-score ini hanya terdapat pada Fasta dan menggambarkan kisaran standar deviasi dari distribusi skor similaritas hasil pencarian database. Dikarenakan sebagian besar jajaran antara urutan database tidak berhubungan dengan query, tingginya nilai similaritas antar pasangan urutan akan memberikan standar deviasi yang besar terhadap distribusi skor similaritas. Hal tersebut berarti bahwa semakin tinggi Z-score maka signifikansi homologi dari pasangan urutan yang bersangkutan juga semakin tinggi.

Well, demikianlah penjelasan mengenai ketiga parameter tersebut. Penjelasan matematis ketiga parameter akan saia sertakan dalam link berikut:


Akhir kata, saia rasa ini adalah akhir dari tulisan dengan judul Pencarian Similaritas Database. Saia harap penjelasan ini bermanfaat baik untuk menghadapi kuliah, tugas akhir ataupun hanya sekedar ingin tahu saja. Berikutnya, saia akan kembali dengan topik lainnya, so ditunggu yak.

Salam,
KohVic