Minggu, 23 Desember 2012

Sebuah Tulisan Evolusi dan Filogeni: Bayesian Phylogenetic Inference (In Depth)

Hmm...sebenarnya ada sedikit kekhawatiran dalam diri saia ketika ingin menulis mengenai topik ini. Pertama adalah karena notes-notes yang berjudul Bayesian sudah pernah saia tulisan sebelumnya. Menuliskannya kembali kali ini sepertinya terkesan mengulang-ngulang saja. Kedua adalah, saia khawatir para pembaca setia dan tidak setia seri Bukan Tulisan Ilmiah saia akan segera bosan. Yasuda, saia putuskan untuk melakukan semacam impruvisasi dalam tulisan ini. Judulnya mungkin mirip, tapi saia akan fokus untuk memperdalam isi materinya. Selamat membaca ^^

A. Sebuah Awalan
Bayangkan sebuah pertandingan/kompetisi tahunan tingkat dunia dan selama 14 tahun terakhir ini dimenangkan oleh 7 negara yang sama. Nah sekarang pertanyaannya adalah pada pertandingan ke-15 yang katakanlah diselenggarakan sekarang ini, negara manakah yang akan menang? Seorang yang setia mengikuti pertandingan tersebut pastinya punya pegangan kuat tim mana yang diprediksi akan menang. Namun bagi kita-kita yang mungkin tidak tahu apa-apa mengenai pertandingan tersebut sebenarnya juga bisa menentukan pilihan tim yang cukup meyakinkan untuk menang. Oke, sekarang anggaplah peluang kemenangan hanya terdapat pada 7 negara tersebut dan peluang dimenangkan oleh negara lainnya dapat diabaikan. Dengan memperhatikan sejarah perolehan kemenangan selama 14 tahun terakhir yang sama pada ke-7 negara tersebut, kita dapat memperkirakan bahwa pada pertandingan ke-15 ini satu negara memiliki peluang untuk menang sebanyak 1/7.

Pertandingan tahun ke-15 pun dimulai dan kita pun (mencoba) menonton dengan antusias. Perkiraan pun semakin mendekati kenyataan dan tidak terasa 2 diantara 7 negara tersebut ternyata masuk final!! Nah pertanyaannya sekarang adalah apakah peluang menang kedua negara yang bertarung di final tersebut masih 1/7? Tentunya peluang tersebut sudah meningkat menjadi 1/2 bukan?

Yup, logika Bayesian memang dicirikan dengan kemampuannya untuk memperbarui distribusi kemungkinan sedemikian rupa sehingga mendekati kebenaran. Pada cerita di atas, peluang 1/7 pada tiap negara itu kita sebut sebagai "prior" atau dapat saia definisikan sebagai "perkiraan awal". Sementara itu, peluang 1/7 yang kemudian meningkat menjadi 1/2 setelah diperbarui dengan data-data terkini disebut sebagai "posterior" atau yang dapat saia definisikan sebgai "perkiraan kemudian". Bayesian phylogentic inference dirumuskan sesuai dengan teorema Bayes, yakni:

    Pr[tree|data] = (Pr[data|tree] x Pr[tree]) / Pr[data]

dimana tanda garis vertikal "|" dibaca sebagai "given". Saia langsung merujuk pada bahasa inggrisnya saja agar tidak membingungkan. Dengan demikian pembahasaan rumus diatas adalah: "probability of the tree given the data (posterior) equals the probability of the data given the tree (likelihood) times the probability of the tree and then divided by the probability of the data outcome". Konsekuensi dari pernyataan tersebut adalah bahwa untuk mendapatkan pohon filogenetik yang mencerminkan kekerabatan antar taksa yang sebenarnya (the posterior tree), kita harus mengintegrasikan probabilitas dari seluruh situs untuk sebuah pohon dan kemudian menjumlahkannya untuk keseluruhan kemungkinan pohon yang ada. Hal kedua mungkin untuk dilakukan karena kita tinggal hanya menjumlahkannya saja. Namun demikian, integrasi probabilitas situs antar sequence (Pr[data]) itu yang membuat masalah ini menjadi rumit.

B. Perbandingan antara Maximum Likelihood dengan Bayesian Inference
Tentunya para teman-teman pembaca masih ingat dengan tulisan saia sebelumnya yang menyinggung tentang metode Maximum Likelihood (ML). Kalau belum ingat atau belum baca, ya monggo ditengok. Nah membicarakan metode ML itu akan membawa kita kepada persamaan berikut ini:

    L = L(1) x L(2) x L(3) x ... x L(n)
    atau
    lnL = lnL(1) + lnL(2) + lnL(3) + ... + lnL(n)

Perlu kita ketahui bahwa nilai likelihood L per situs diestimasi untuk sejumlah internal nodes yang terdapat pada pohon yang menghubungkan seluruh taksa. Suatu pohon dengan n taksa mengandung n-2 internal nodes. Mengingat bahwa ada 4 kombinasi jenis nukleotida yang mungkin per situs dalam setiap internal nodes, maka terdapat 4^(n-2) kombinasi nukleotida per situs untuk pohon dengan n taksa. Err..kita baru membicarakan likelihood untuk satu situs bukan? dan tentunya nilai likelihood suatu pohon dihitung dari nilai likelihood setiap situsnya. Nah jumlah internal nodes tersebut, pendek kata, setara dengan kelipatan integral untuk menghitung probabilitasnya. Nah proses integrasi yang berlipat-lipat inilah yang menjadikan metode ML sangat memakan waktu dari segi komputasi bahkan dengan komputer cepat sekalipun.

Metode Bayesian inference, sekalipun menggunakan nilai likelihood L dalam teorema Bayes-nya, tidak secara eksplisit menghitung nilai tersebut. Hal ini dapat dicapai akibat penerapan algoritme Markov Chain Monte Carlo (MCMC) mengestimasi nilai likelihood dari suatu pohon dengan branch length dan model tertentu. Dengan demikian, proses dalam Bayesian inference menjadi lebih cepat di dalam pencarian pohon terbaik (best tree) akibat penerapan MCMC ini.

C. Tahapan Bayesian Inference
Inti dari Bayesian inference adalah analisis probabilitas. Jika likelihood didefinisikan sebagai probabilitas dari suatu data jika diberikan sebuah hipotesis (pohon), maka Bayesian inference ini menggunakan rasio likelihood tersebut untuk menentukan hipotesis (pohon) mana yang lebih mampu menjelaskan data sequence yang kita miliki. Proses MCMC akan menghasilkan serangkaian hipotesis dalam rantaian-nya (chain), masing-masing dengan nilai likelihoodnya. Nilai-nilai likelihood ini dimasukan ke dalam teorema Bayes seperti yang telah dituliskan di atas. Sebagai contoh, anggaplah kita telah memiliki dua nilai likelihood (L1 dan L2) untuk dua hipotesis dan ingin membandingkannya menggunakan teorema Bayes. Dalam perbandingan ini, state yang baru diperoleh (new state / L2) dibandingkan dengan state awalan (current state / L1) untuk diperoleh nilai rasio r nya:



Perhatikan bahwa masing-masing penyebut dari kedua persamaan (Pr[data]) saling menghilangkan satu sama lain sehingga nilai r setara dengan perbandingan kedua nilai likelihhod (L2/L1) dari kedua hipotesis. Jika nilai r lebih besar dari 1 yang berarti state baru memiliki nilai likelihood yang lebih tinggi daripada current state, maka state baru tersebut akan dijadikan sebagai current state yang baru. Apabila nilai r lebih kecil dari 1 maka state yang baru akan diterima dengan probabilitas tertentu. Apabila masih tidak mungkin untuk diterima, maka state baru tersebut ditolak dan current state tetap menjadi current state untuk dibandingkan lagi dengan state baru yang lain.

Algoritme MCMC akan terus menyampling pohon hingga mencapai keadaan dimana tidak diperoleh lagi perbedaan nilai likelihood yang signifikan antar satu pohon dengan lainnya. Nah pada keadaan ini dapat kita katakan bahwa MCMC telah mencapai titik konvergensi. Pada titik konvergensi inilah pohon dengan distribusi posterior didapatkan. Pada umumnya akan terdapat lebih dari satu pohon yang mewakili distribusi posterior ini dan pada akhirnya kita juga yang harus menentukan pohon mana dari sejumlah pohon posterior tersebut yang terbaik menurut kita.

D. Optimasi MCMC
Apabila penjelasan pada sub-bagian C membuat teman-teman pembaca agak bingung, saia akan mencoba menjelaskan dengan sedikit gambar (lihat gambarnya). Telah kita ketahui bahwa akan terdapat sejumlah besar pohon (dengan topologi dan branch length masing-masing) yang mungkin dibuat untuk sejumlah taksa. Masing-masing pohon tersebut memiliki probabilitasnya sendiri untuk menjadi pohon yang benar (likelihood). Nah jika saia mendistribusikan seluruh pohon tersebut dalam sebuah histogram katakanlah, dengan sumbu-Y menyatakan nilai likelihood, maka akan terlihat sebuah topologi distribusi probabilitas antar pohon satu dengan lainnya. Ada puncak yang rendah (likelihhod kurang optimal), ada lembah (nilai likelihood sangat rendah) dan ada juga puncak tertinggi (nilai likelihood optimal). 

Pohon dengan "puncak" tertinggi dalam histogram tersebut (memiliki nilai likelihood tertinggi) merupakan pohon posterior dan merupakan target kita. Nah sekarang permasalahannya adalah rantai MCMC mungkin bisa terjebak pada puncak non-optimal (disebut sebagai local optima) seperti contohnya terjebak di puncak C. Apabila current state likelihood sudah berada di local optima, pembandingannya dengan new state likelihood mungkin akan selalu dimenangkan oleh current state likelihood karena sudah mencapai daerah puncak. Nah pada situasi seperti inilah parameter-parameter tertentu perlu diperhatikan agar terhindar dari local optima.

Parameter pertama adalah mixing behavior. Secara sederhana, mixing behavior dapat disetarakan sebagai variansi antara satu nilai likelihood dengan lainnya. Variansi  yang terlalu kecil menggambarkan bahwa pencarian new state likelihood dilakukan dengan jarak yang begitu dekat dengan current state likelihood sehingga rasio r yang dihasilkan tidak berbeda secara signifikan. Dengan demikian dapat dikatakan bahwa rantai MCMC berjalan di tempat dan tidak berlanjut ke daerah posterior. Variansi yang terlalu besar pada umumnya menyebabkan new state likelihood sangat berbeda dengan current state likelihood sehingga nilai rasio keduanya lebih kecil dari 1. Sebagai akibatnya, chain akan terus berada pada titik current state likelihood aibat new state likelihood yang selalu ditolak. Dengan demikian, rantai MCMC diam ditempat. Kedua fenomena ini menyebabkan mixing behavior yang buruk. Variansi sedang (adequate) merupakan pertanda yang bagus dalam menandakan bahwa rantai MCMC kita berjalan menuju ke arah posterior.


Parameter kedua adalah Metropolis Coupling MCMC (atau MCMCMC / MC3). Parameter ini berfungsi untuk menghindarkan rantai MCMC kita terjebak pada local optima. Ketidakhadiran MC3 akan cenderung membuat rantai MCMC kita terhenti ketika sudah mencapai suatu puncak tanpa memperdulikan apakah itu hanya sekedar puncak (local optima) atau puncak tertinggi (global optima). Metropolis Coupling MCMC memungkinkan rantai MCMC kita untuk "melompat" dari satu puncak ke daerah lainnya, sehingga membuat rantai MCMC bisa terus mencari daerah posterior yang menjadi global optima.

E. Kesimpulan
Jadi, setelah menuliskan secara panjang x lebar x dalam dibagi jari-jari kuadrat dan diintegralkan, maka dengan ini saia simpulkan bahwa pada intinya  Bayesian Phylogenetic Inference mencari pohon terbaiknya (the best tree) berdasarkan distribusi probabilitas posterior diantara pohon-pohon yang ada. Pohon-pohon yang memiliki probabilitas posterior tertinggi diantara pohon lainnya dianggap merupakan serangkaian pohon yang dapat menggambarkan hubungan filogenetik taksa kajian dengan sama baiknya. Pada akhirnya, semua kembali kepada kita mengenai bagaimana menginterpretasikan distribusi probabiilitas posterior tersebut untuk menggambarkan hubungan kekerabatan antar taksa.

Regards,
KohVic

Further Readings:
- Ronquist, F., P. van der Mark, & J. P. Huelsenbeck. 2009. Bayesian phylogenetic analysis using MRBAYES. In The Phylogenetic Handbook: A Practical Approach to Phylogenetic Analysis and Hypothesis Testing 2nd Edition (P. Lemey, M. Salemi, & A-M. Vandamme eds.). Cambridge University Press: UK.

- Huelsenbeck, J. P., F. Ronquist, R. Nielsen, & J. P. Bollback. 2001. Bayesian Inference of Phylogeny and Its Impact on Evolutionary Biology. Science 294: 2310-2314.

- Yang, Z. & B. Rannala. 1997. Bayesian Phylogenetic Inference Using DNA Sequences: A Markov Chain Monte Carlo Method. Mol. Biol. Evol. 14 (7): 717-724.

- Rannala, B. & Z. Yang. 1996. Probability Distribution of Molecular Evolutionary Trees: A New Method of Phylogenetic Inference. J. Mol. Evol. 43: 304-311.

Minggu, 16 Desember 2012

Sebuah Tulisan Evolusi dan Filogeni: Phylogenetic Inference by Maximum Likelihood Method (In Depth)

Hai hai hai...kembali berjumpa dengan saia Chef Victor alias KohVic. Yaa lagi-lagi saia diprotes oleh salah satu pembaca karena lama tidak membuat tulisan terkait filogenetik. Jujur saja saia sampai saat ini belum ada ide untuk membuat tulisan dengan tema baru. Yaa silahkan pikir sendiri alasannya mengapa, bisa mulai dari sibuk mengerjakan tesis hingga sibuk cari teman kencan...hahahaha. Ehem..yaa dalam tulisan kali ini saia hanya ingin mencoba membahas secara lebih mendalam sebuah tulisan yang pernah saia buat pada serial Sebuah Tulisan Evolusi dan Filogeni yang lalu, yakni mengenai algoritme Maximum Likelihood (ML).

Pertama, ijinkan saia memaparkan alur pikiran saia dalam tulisan ini. Tulisan ini akan saia mulai dengan definisi konsep likelihood, kemudian dilanjutkan ke penerapan konsep likelihood tersebut dalam konteks filogenetik. Sederhana toh? Oke mari kita mulai dengan sebuah pertanyaan. Apakah itu tepatnya definisi kata "likelihood"? Well, secara intuitif ditambah sedikit pengalaman membuka kamus bahasa inggris tentunya kita akan menebak bahwa kata tersebut berhubungan dengan sesuatu yang cenderung (likely). Nah dalam konteks matematis, kecenderungan itu bisa dikatakan sepadan dengan peluang. Yap, konteks likelihood ini sangat berhubungan sekali dengan peluang. Nah peluang seperti apakah itu.

Mari saia jabarkan dengan satu contoh. Jika kita melempar koin sebanyak 100 kali dan mendapatkan bagian depan sebanyak 21 (d=21), kita dapat menuliskan bahwa peluang munculnya bagian depan adalah p=0,21. Sekarang saia tanya, berapakah peluang saia untuk mendapatkan hasil persis sama (d=21) dalam 100 lemparan koin berikutnya? Dalam hal ini kita dapat menghitungnya dengan persamaan distribusi binomial, yakni:

Prob[H=d] = (n, d) p^d . (1-p)^n-d

dimana: p^d merupakan peluang untuk mendapatkan bagian depan (d) dikalikan dengan peluang untuk tidak mendapatkan d. Karena koin hanya memiliki 2 sisi, maka peluang tidak mendapatkan d adalan 1-p. Nah dari persamaan di atas, kita dapat melihatnya dari dua sisi. Pertama, jika p diketahui maka kita dapat menghitung peluang untuk mendapatkan distribusi hasil yang sama (21 depan, 79 belakang) untuk 100 lemparan ke depan. Kedua adalah, kita telah mendapatkan distribusi hasil depan dan belakang dan nilai p inilah yang justru dicari. Konteks kedua inilah yang dinamakan sebagai likelihood, yakni menghitung probabilitas dari suatu kejadian yang sudah terjadi (probability of the known event) atau sering disebut sebagai reverse probability.

Nah dalam konteks filogenetik, penerapan konsep likelihood ini dijabarkan dengan hipotesis (topologi pohon, branch length, dan model evolusi) seperti apa yang memiliki likelihood terbesar untuk menghasilkan sequence alignment yang kita miliki. Metode ML termasuk ke dalam salah satu metode character-based dengan fungsi optimality search criterion. Artinya adalah metode ini didasarkan pada suatu model evolusi tertentu (JC69, K80, TN93, GTR, dsb) untuk menganalisis likelihood setiap topologi pohon dari setiap situs nukleotida yang ada pada sequence alignment yang kita miliki. Jadi, dalam metode ML kita perlu memasukan model evolusi dan nantinya algoritme ML terebut yang menentukan pohon seperti apakah yang paling dapat 'menjelaskan' sequence alignment yang kita miliki berdasarkan model evolusi tersebut. Hal ini berarti bahwa perbedaan model evolusi yang digunakan dapat mengakibatkan perbedaan pohon yang didapatkan. Suatu pohon ML yang dihasilkan dapat dibandingkan satu sama lain berdasarkan nilai Maximum Likelihood Estimate (MLE) nya. Nilai MLE yang lebih besar menandakan bahwa pohon tersebut dapat menjelaskan sequence alignment kita dengan lebih baik.

Nah sekarang, bagaimana tepatnya tahapan dalam pembuatan pohon ML? Saia akan mencoba menjelaskannya dengan menggunakan 4 taxa/OTU. Berikut adalah sequence alignment untuk ke-4 OTU tersebut:

OTU 1    = AACGCCTTT...N
OTU 2    = AACGCGTTA...N
OTU 3    = AACCAGTTT...N
OTU 4    = AACCGGTTT...N

Sekarang coba lihat situs kelima. Disana secara berturut-turut OTU 1, 2, 3, dan 4 memiliki nukleotida C, C, A, dan G. Nah dengan contoh situs ke-5 ini metode ML merekonstruksi kekerabatan keempat OTU dengan membuat sebuah pohon unrooted dan kemudian memperhitungkan probabilitas nukleotida ancestor (5 & 6) yang menghasilkan state nukleotida seperti yang teramati sekarang ini.
(1)C--+            +--A(3)
           (5)----(6)
(2)C--+           +--G(4)

Kita ketahui bahwa ada 4 jenis nukleotida, yakni A, T, G, dan C. Dengan demikian, jumlah kombinasi nukleotida untuk dua ancestral state tersebut ada 16 (AA, AG, AC, AT...):
(1)C--+            +--A(3)  |  (1)C--+            +--A(3)  | (1)C--+            +--A(3)  |  (1)C--+            +--A(3)
           (A)----(A)            |            (A)----(T)              |           (A)----(C)             |            (A)----(G)
(2)C--+           +--G(4)   |  (2)C--+           +--G(4)   | (2)C--+           +--G(4)   |  (2)C--+         +--G(4) ....

Nah probabilitas dari seluruh kombinasi ini dihitung dengan bantuan data sequence alignment yang ada dan kemudian diakumulasi menjadi nilai likelihood untuk situs nomor 5 (L(5)). Selesai? Tentu saja belum. Metode ML akan menghitung nilai likelihood untuk satu pohon berdasarkan seluruh situs dalam alignment. Dengan demikian nilai likelihood (L) dari satu pohon dirumuskan dengan:

L = L(1) x L(2) x L(3) x ... x L(n)     dengan 1-n = jumlah situs dalam sequence alignment

Pada umumnya nilai L ini begitu kecilnya sehingga dinyatakan dalam bentuk logaritmik (lnL). Dengan demikian, rumusnya menjadi:

lnL = lnL(1) + lnL(2) + lnL(3) +...+ lnL(n)   dengan 1-n = jumlah situs dalam sequence alignment

Oke, sekarang kita telah mendapatkan nilai likelihood L untuk SATU pohon. Selesai? hahaha...tentu saja BELUM. Perlu kita ingat bahwa jumlah kandidat pohon untuk sejumlah OTU itu dirumuskan dengan:

N(U) = (2n-5)! / 2^n-3 . (n-3)! dengan n = jumlah OTU/taxa

Bingung? yaa gambaran mudahnya begini saja. Pada tingkat 4 OTU ada 3 kandidat pohon yang mungkin dibuat [(AB;CD), (AC;BD), & (AD);(BC)]. Nah meningkat ke 10 OTU akan ada 2.027.025 dan pada 20 OTU akan ada 221.643.095.476.699.771.875 kandidat pohon! Cukup banyak bukan? Nah misalnya kita menggunakan metode ML untuk merekonstruksi kekerabatan 20 OTU, itu artinya perhitungan nilai MLE harus dilakukan terhadap total sekitar 2x10^20 pohon tersebut. Komputer cepat pada saat ini pun akaan kewalahan jika disuruh hal seperti itu.

Nah lalu bagaimana solusinya? Saat ini ada dikembangkan 3 metode untuk evaluasi cepat dalam mencari pohon ML tersebut. Metode tersebut adalah (1) Exhaustive Search, (2) Branch & Bound Method, dan (3) Heuristic Approach. Metode Exhaustive Search telah saia jelaskan sebelumnya, yakni membuat seluruh kemungkinan topologi pohon dan mengevaluasi serta membandingkan nilai MLE antar satu pohon dengan yang lain. Metode ini menjamin bahwa pohon ML optimum akan didapatkan, namun demikian butuh waktu yang lama dan metode ini hanya efektif untuk rekonstruksi maksimal 10 OTU.

Ketika rekonstruksi melibatkan 12-25 OTU, maka metode Branch & Bound diterapkan menggantikan Exhaustive Search. Metode ini pada dasarnya mengevaluasi seluruh kemungkinan pohon namun juga memotong jalur rekonstruksi pohon ketika dipastikan bahwa pohon tersebut pastinya memiliki nilai MLE yang lebih rendah. Pemotongan jalur rekonstruksi ini dapat menghemat sebagian waktu komputasi, sehingga memungkinkan metode Branch & Bound cukup efektif hingga 25 OTU. Tahapannya adalah dengan merekonstruksi 1 pohon awal (initial tree) dari 3 OTU hingga n-OTU. Setiap penambahan OTU ke dalam pohon (growing tree) akan diestimasi nilai MLE nya dan terus demikian hingga mencapai 1 pohon lengkap (full tree). Selanjutnya, metode tersebut akan mengulang rekonstruksi dari tahapan 3 OTU. Namun kali ini nilai MLE pada penambahan OTU ke-4 akan dibandingkan dengan nilai MLE pada initial tree. Apabila nilai MLE nya lebih rendah, maka jalur rekonstruksi tersebut tidak akan dilanjutkan dan demikian sebaliknya.

Nah sekarang, bagaimana jika kita ingin merekonstruksi filogeni dengan OTU > 25? Dikatakan bahwa metode Branch & Bound kurang efektif jika diterapkan pada lebih dari 25 OTU. Pada kasus ini pencarian optimal ML tree akan diserahkan pada algoritme berbasis Heuristic Approach. Inti dari algoritme ini adalah berbasis sampling, yakni hanya menggunakan sebagian kandidat pohon dari total pohon yang mungkin direkonstruksi. Berbagai macam algoritme berbasis Heuristic Approach telah dikembangkan, diantaranya meliputi Stepwise Addition, Star Decomposition, dan Branch Perturbations. Saat ini algoritme yang paling umum digunakan adalah berbasis Branch Perturbations, yang selanjutnya terbagi lagi menjadi 3, yakni (1) Nearest Neighborhood Interchange (NNI), (2) Subtree Prunning and Regrafting (SPR), dan (3) Tree Bisection and Reconnection (TBR). Em, saia rasa terlalu panjang untuk membahasnya satu per satu, tapi saia akan kemukakan logika umumnya. Intinya adalah metode Branch Perturbation ini akan merekonstruksi sebuah pohon dan mengestimasi nilai MLE-nya untuk dijadikan sebagai patokan awal. Selanjutnya topologi pohon akan dirubah sedemikian rupa dan kemudian nilai MLE diestimasi kembali. Nilai MLE yang lebih tinggi menandakan bahwa topologi pohon tersebut lebih mampu menjelaskan data dan akan disimpan sebagai patokan yang baru. Branch Perturbation ini akan terus dilakukan hingga tidak didapatkan pohon dengan nilai MLE yang lebih tinggi lagi. Nah perbedaan antara NNI, SPR, dan TBR terletak pada jumlah kombinasi Branch Pertubation yang dapat dibuat. Sebagai hitungan kasar, apabila dengan NNI dapat menghasilkan n kombinasi sampel, maka SPR akan menghasilkan kuadrat-n, dan terakhir TBR akan menghasilkan kubik-n kombinasi sampel. Hmm...TBR kedengarannya cukup meyakinkan bukan. Namun jangan lupa bahwa semakin banyak kombinasi yang dibuat itu berarti waktu komputasi yang semakin lama loh...hehehe

Oke deh, sekian dulu mengenai Maximum Likelihood nya. Semoga dengan tulisan iseng-iseng saia ini kita jadi lebih bisa mengerti dan memahami mengenai algoritme Maximum Likelihood yang terkenal.....lama akan waktu komputasinya itu.

Regrads,
Victor Apriel (KohVic)

Kamis, 06 September 2012

Sebuah Tulisan Evolusi dan Filogeni: Estimating Selection Pressures on Molecular Sequences (In Depth) Part III

Menikmati kesendirian di kamar kost tanpa tau harus ngapain, jadi begini deh pelariannya. Ehem....tulisan ini merupakan sambungan dari part II kemarin yang dengan sangat terpaksa harus saia batasi hingga estimasi laju tekanan seleksi antar branch karena akan terlalu panjang bila dilanjutkan. Nah dalam part III ini saia akan meneruskannya dengan estimasi laju tekanan seleksi antar site dalam sequence alignment. Selamat menikmati ^^/

Estimasi laju tekanan seleksi pada sequence molekular dapat dipandang sebagai usaha untuk menjawab apakah biomolekul pembawa informasi genetik, yang dalam hal ini adalah DNA, mengalami evolusi secara netral? Kata "netral" yang dimaksud disini adalah tanpa dipengaruhi oleh proses adaptasi terhadap seleksi alam. Teman-teman semua tentunya masih ingat dengan empat pertanyaan yang diajukan pada part I bukan. Nah hingga sekarang ini kita telah menjawab pertanyaan ke-1 dan 2. Pada tulisan ini, saia akan mencoba mengajak teman-teman pembaca untuk menjawab pertanyaan ke-3, yakni estimasi jenis dan laju substitusi antar kodon dalam suatu alignment untuk mencari kodon target manakah yang mengalami proses seleksi. Sebelum kita memasuki inti cerita, saia ingin mengingatkan kembali bahwa kata 'seleksi' ditujukan pada kodon yang mengalami substitusi non-synonimous (beta). Hal ini didasarkan pada pandangan bahwa perubahan suatu asam amino yang disandi oleh kodon yang bersangkutan merupakan bentuk adaptasi organisme untuk menghadapi seleksi alam.

Berdasarkan definisi 'seleksi' di atas, seringkali kita berusaha mencari jenis seleksi yang mengarah pada keberagaman. Hal demikian disebut postitive selection atau diversifying selection; dan diindikasikan dengan nilai omega >1.  Dengan asumsi bahwa organisme (OTU) yang diperbandingkan memiliki keseragaman laju substitusi synonimous antar branch (alfa[b] =1) dan antar site (alfa[s] = 1), maka seleksi positif dapat langsung tergambarkan oleh nilai beta[b] > 1 dan beta[s] > 1.  Secara umum, pengujian bahwa beta[b] > 1 lebih ditujukan untuk mendeteksi ada/tidaknya perbedaan nilai beta pada setiap branch, sedangkan pengujian beta[s] > 1 ditujukan untuk mencari kodon target yang diseleksi.

Beberapa metode telah dikembangkan untuk pengujian ini. Metode-metode tersebut didasarkan pada uji signifikansi dua hipotesis (H0 dan HA) terhadap nilai beta[s] pada masing-masing kodon dalam sequence alignment. Metode-metode tersebut meliputi:
1. Random Effect Likelihood (REL)
2. Fixed Effect Likelihood (FEL)
3. Single Likelihood Ancestor Counting (SLAC) atau Counting Heuristics

1. Metode Random Effect Likelihood (REL)
Metode ini didasarkan pada asumsi bahwa distribusi alfa[s] dan beta[s] dapat di representasikan pada suatu fungsi f. Berdasarkan parameter-parameter yang terdapat dalam fungsi f tersebut, maka seseorang dapat menghitung nilai likelihood setiap fungsi f yang diajukan terhadap data kodon yang dimiliki. Nilai likelihood ini kemudian digunakan dalam uji signifikansi mengenai ada/tidaknya variasi laju tekan seleksi terhadap kodon serta memperkirakan kodon mana yang diseleksi tersebut.

Bayangkan ada sebuah sequence alignment dengan kodon C = 1....s yang masing-masing kodon memiliki nilai alfa[s] dan beta[s]. Metode REL ini akan menekankan bahwa alfa[s] dan beta[s] mengikuti distribusi D yang memiliki sejumlah kategori laju d. Setiap kategori laju d memiliki nilai alfa[d] dan beta [d] yang sudah ditentukan dan probabilitas bahwa alfa[s] = alfa[d] serta beta[s] = beta[d] ditentukan oleh nilai pd, dimana total nilai pd untuk seluruh kategori d adalah 1.

Salah satu contoh aplikasi REL misalnya model M8 pada program Phylogenetic Analysis Using Maximum Likelihood (PAML) buatan Oom Ziheng Yang. Model M8 memiliki D dengan 10 kategori d. Kesepuluh kategori ini masing-masing memiliki nilai alfa[d] = 1 dan sepuluh varian nilai beta[d] yang menghasilkan omega[d] > 1. Dengan demikian, seluruh varian nilai beta[d] haruslah >1. Selanjutnya, model M8 ini diujikan terhadap setiap codon site c pada dataset alignment. Perhitungan ini akan menghasilkan site-by-site likelihood (L) untuk setiap kodon c sehingga kita dapat melihat nilai omega dan nilai likelihood (L)untuk setiap site kodon. Setelah itu, nilai-nilai L ini diuji signifikansinya dengan LRT dan signifikansi suatu site di dalam suatu kodon menandakan bahwa site tersebut diseleksi.

Metode REL ini cukup sensitif dalam penelusuran proses seleksi. REL dapat mendeteksi sebuah diversifying selection hingga tingkat omega = 1,1; suatu hal yang tidak dapat dilakukan oleh metode fixed effect likelihood (FEL; akan dijelaskan kemudian). Namun demikian, metode REL juga memiliki kelemahan. Kelemahan pertama adalah pemilihan kategori d dilakukan secara subjektif (a priori), sehingga sangat mungkin untuk suatu nilai alfa[s] dan beta[s] tidak tercakup dalam kategori alfa[d] dan beta[d] yang ditentukan.

2. Metode Fixed Effect Likelihood (FEL)
Metode FEL menggunakan estimasi langsung nilai alfa[s] dan beta[s] dari dataset dan tidak melakukan estimasi distribusi kedua nilai dalam alfa[d] dan beta[d] seperti halnya pada metode REL. Metode FEL dijabarkan dalam dua tahap. Tahap pertama adalah metode ini mengestimasi parameter-parameter substitusi berdasarkan dataset alignment yang ada, seperti nucleotide substitution bias, codon frequency, dan branch length. Kemudian pada tahap kedua, metode FEL menganggap bahwa setiap site pada kodon (ingat ada 3 site dalam 1 kodon) merupakan hasil substitusi yang independen antar satu dengan lainnya. Dengan demikian, setiap substitusi pada situs di dalam suatu kodon tersebut akan menghasilkan nilai alfa dan beta yang ditulis sebagai alfa[c] dan beta[c].

Selanjutnya, uji signifikansi dilakukan dengan menguji dua buah hipotesis terhadap setiap nilai alfa[c] dan beta[c] pada masing-masing kodon, dimana H0: alfa[c] = beta[c] dan HA: tidak demikian. Hipotesis H0 dan HA pada setiap kodon kemudian diuji dengan LRT satu per satu untuk dilihat signifikansinya. Kodon yang memiliki nilai LRT yang signifikan disimpulkan sebagai kodon yang terseleksi dan situs yang terseleksi dalam kodon pun dapat ditentukan.

Metode FEL memiliki keunggulan bahwa distribusi laju substitusi (alfa[c] dan beta[c]) ditentukan berdasarkan data dan tidak secara a priori seperti halnya pada REL. Kelemahan metode FEL adalah bahwa metode ini hanya dapat diterapkan pada alignment dengan minimal 30 sequence di dalamnya. Selain itu, metode FEL juga hanya dapat diterapkan pada filogeni organisme yang hubungan kekerabatannya relatif dekat atau dengan kata lain yang proses evolusinya belum cukup lama.

3. Metode Single Likelihood Ancestor Counting (SLAC) atau Counting Heuristics
Metode SLAC dilakukan dalam empat tahapan, yakni (i) rekonstruksi ancestral kodon sequences (sequence yang berada pada internal branch) menggunakan parsimony; (ii) penentuan alfa[c] dan beta[c] dengan mengacu pada ancestral sequence terhadap sequence-sequence yang terhubung dengannya; (iii) penentuan nilai substitusi (alfa/beta) rerata yang nantinya akan dijadikan sebagai nilai expected substitution rate under neutral model; dan (iv) uji signifikansi antara nilai alfa[c] dan beta[c] yang teramati (observed) terhadap nilai substitusi rerata (expected). Jika expected > observed, maka dapat dikatakan ada seleksi positif.

Estimasi variasi laju tekanan seleksi menggunakan metode SLAC sangat cepat bahkan dengan dataset yang besar. Namun demikian metode SLAC memiliki banyak asumsi yang diterapkan. Pertama, ancestral codon sequences (tahap i) dianggap merupakan data yang sebenarnya, padahal hal tersebut merupakan hasil proses rekonstruksi yang mungkin mengandung error. Kedua, proses penghasilkan ancestral codon sequence menggunakan teknik parsimony yang mengabaikan adanya multiple base substitution.

Selanjutnya, metode mana yang akan kita pilih untuk estimasi variasi laju tekanan seleksi pada sequence molekular? Well, Oom Kosakovsky Pond dan Oom Frost telah membuktikan bahwa ketiga metode menghasilkan estimasi yang mirip satu sama lain jika analisisnya dilakukan terhadap dataset yang besar. Masalah kemudian muncul ketika kita hanya memiliki dataset yang sedikit, baik dari segi jumlah sequence maupun panjang alignment. Pada kondisi tersebut disarankan bahwa melakukan ketiga metode dan kemudian mencari kongruensinya adalah cara yang tepat.

Oke, kira-kira demikianlah apa yang dapat saia ceritakan. Pada part selanjutnya, yang juga akan menjadi part terakhir judul ini, saia akan menceritakan mengenai perbandingan analisis tekanan seleksi pada dua gen. Ditunggu yax..heheh

Regards,
Victor Apriel

Minggu, 02 September 2012

Sebuah Tulisan Evolusi dan Filogeni: Estimating Selection Pressures on Molecular Sequences (In Depth) Part II

Terjebak di warnet yang ramai dan tidak sejuk memang menghambat proses pembuatan tulisan secara signifikan, apalagi kalau itu adalah tulisan-tulisan untuk artikel Bukan Tulisan Ilmiah. Yasudah, toh kenyataannya saia sidah terlanjur terjebak disini, jadi saia paksakan untuk menulis saja deh. Pada tulisan sebelumnya kita telah mengenal model evolusi/substitusi kodon, estimasi laju substitusi synonimous dan non-synonimous. Rasio antara kedua laju substitusi tersebut akan menggambarkan jenis seleksi yang berperan terhadap target gen yang dianalisis. Pada tulisan kali ini sai akan menyinggung mengenai estimasi variasi laju tekanan seleksi antar branch dan antar site pada pohon filogenetik.

Mengapa ada variasi laju tekanan seleksi antar branch (organisme/kelompok organisme) dan antar site (kodon pada alignment sequence)? Ya hal itu saia rasa memang wajib ada mengingat beberapa sebab yang telah dikemukakan pada tulisan sebelumnya:
1. Laju evolusi terbukti berbeda antar organisme seperti yang tergambarkan dari perbedaan branch length yang menghubungkan antar organisme/OTU. Hal ini dapat dipandang sebagai ada perbedaan dalam tekanan seleksi terhadap setiap organisme/branch yang mungkin terekam dalam sequence-nya.
2. Mutasi merupakan salah satu faktor utama dalam evolusi, maka perbedaan laju mutasi pada tingkat nukleotida merupakan penyebab utama perbedaan laju evolusi dan pada akhirnya tekanan seleksi baik pada tingkat sequence DNA maupun tingkat organisme.

Diangkatnya tema ini bermula dari sebuah pertanyaan apakah ada perbedaan tekanan seleksi antar organisme atau antar kodon dalam sebuah sequence dalam sebuah pohon filogenetik. Solusi atas pertanyaan tersebut dapat dijawab dengan tahapan berikut: pengasumsian model sebagai hipotesis dan pengujian hipotesis. Pada paragraf ini, saia akan mencoba membahas variasi tekanan seleksi antar branch terlebih dahulu. Analisis tekanan seleksi antar brach dapat digambarkan dalam 3 model/hipotesis, yakni:
1. Local/Free Ratio Model, mengasumsikan nilai omega (beta/alfa) berbeda pada semua branch. Oleh karena itu, model ini mengestimasi nilai omega untuk masing-masing branch.
2. Global/Single Ratio Model, mengasumsikan satu nilai omega untuk semua branch sehingga model ini hanya perlu mengestimasi satu nilai omega rerata dari seluruh branch.
3. Intermediate Complexity Model, mengasumsikan adanya kesamaan nilai omega antar branch dalam clade yang sama. Model ini dapat dikatakan sebagai pertengahan antara local dengan global model, karena hanya mengestimasi omega per sejumlah clade.

Berdasarkan ketiga model ini, kita kemudian melakukan uji signifikansi. Global ratio model yang tidak mengasumsikan adanya perbedaan laju tekanan seleksi merupakan model yang cocok untuk dijadikan sebagai hipotesis awal (H0) dan local atau intermediate model merupakan hipotesis alternatifnya (HA). Uji signifikansi kedua hipotesis ini dilakukan dengan metode Likelihood Ratio Test (LRT) yang didasarkan pada nilai likelihood atas kedua model yang diperbandingkan. Sebagai pengingat, nilai likelihood mencerminkan besarnya kemungkinan suatu model menghasilkan data yang dimiliki. Model yang semakin cocok terhadap data akan memiliki nilai likelihood (L) yang semakin tinggi. Bab Memilih Model Evolusi pada Serial Tulisan Evolusi dan Filogeni dapat memberikan gambaran yang lebih rinci mengenai LRT ini. Apabila dalam pengujian signifikansi tersebut HA > H0, maka H0 ditolak atas HA. Perlu diingat juga bahwa hal ini tidak berarti HA merupakan jawaban terbaik, namun bahwa data yang dimiliki tidak cocok untuk dapat diterangkan oleh H0 jika dibandingkan dengan HA.

Kelemahan uji LRT ini adalah bahwa pengujian ini dapat memberikan kesimpulan yang salah apabila heterogenitas laju tekanan seleksi sangat kuat antar branch. Kesimpulan mengenai adanya variasi laju tekanan seleksi mungkin tidak akan tercapai apabila hanya sedikit branch yang mengalami tekanan seleksi yang sangat kuat akibat tertutup oleh branch lainnya (background) yang tidak mengalami tekanan seleksi yang kuat. Kedua, kesimpulan yang ditarik dari uji signifikansi ini adalah jawaban atas pertanyaan "apakah ada variasi laju tekanan seleksi antar branch?" dan bukan "dimanakah variasi laju tekanan seleksi itu terjadi antar branch?". Namun demikian, seringkali justru kita menginginkan jawaban atas pertanyaan kedua daripada pertama. Hal tersebut dapat dicapai dengan estimasi nilai omega pada setiap branch (terminal dan internal) dan kemudian melakukan uji signifikansi pada setiap kombinasi pasangan branch yang ada dalam suatu pohon (sebagai gambaran, sebuah pohon dengan 10 OTU memiliki 10 branch terminal dan 8 branch internal). Pengujian LRT secara lokal ini pun memiliki kelemahan karena pembandingannya yang bersifat pasangan (pairwise) dan tidak mempertimbangkan branch lainnya, sehingga mungkin sekali untuk menyimpulkan hal yang salah.

Setelah membanding-bandingkan antar model dan melakukan uji LRT, sekarang mari kita mencoba melirik hal lainnya yang terkait dengan intermediate complexity model. Pada intermediate complexity model, pengujian seluruh branch (B) seperti halnya pada local model direduksi menjadi hanya beberapa branch saja (F), dimana F < B. Namun demikian, branch manakah yang harus dipilih untuk pengujian ini? Pada umumnya ada dua pendekatan yang dilakukan oleh orang-orang yang mengkaji hal ini, yakni pemilihan secara a priori dan pemilihan berdasarkan hasil uji sebelumnya.

Pemilihan branch secara a priori dapat dilakukan berdasarkan informasi-informasi yang terkait dengan data. Salah satu contohnya apabila kita ingin membandingkan adanya perbedan laju tekanan seleksi pada virus HIV yang menginfeksi berbagai mamalia, maka kita dapat berinisiatif bahwa tekanan seleksi pada sequence HIV manusia kemungkinan lebih besar dibandingkan dengan mamalia lainnya seperti kera atau babi. Hal ini dapat disebabkan oleh penggunaan obat anti-retroviral yang dalam hal ini berperan sebagai agensia penyeleksi pada strain virus HIV manusia. Dengan latar belakang tersebut kita dapat memilih dan memilah setiap branch yang ada menjadi kelompok branch tertentu, menghitung nilai omega (branch omega), dan kemudian menguji signifikansi nilai-nilai omega kelompok branch tersebut dengan LRT. Hasil yang signifikan menyimpulkan adanya perbedaan tekanan seleksi yang terjadi antar dua branch yang dibandingkan.

Pemilihan branch berdasarkan hasil pengujian sebelumnya disebut juga dengan data-driven branch selection atau data dredging. Ini berarti bahwa pemilihan branch dilakukan setelah dilakukan estimasi nilai omega terlebih dahulu pada setiap branch dan berdasarkan hasil tersebut baru dipilih kelompok omega yang berbeda secara signifikan untuk kemudian diujikan kembali. Perlu diketahui bahwa teknik seperti ini sebaiknya dihindari karena hipotesis yang disusun berdasarkan dataset dan kemudian diujikan kembali menggunakan dataset yang sama akan selalu menghasilkan bias (terlihat signifikan padahal sebenarnya tidak demikian).

Salah satu cara yang cukup objektif untuk branch (B) ke dalam kelompok jenis model (C) dapat dilakukan dengan metode Stirling Numbers S(C; B), yakni jumlah cara untuk memasukan branch B ke dalam salah satu model C. Nilai Stirling Numbers meningkat dengan cepat, sehingga pengujian LRT yang membandingkan per dua buah model (nested model) H0 dan HA kurang dapat diandalkan. Sebagai alternatif, pembandingan model dilakukan dengan metode teknik skoring menggunakan Small Sample Akaike Information Criterion (AICc). Teknik ini memperhitungkan nilai likelihood, jumlah site alignment, dan model parameter. Skor tinggi, yang berarti modelnya cocok, direpresentasikan dengan nilai likelihood sebesar mungkin namun dengan jumlah parameter yang sekecil mungkin.

Oke, akhir dari cerita. Cukup panjang juga yak. Dari tulisan ini saia dapat menyimpulkan bahwa pengujian mengenai ada atau tidaknya perbedaan laju tekanan seleksi antar branch dilakukan secara statistik menggunakan LRT. Namun demikian, pengujian ini harus didukung  pemilihan hipotesis serta branch/kelompok branch dengan dasar yang jelas. Pemilihan model atau branch yang salah dapat mengakibatkan konstruksi simpulan yang salah juga mengenai ada/tidaknya perbedaan laju tekanan seleksi tersebut. Next time, masih dengan judul yang sama, saia akan coba membahas lebih mendalam lagi hingga pada estimasi perbedaan laju tekanan seleksi antar situs dalam sequence alignment. Ditunggu yax ^^

Regards,

Victor Apriel

Rabu, 29 Agustus 2012

Sebuah Tulisan Evolusi dan Filogeni: Estimating Selection Pressures on Molecular Sequences (In Depth) Part I

Hai hai hai...jumpa lagi bersama saia Chef Victor dengan segala kalimat pembuka tulisannya yang terus berulang-ulang dan nampak membosankan...hahaha. Okeh to the point sajah, dalam tulisan kali ini saia ingin mencoba melunasi 'hutang' saia terkait dengan tulisan sebelumnya. Pada tulisan sebelumnya terlihat bahwa saia terkesan begitu polosnya dan belum dapat mengerti dan memahami keseluruhan tulisan dari sebuah bab buku The Phylogenetic Handbook yang berjudul "Estimating selection pressures on molecular sequences". Nah kali ini, tepat 16 hari sesudah postingan tulisan tersebut, saia ingin kembali mencoba pemahaman saia dengan mencoba menceritakannya kepada kalian-kalian ini. Kalau kalian mengerti, maka itu artinya saia berhasil. Namun apabila kalian belum mengerti, itu artinya kalian yang kurang belajar...hahaha. Yasuda, selamat menikmati ^^

Tulisan ini akan saia mulai dengan 4 buah pertanyaan terkait peranan tekanan seleksi terhadap sequence molekular beserta jawaban singkatnya untuk memandu kita dalam menelusuri keseluruhan tulisan ini:
1. Apa bukti adanya seleksi terhadap sebuah gen? Kita dapat menentukan ada atau tidaknya seleksi dengan mengukur laju substitusi non-synonimous (substitusi nukleotida yang berakibat tergantinya asam amino yang di-translasi; beta) terhadap laju substitusi synonimous (substitusi nukleotida yang tidak mengganti asam amino yang di-translasi; alfa). Adanya seleksi dapat ditentukan dengan rasio kedua laju ini (beta/alfa = omega), yakni omega > 1 atau omega < 1.

2. Kapankah seleksi terjadi? Kita dapat mengukur variasi nilai omega antar cabang (branch) yang ada pada pohon filogenetik. Dengan demikian kita dapat menyimpulkan kapan suatu seleksi berlangsung. Estimasi waktu ini dapat diindikasikan oleh lokasi branch di dalam pohon yang kemudian di estimasi waktunya dengan analisis molecular clock).

3. Dimanakah letak tejadinya seleksi? Kita dapat mendeteksi terjadinya seleksi pada gen dengan menganalisis laju subtitusi syn/non terhadap setiap kodon yang ada pada alignment sequence molekular dan kemudian mentarget kodon mana yang bertanggung jawab terhadap hal tersebut.

4. Apakah gen yang berbeda mengalami tekanan seleksi yang berbeda? Kita dapat menjawabnya dengan membandingkan dua jenis dataset sequence menggunakan model analisis yang sama dan kemudian menguji signifikansinya dengan uji statistik.

Sebelum menjawab empat pertanyaan tersebut ada beberapa istilah yang harus diketahui terlebih dahulu mengenai seleksi. Seleksi terhadap sequence molekular terbagi menjadi tida, yakni seleksi positif (diversifying), seleksi netral, dan seleksi negatif (purifying). Seleksi positif adalah suatu kondisi seleksi yang memungkinkan varian-varian sequence molekuar dapat bertahan hidup. Hal inilah yang menyebabkan adaya 'keanekaragaman' tingkat sequence pada gen yang sama. Perlu diketahui bahwa varian-varian tersebut juga memiliki tingkat ketahanan hidup (survival rate) yang beraneka ragam. Dalam hal ini seleksi negatif merupakan kebalikan dari seleksi positif, yakni menyeleksi varian-varian dengan tingkat ketahanan hidup yang berada di bawah suatu batas tertentu. Seleksi netral merupakan titik tengah antara seleksi positif dan negatif. Parameter substitusi non-synonimous (beta) pada suatu kodon dipakai sebagai parameter seleksi ini dan kita akan simak rinciannya pada paragraf selanjutnya.

Oke, sekarang mari kita telusuri secara lebih mendalam lagi jawaban-jawaban tersebut. Sebagai awalan, teman-teman yang setia mengikuti serial Sebuah Tulisan Evolusi dan Filogeni ini pastinya sudah mengetahui bahwa model evolusi yang telah dikenal sejauh membacanya adalah model evolusi nukleotida (Jukes-Cantor, Kimura, dll) dan model evolusi asam amino (Dayhoff, Jones-Taylor-Thornton, Poisson, dll). Namun dalam analisis seleksi ini, kita akan menggunakan model evolusi yang menggabungkan keduanya (kalau boleh saia simpulkan seperti itu), yakni model evolusi kodon. Sebagaimana yang telah kita ketahui, kodon atau kode genetik berisi 64 kode kombinasi triplet nukleotida yang menyandi 20 jenis asam amino. Sebagai konsekuensinya ada beberapa kodon menyandi asam amino yang sama, contohnya adalah kodon AUA, AUC, dan AUU menyandi asam amino isoleusin (Ile).

Sekarang bayangkan apabila suatu kodon GAA mengalami mutasi titik (point mutation). Mutasi ini akan menyebabkan kodon AAG memiliki 9 kemungkinan untuk berubah, yakni menjadi AAA, CAA, GCA, GGA, GTA, GAC, GAG, GAT, dan TAA. Lebih lanjut lagi, hanya mutasi GAA --> GAG yang bersifat synonimous, yakni sama-sama menghasilkan asam glutamat (Glu). Delapan kemungkinan lainnya merupakan mutasi non-synonimous. Nah singkatnya, model evolusi kodon menggunakan distribusi kemungkinan ini untuk diterapkan pada alignment sequence yang ada.

Ada tiga pendekatan yang dilakukan dalam model evolusi kodon ini, yakni pendekatan distance, pendekatan maximum likelihood, dan pendekatan Bayesian. Terlepas dari rincian bagaimana mekanismenya, inti dari setiap pendekatan tersebut adalah untuk mengestimasi nilai beta dan alfa. Selanjutnya, kita dapat menguji apakah terdapat seleksi pada sequence yang kita miliki dengan melakukan uji perbandingan antara dua hipotesis menggunakan Likelihood Ratio Test (LRT). Metode LRT pada prinsipnya adalah menguji signifikansi antara dua hipotesis, yakni H0 = tidak terdapat seleksi (alfa = beta) dan HA = tidak demikian (alfa tidak sama dengan beta). Selanjutnya data yang didasarkan pada H0 dan HA masing-masing diukur nilai likelihood (L) nya. Nilai LRT kemudian dihitung dengan rumus: LRT = 2 (logL HA - logL H0) dan dinyatakan apakah nilainya melewati batas signifikansi atau tidak. Jika ya, berarti H0 ditolak atau singkatnya terjadi seleksi pada sequence yang kita miliki.

Horeee...kira-kira begitulah versi jawaban yang lebih rinci atas pertanyaan yang pertama. Jika kita cukup kurius atau ingin tahu, kita tentu tidak cukup puas dengan jawaban "ada seleksi pada sequence loe bro, trus gue harus bilang WOW gituh...". Jika memang ada seleksi, kita pun lantas mempertanyakan lebih lanjut, "kapan dan dimanakah seleksi itu terjadi pada sequence tersebut"? Ini merupakan pertanyaan nomor dua dan tiga di atas, namun saia berencana akan membahas rincian jawaban atas dua pertanyaan ini pada tulisan berikutnya agar tulisan ini tidak terlalu panjang dan bikin ngantuk. Ditunggu yahhh.

Regards,

Victor Apriel

Senin, 13 Agustus 2012

Sebuah Tulisan Evolusi dan Filogeni: Estimating Selection Pressures on Molecular Sequences

Hai..hai..hai..jumpa lagi bersama Chef Victor dalam Sebuah Tulisan Evolusi dan Filogeni. Setelah lama vakum karena belum menemukan ide untuk menulis, akhirnya saia coba menulis mengenai pengukuran tekanan seleksi terhadap sequence molekular. Well, sebenarnya sih tulisan ini hanya bagian luarnya saja karena saia pun masih belum mengerti seluk-belut nya..heheh. Yaa daripada tidak ada yang bisa ditulis, toh lebih baik menulis apapun yang berhasil dimengerti toh. Okelar, cukup basa-basinya dan selamat menikmati.

Jika pada tulisan sebelumnya kita telah berhasil membuat pohon filogenetik, menguji tingkat kepercayaan, dan kemudian memetakan waktu divergensi; maka akan muncul suatu pertanyaan yang menggelitik dalam benak kita, yakni "bagaimana mereka bisa berdivergensi?". Kita mungkin dapat menjawabnya dengan melakukan analisis sequence DNA dan memetakan substitusi-substitusi yang terjadi diantara daerah dalam aligned sequence dan mempresentasikannya sebagai sebuah pengukuran tekanan seleksi terhadap sequence tersebut. Namun demikian, substitusi pada daerah manakah yang bertanggung jawab dalam proses divergensi antara satu organisme dengan lainnya?

Saia mencoba untuk menjawab pertanyaan diatas dalam 3 tahapan, yakni: (1) Model substitusi kodon; (2) pengukuran laju variasi antar cabang (branch); dan lebih mendalam lagi pada (3) pengukuran laju variasi antar daerah dalam sequence DNA. Model evolusi kodon memberikan kelebihan dibandingkan model evolusi DNA atau protein dalam aspek bahwa kodon merupakan penghubung antara DNA dengan protein. Perubahan nukleotida pada gen struktural dapat atau tidak dapat menyebabkan perubahan pada protein yang disandi bergantung pada kodon yang bersangkutan, sehingga dikenal synonimous substitution dan non-synonimous substitution. Berdasarkan hal ini, kita dapat memperoleh gambaran bagaimana suatu protein target diseleksi, yakni dengan membandingkan rasio laju substitusi non-synonimous terhadap laju substitusi synonimous (b/a = w). Metode perhitungan pada model evolusi kodon terbagi menjadi distance-based approaches dan maximum-likelihood approaches. Dengan kedua metode ini kita dapat mengetahui apakah jenis seleksi terhadap gen tersebut, yakni apakah diversifying (w > 1), netral (w = 1), atau purifying (w < 1).

dimana: b = beta; a = alpha; w = omega


Metode penentuan tekanan seleksi dapat dianalisis dengan baik menggunakan model evolusi kodon dengan segala optimasinya. Namun demikian, hal tersebut tidak memberikan gambaran mengenai tingkat kesetaraan tekanan seleksi di semua titik percabangan (node) dalam pohon filogenetik serta tidak memberikan informasi mengenai posisi kodon yang diseleksi. Kesetaraan tekanan seleksi dalam hal ini dapat dibuktikan dengan penggunaan model evolusi kodon pada setiap titik percabangan, membandingkan nilai antar cabang, dan kemudian memetakannya secara utuh dalam satu kesatuan pohon filogenetik. Lebih mendalam lagi, setelah diketahui tekanan seleksi pada setiap titik percabangan, kita dapat mencari kodon mana yang menjadi target seleksi dalam sequence yang diperbandingkan.

Hmm...okelar sampai segini dulu mengenai apa yang dapat saia ceritakan mengenai analisis tekanan seleksi terhadap sequence molekular. Masih banyak lagi rincian analisis dari setiap tahapan tersebut yang saia sendiri juga masih belum mengerti mekanismenya..heheh.

Regards,
Victor Apriel

Sabtu, 14 Juli 2012

Sebuah Tulisan Evolusi dan Filogeni: Codon Substitution Models

Hmm...oke setelah sekian lama absen menulis artikel Sebuah Tulisan Evolusi dan Filogeni, saia kemudian dituntut oleh salah satu pembaca untuk kembali melanjutkan tulisan itu. Nah permasalahannya cukup kompleks karena dalam hal ini saia belum ada ide mengenai apa yang ingin saia tulis. Namun ketika sore kemarin saia bertapa di kamar mandi, datanglah ide yang saia tunggu-tunggu itu. Dalam tulisan kali ini saia lebih cenderung mengutarakan kegundahan serta kegalauan hati saia selama ini. Lho, lantas apa hubungannya dengan tema tulisan diatas? Yaaa....selamat membaca kalau begitu. Duh mules neh, bentar yak...

Kegundahan dan kegalauan saia berawal ketika saia membaca bab yang membahas mengenai pengukuran tekanan seleksi pada sequence molekular. Nah dari sana saia pun diperkenalkan dengan suatu model evolusi yang berbeda dengan dua kelompok model evolusi yang telah saia kenal sebelumnya, yakni model evolusi nukleotida dan model evolusi asam amino. Model evolusi yang baru dan dikatakan juga lebih realistik tersebut adalah model evolusi kodon.

Model evolusi nukleotida menggunakan algoritme substitusi basa A, G, C, T berdasarkan data laju substitusi relatif dan juga frekuensi dari masing-masing basa. Berbagai model mulai dari yang sederhana seperti Jukes & Cantor (JC69) hingga General Time Reversible (GTR) pun tersedia untuk dapat kita pilih dalam analisis data yang dimiliki. Sementara itu, model subsitusi asam amino sedikit berbeda dengan model subsitusi nukleotida karena merupakan sebuah matriks skor untuk masing-masing jenis asam amino standar satu sama lain. Skor yang negatif dalam matriks tersebut artinya kecil kemungkinan terjadi substitusi antara dua asam amino yang terlibat. Contohnya adalah triptofan menjadi aspartat atau sebaliknya dengan skot -4. Untuk lebih rincinya lagi, silahkan cek ke warung kopi...ehh...literartur terkait.

Nah pada model evolusi kodon kali ini saia dapat menyimpulkan model ini menggunakan gabungan model nukleotida dan asam amino. Tidak seperti dua kelompok model sebelumnya, saia belum mendapatkan keterkaitan antara model evolusi kodon ini dengan rekonstruksi pohon filogenetik. Yah daripada pulang dengan otak hampa, lebih baik saia mencoba menceritakan apa yang saia ketahui (belum mengerti atau pahami lohh) hingga saat ini. Pada umumnya model evolusi kodon dipakai dalam penentuan tekanan seleksi terhadap sebuah sequence DNA. Sebelum menceritakan bagaimana logika kerjanya, ada beberapa persyaratan yang harus dipenuhi dalam penggunaan model ini. Prasyarat itu meliputi (1) Model ini membutuhkan data sequence nukleotida sebagai data utamanya dan sequence asam amino (hasil translasinya) sebagai pengkonfirmasi dan (2) Sequence yang digunakan harus dipastikan terbebas dari mutasi frameshift.

Sekarang mari kita bergerak mengenai cara kerjanya. Nah sekarang mari kita bayangkan sebuah kodon (triplet nukleotida) AAA. Kodon AAA tersebut jika ditranslasikan akan menghasilkan asam amino lysine. Nah kemudian coba bayakngkan lagi apabila terjadi mutasi titik pada salah satu dari tiga nukleotida. Mutasi titik pada satu posisi dalam triplet tersebut akan menghasilkan 9 kemungkinan yang akan menghasilkan asam amino berbeda apabila ditranslasikan. Jadi, jika AAA mengalami mutasi titik maka kemungkinannya akan menjadi GAA, CAA, TAA, AGA, ACA, ATA, AAG, AAC, AAT. Nah dari 9 kemungkinan hasil mutasi titik tersebut hanya ada satu mutasi (AAA --> AAG) yang translasinya tetap berupa asam amino lysine. Sisa delapan kemungkinannya merupakan mutasi non-synonimous yang menghasilkan asam amino selain lysine. Setelah memperhitungkan kemungkinan mutasi synonimous dan non-synonimous dari setiap triplet nukleotida, model ini kemudian menghitung nilai rasio dN/dS.

Rasio dN (rerata mutasi non-synonimous) terhadap dS (rerata mutasi synonimous) merupakan salah satu parameter dalam estimasi tekanan seleksi pada sequence molekular. Nilai dN/dS >1 menyatakan bahwa seleksi alam memperbolehkan adanya diversivikasi atau disebut juga sebagai seleksi positif; sedangkan nilai dN/dS<1 manyatakan adanya gejala purifying/negative selection, dimana seleksi alam hanya memperbolehkan sequence tertentu untuk dapat diteruskan pada keturunan berikutnya. NIlai dN/dS=1 menyatakan bahwa evolusi bersifat netral. Beberapa algoritme model substitusi kodon yang dikenal umumnya meliputi Muse-Gaut (MG94), Goldman-Yang (GY94), Nielsen-Yang (NY98), Yang-Nielsen (YN98), dan codon-GTR (CGTR). Software yang menyediakan model evolusi kodon untuk analisis sequence diantaranya meliputi Pylogenetic Analysis using Maximum Likelihood (PAML) dan Important Quartet Puzzling and NNI Optimization (IQPNNI).

Kesimpulan dari cerita diatas adalah bahwa model evolusi menggunakan kodon dibandingkan dengan nukleotida atau asam amino bersifat lebih realistis dalam menentukan bagaimana proses evolusi yang berlangsung terhadap suatu gen struktural. Walaupun evolusi paling dasar terjadi pada DNA, namun target dari seleksi alam adalah protein. Seleksi terhadap protein yang sejatinya merupakan produk DNA mensyaratkan harus adanya suatu adaptasi molekular pada sequence DNA agar dapat menghasilkan varian protein lain yang mampu beradaptasi. Pembacaan sequence DNA dalam bentuk kodon menjawab hubungan DNA-protein ini, sehingga kita bisa mendapatkan gambaran mengenai bagaimana seleksi alam terhadap suatu gen tertentu.

Nah kalau seandainya demikian, sekarang adalah bagian yang membuat galau. Apabila kita ingin merekonstruksi sebuah filogeni menggunakan gen struktural yang mengkode protein elongation factor 1a (EF-1a), lantas model evolusi manakah yang digunakan? Ketika jaman dahulu, saia diceritakan bahwa penggunaan model evolusi protein untuk suatu gen penyandi protein (gen struktural) lebih baik dibandingkan menggunakan model evolusi DNA. Hal ini disebabkan karena model evolusi protein memuat lebih banyak kombinasi substitusi asam amino (20 jenis asam amino dibandingkan dengan 4 jenis nukleotida),  dan juga mempertimbangkan bahwa target evolusi dalam konteks molekular adalah protein dan bukan DNA. Nah kemudian, bagaimana keunggulan model evolusi kodon dibandingkan engan protein? Sekilas saia mendapatkan gambaran seperti yang saia tulis pada paragraf sebelumnya bahwa model evolusi kodon lebih baik dibandingkan DNA dalam hal gen struktural karena memuat 64 kombinasi triplet nukleotida. Namun saia belum mendapat bayangan apabila dibandingkan dengan protein.

So.....ada yang bisa membantu saia menjawab kegalauan ini? :)

Regards,
Victor Apriel