Kamis, 25 Juni 2015

Sebuah Tulisan Bioinformatika – Pencarian Similaritas Database (Part 3)

Hola lagi…

Setelah kemarin membahas tentang cara kerja salah satu program PSD yang paling banyak dikenal, kita akan lanjut ke program PSD lainnya. Nama program PSD tersebut adalah FASTA, yang diciptakan oleh William R. Pearson dan David J. Lipman. Hmm…ternyata fakta sejarah menunjukkan bahwa FASTA dibuat sebelum adanya BLAST, atau dengan kata lain FASTA merupakan program PSD paling awal yang pernah dibuat. FASTA dipublikasikan pada tahun 1988, dua tahun sebelum BLAST dipublikasikan oleh Oom Altschul dan kawan-kawan. Kalau sekarang teman-teman melihat publikasi pertama BLAST, kalian akan melihat David J. Lipman sebagai salah satu co-author di dalamnya.

Well, cukup untuk pelajaran sejarahnya. Sekarang mari kita masuk ke dalam topik. Bahasan kita pada tulisan ini adalah bagaimana cara kerja FASTA sebagai sebuah program PSD. Ternyata strategi yang digunakan oleh FASTA dalam pencarian similaritas cukup berbeda dari BLAST. Program pencarian ini menggunakan strategi hashing untuk mencari rangkaian pendek tanpa celah dengan panjang k yang cocok antar pasangan urutan. Rangkaian pendek ini disebut sebagai ktuples atau ktups yang mirip dengan kata pada BLAST. Strategi hashing sendiri merupakan salah satu teknik pemilahan objek ke dalam kategori tertentu berdasarkan prasyarat tertentu.

Secara keseluruhan, saia akan membagi cara kerja FASTA ke dalam tiga tahapan, yakni (i) identifikasi dan pemetaan ktups, (ii) seleksi ktups, dan (iii) penggabungan ktups. Secara garis besar, keseluruhan tiga tahapan ini mirip dengan teknik dynamic programming yang dipercepat (Gambar 2). Sebelum kita membahas tentang tiga tahapan tersebut, mari kita sejenak melihat tahapan identifikasi ktups yang menjadi titik awal sebelum proses pemetaannya. Tahapan identifikasi ktups dimulai dengan membandingkan dua buah urutan (urutan query dan urutan database) dan kemudian memasukkan posisi dari setiap residu nukleotida atau asam amino yang ada ke dalam tabel hash (Gambar 1). Selanjutnya, dari tabel hash tersebut kita dapat melihat residu apa saja yang memiliki selisih posisi yang sama. Kelompok residu dengan selisih posisi yang sama menandakan bahwa mereka terletak bersebelahan dan oleh karena itu jajaran keduanya pada posisi tersebut dapat diperoleh dengan memasukan sejumlah celah (gap). Nah setelah identifikasi selesai, kita akan mendapatkan sebuah jajaran pasangan urutan dengan sejumlah daerah dengan residu identik tanpa celah antar satu urutan dengan lainnya, inilah yang disebut sebagai ktups.

Gambar 1. Skema identifikasi ktups.
Normalnya, setiap pasangan urutan yang homolog pasti memiliki jumlah ktups yang jauh lebih banyak dibandingkan dengan pasangan yang tidak berkaitan sama sekali. Dengan kriteria ini, maka FASTA dapat menyaring kandidat urutan database mana yang berhubungan dengan yang tidak dengan cara memetakan ktups untuk seluruh pasangan urutan dan kemudian menyeleksinya berdasarkan ambang minimal panjang ktups tertentu (Gambar 2). Setelah tahap seleksi, hanya akan tersisa  ktups-ktups panjang yang akan dilanjutkan dengan tahap penggabungan ktups. Proses penggabungan ini menggunakan metode dynamic programming. Proses penggabungan ini relatif lebih cepat dibandingkan dynamic programming konvensional karena segmen pemisah antar dua ktups relatif pendek. Setelah semua ktups digabungkan kemudian akan dihitung skor similaritasnya dan kemudian di-ranking deh.

Gambar 2. Skema kerja FASTA

Jika dibandingkan, metode BLAST dan FASTA sama baiknya dalam melakukan pencarian similaritas. Perbedaan keduanya secara garis besar terletak pada tahap seeding, dimana BLAST menggunakan matriks skor sedangkan FASTA menggunakan strategi hashing, Dalam urusan kecepatan, BLAST lebih cepat dibanding FASTA karena tahapan seedingnya yang didasarkan pada sebagian kecil daerah di dalam pasangan urutan lebih efisien dibandingkan dengan membandingkan seluruh daerah antar pasangan urutan untuk dimasukkan ke dalam tabel hash. Namun demikian, perbandingan secara menyeluruh ini membuat FASTA lebih sensitif serta spesifik dalam memberikan kandidat urutan yang akan diteruskan ke tahap selanjutnya (seleksi dan penggabungan ktups).

Baik BLAST maupun FASTA menyajikan hasil dengan cara yang sama, yakni mengurutkan urutan database dari skor similaritas yang tertinggi hingga terendah. Namun demikian, selain daripada skor similaritas (atau hit) tersebut, terdapat parameter statistik lain yang membantu meyakinkan kita apakah urutan yang satu lebih mirip dengan yang lain secara signifikan. Well, parameter-parameter tersebut akan saia coba bahas pada tulisan berikutnya. Ditunggu yah :)

Salam,
KohVic

Tidak ada komentar: