Setelah kita mempelajari sekilas tentang
teknologi pengurutan DNA pada Part 1, saya berharap teman-teman mendapatkan
gambaran tentang bagaimana proses pengurutan DNA pada skala genom dilakukan.
Hmm…tapi tidak ada salahnya jika saia review sedikit agar para teman-teman
pembaca mendapatkan dasar-dasar yang diperlukan untuk memahami Part 2 ini.
Teknologi pengurutan DNA, kendati sudah mengalami banyak kemajuan pesat, masih
belum dapat mengurutkan DNA secara ideal. Ya, secara ideal yang saia maksud
adalah mengurutkan untai DNA dari satu ujung ke ujung yang lain. Prosedur umum
dari pengurutan DNA genom saat ini adalah memotong-motong DNA genom menjadi
jutaan potongan kecil dan kemudian mengurutkan semuanya secara paralel sebanyak
beberapa kali. Perlu diperhatikan disini bahwa prosesnya tidak hanya melibatkan
satu genom saja, melainkan banyak genom karena ekstraksi DNA dilakukan terhadap
banyak sel dari sebuah spesies. Dengan demikian, mesin pengurut DNA yang saia
ceritakan pada Part 1 akan mengurutkan DNA genom sebanyak beberapa kali namun
menyajikan hasil urutannya dalam bentuk jutaan potongan kecil yang perlu
dirangkai satu sama lain sebelum menjadi sebuah genom utuh. Perangkaian bacaan
(reads) hasil pengurutan genom dapat
dianalogikan seperti pada merangkai potongan puzzle, namun sedikit lebih sulit.
Bayangkan kita memiliki 10 kotak jigsaw puzzle untuk gambar yang sama,
tumpahkan dan campur semua isinya, lalu coba rangkai satu demi satu hingga
menjadi sebuah gambar utuh.
Dapat bayangannya? Oke sekarang kita menuju ke
kasus nyata. Bayangkan kita memiliki genom TAATGCCATGGGATGTT yang dipecah dan
diurutkan menjadi potongan bacaan berjumlah tiga nukleotida (trimer) berikut:
TAA, AAT, ATG, TGC, GCC, CCA, CAT, ATG, TGG, GGG, GGA, GAT, ATG, TGT, dan GTT.
Perhatikan pola setiap trimer tersebut baik-baik dan kita akan mengetahui bahwa
trimer kedua bertumpang-tindih dengan trimer pertama sebanyak dua nukleotida.
So, merangkai trimer-trimer tersebut menjadi sebuah genom utuh? Ya mudah saja.
Jajarkan saja trimer satu yang bertumpang tindih dengan lainnya dan kita akan
segera mendapatkan urutan genomnya. Kelihatannya mudah memang, tapi kita lupa
bahwa kita dapat melakukannya semudah itu karena adanya dua asumsi. Pertama,
kita telah mengetahui terlebih dulu urutan genomnya. Kedua, trimer-trimer
tersebut telah diurutkan sedemikian rupa sehingga trimer pertama pasti
bertumpang-tindih dengan trimer kedua dan seterusnya. Pada kasus perangkaian
genom yang sebenarnya, kedua asumsi di atas tidak ada (Gambar 1). Jadi, apakah
kita masih bisa merangkai genom tersebut?
Sebelum beranjak ke teknik perangkaian genom,
perkenankan saia untuk mengenalkan beberapa istilah teknisnya. Setiap bacaan
urutan dengan panjang k nukleotida akan
kemudian disebut sebagai kmer. Contoh
di atas menggunakan bacaan berjumlah tiga nukleotida yang disebut trimer atau
3-mer. Selanjutnya, kita akan mendefinisikan awalan dan akhiran dari sebuah kmer. Awalan kmer didefinisikan sebagai kmer–1
yang diambil dari awal; sedangkan akhiran kmer
didefinisikan sebagai kmer–1 yang
diambil dari akhir. Sebagai contoh, sebuah 3-mer TAA memiliki awalan TA dan akhiran
AT. Teknik perangkaian genom yang akan diceritakan pada paragraf selanjutnya
menggunakan apa yang disebut sebagai teori grafik (graph theory). Grafik yang dimaksud ini bukanlah grafik Cartesian
dengan sumbu x dan y, melainkan sebuah peta hubungan antara
nodus (nodes) dengan garis (edges).
Oke, sekarang kita mulai teknik perangkaiannya.
Perangkaian genom dari bacaan urutan (reads)
dilakukan dalam dua tahap, yakni: (i) konstruksi grafik de Bruijn dan (ii)
penelusuran grafik de Bruijn untuk menghasilkan jalur Eulerian. Kita mulai dari
yang pertama dulu, yaitu konstruksi grafik de Bruijn. Saia sendiri kesulitan
menuliskan definisi formalnya, tapi intinya grafik de Bruijn merupakan grafik
yang merepresentasikan keseluruhan kmer
dalam bentuk nodus dan garis dengan jumlah minimum. Dalam kasus ini, kita ingin
setiap bacaan urutan direpresentasikan oleh sebuah garis, sehingga kedua nodus
yang dihubungkan oleh garis tersebut adalah awalan dan akhiran dari sebuah kmer (Gambar 2). Selanjutnya, kita dapat
melihat bahwa terdapat nodus akhiran dari sebuah 3-mer yang identik dengan
nodus awalan 3-mer yang lain. Jika kita menemukan ini, kita dapat menyatukannya
sehingga pada akhirnya akan terbentuk sebuah jalinan antar 3-mer yang
direpresentasikan oleh nodus awalan dan akhiran. Pada Gambar 2, hanya 3-mer
ujung awal yang nodus awalannya tidak identik dengan nodus akhir 3-mer manapun
dan begitu juga sebaliknya untuk 3-mer ujung akhir.
Gambar 2. Membuat nodus awalan dan akhiran dari seluruh 3-mer dan kemudian menyambungkannya satu sama lain jika nodus akhiran dari 3-mer yang satu identik dengan nodus awalan dari 3-mer lainnya. |
Nah setelah seluruh 3-mer terjalin, bukankah
masalahnya sudah selesai? Kita hanya perlu ‘membaca’ seluruh 3-mer tersebut
dari ujung awal hingga ujung akhir untuk mendapatkan urutan genomnya bukan? Well,
jika genom organisme hanya terdiri dari 17 nukleotida dan dapat terwakilkan
oleh hanya 15 3-mer seperti pada Gambar 2, maka masalah memang selesai. Namun pada
kenyataannya, genom bakteri yang berukuran kecil pun dapat menghasilkan jutaan kmer. Jadi dalam kasus ini peran grafik
de Bruijn adalah mempersingkat jalinan antar kmer pada Gambar 2 namun tetap mempertahankan informasinya sehingga
algoritma yang dirancang untuk perangkaian bacaan menjadi genom dapat berjalan
dengan cepat. Sekarang coba perhatikan bahwa meskipun seluruh nodus telah
terjalin satu sama lain, masih terdapat nodus-nodus yang identik satu dengan
lainnya. Kita dapat menyatukan nodus-nodus tersebut untuk mengkonstruksi grafik
de Bruijn (Gambar 3). Nah sampai disini,
tahap 1 telah selesai. Berikutnya adalah tahap 2, yakni mencari jalur di dalam
grafik de Bruijn tersebut yang bersifat Eulerian. Sebuah jalur (path) bersifat Eulerian jika dan hanya
jika jalur tersebut menelusuri seluruh garis di dalam grafik sebanyak persis
satu kali. Jika kita mencobanya pada grafik de Bruijn yang baru saja kita
konstruksi, kita akan mendapatkan contoh jalur Eulerian seperti pada Gambar 4.
Gambar 3. Konstruksi grafik de Bruijn dengan menyatukan lebih banyak nodus-nodus yang identik. |
Gambar 4. Ikuti jalur Eulerian dan rangkai genomnya! |
Hingga pada tahap ini kita telah selesai
mengkonstruksi genom contoh kita. Tentunya konstruksi ini merupakan contoh yang
sangat sederhana dan saia berani jamin tidak akan ada kasus perangkaian genom di
dunia nyata yang sesederhana ini. Pada kenyataannya, beberapa kendala yang
kerap muncul selama perangkaian genom adalah kendala ketidaklengkapan bacaan
urutan yang diberikan oleh mesin pengurut DNA. Kesalahan pengurutan, sesuatu
yang cukup sering dilakukan oleh mesin pengurut DNA, juga turut mempersulit
perangkaian karena berpotensi mengarahkan pada rangkaian genom yang salah.
Panjang kmer juga turut berperan dalam menentukan apakah kompleksitas grafik de
Bruijn. Perhatikan baik-baik Gambar 4 dan kita akan menyadari bahwa ada jalur
alternatif yang juga bersifat Eulerian namun memberikan hasil akhir urutan
genom yang salah. Well, keseluruhan kendala ini akan saia bahas pada cerita
berikutnya yak. Kepanjangan kalau dibahas sekalian disini…hehehe. So stay tuned!!
Victor
Aprilyanto
Bacaan
Lanjutan
Compeau, P. E. C. & P. A.
Pevzner. 2015. Bioinformatics Algorithms:
An Active Learning Approach 2nd Edition, Vol. 1. Active Learning
Pub.: USA.
Compeau, P. E. C., P. A. Pevzner,
& G. Tesler. 2011. How to apply de Bruijn graphs to genome assembly. Nature Biotechnology 29: 987-991.
Jones, N. C. & P. A. Pevzner.
2004. An introduction to Bioinformatics
Algorithms. MIT Press Pub.: USA.
Tidak ada komentar:
Posting Komentar