MSK_009
-
Upload
ridlo-wahyudi-wibowo -
Category
Documents
-
view
1.151 -
download
0
description
Transcript of MSK_009
PySSA: Program sederhana sequence alignment
R. W. Wibowo
Program Studi Sains Komputasi, Institut Teknologi Bandung
Abstrak. Sequence alignment dalam bidang bioinformatika adalah cara mengurutkan sequence asam amino pada DNA
(Deoxyribonucleic acid), RNA (Ribonucleic acid), atau protein untuk mengidentifikasikan dearah kesamaan yang
mungkin menjadi konsekuensi dari hubungan fungsional, struktural, dan evolusi antar sequence. Perkembangan
algoritma dalam kasus bioinformatika sangat pesat dan tidak jarang melibatkan komputasi besar untuk keperluan
tertentu, semisal pencarian pada database protein. PySSA merupakan program sederhana dalam bahasa python (dynamic
programming) yang menerapkan tiga algoritma dasar yang digunakan dalam sequence alignment, khususnya dalam
bidang bioinformatika. Metoda dan hasilnya disampaikan dalam makalah ini.
Keywords: Sequence alignment, komputasi bioinformatika
PENDAHULUAN
DNA sequencing adalah proses mengurutkan
nukleotida adenine (A), guanine (G), cytosine (C), dan
thymine (T) di dalam molekul DNA itu sendiri.
Pertama kali dikerjakan pada tahun 1970, kemudian
pekerjaan ini menjadi sangat penting dalam dekade
terakhir ini terkait dengan kebutuhan forensik,
diagnosa, dan perkembangan bioteknologi.
Semakin berkembanganya metode untuk
mengurutkan DNA tersebut mempercepat pula
perkembangan riset dan penemuan dibidang
bioteknologi dan farmasi. Metode tersebut tidak hanya
untuk mendapatkan urutan DNA tetapi juga
membandingkan urutan DNA yang satu dengan yang
lain. Urutan DNA dibandingkan satu dengan yang lain
untuk mendapatkan nilai ‘kecocokan’ DNA tersebut.
Nilai kesamaan atau kemiripan urutan DNA
merupakan bukti akan adanya kesamaan struktur,
fungsi, dan evolusi DNA tersebut. Pekerjaan ini
memberikan contoh algoritma dasar yang digunakan
untuk membandingkan dan memberikan nilai
kemiripan antar dua sequence DNA (Sequence
alignment) PySSA. Program ditulis dalam bahasa
python dan menggunakan prinsip dynamic
programming. Sequence alignment tidak hanya
digunakan pada kasus bioinformatik, tetapi juga pada
kasus nonbiologi seperti sosial dan financial.
METODE
Proses alignment yang dilakukan pada DNA dan
RNA secara umum dibagi dalam dua kategori yakni
global alignment dan local alignment. PySSA sampai
saat ini menerapkan tiga algoritma dasar dalam
sequence alignment. Flowchart dari metode ini
diberikan pada Gambar 1.
Gambar 1. Flowchart umum metode dasar sequence
alignment
Local alignment
Local alignment memberikan nilai dengan tidak
memaksakan sequence memiliki urutan tetap.
Sehingga yang dibandingkan bias saja hanya daerah
tertentu pada sequence tersebut. Algoritma yang
diterapkan adalah algoritma Smith–Waterman yang
diusulkan oleh Temple F. Smith dan M. S. Waterman
pada tahun 1981. Algoritma ini berkembang untuk
kepentingan membandingkan DNA yang relatif jauh
kaitan biologisnya. Dengan algoritma ini dapat
ditentukan optimum lokal pada sequence DNA yang
dibandingkan. Perbedaan utama pada algoritma ini
adalah matriks scoring semua bernilai nol.
Algortimanya dapat ditulis sebagai berikut:
Membangun matriks H dari dua sequence DNA
sepanjang m dan n dilakukan dengan cara:
Inisiasi.
Skoring:
dengan:
Setelah mendapatkan matriks sskor maksimum
tersebut maka dapat dilakukan traceback untuk
mendapatkan sequence alignment dan skornya.
Traceback dilakukan dari posisi H(i, j) terbesar hingga
sampai pada H(i, j) = 0 dengan membandingkan tiga
sel sebelumnya dan mencari maksimumnya.
Global alignment
Algoritma Needleman–Wunsch yang dikenalkan
pada tahun 1970 adalah contoh dari general global
alignment. Berbeda dengan local alignment, metode
ini menerapkan penilaian secara keseluruhan sequence
yang dibandingkan dengan membuat alignment dari
semua anggota sequence. Algoritma yang pertama kali
diterapkan pada permasalahan membandingkan
sequence dalam permasalahan biologi.
Algoritmanya dapat dijelaskan sebagai berikut:
Inisiasi matriks skor maksimum.
Skoring.
dengan:
Traceback.
Dilakukan dengan cara yang sama pada kasus local
alignment.
Affine alignment
Affine alignment termasuk dalam metode global
alignment. Perbedaannya terletak pada adanya gap
extension dan menggunakan tiga maktriks skor
sehingga perlu dilakukan iterasi tiga kali. Tujuannya
adalah untuk ‘menyimpan’ sementara alignment yang
mungkin lebih baik ketika terjadi gap yang panjang.
Berikut ini disampaikan metode dari algoritma
Gotoh yang termasuk dalam affine alignment.
Inisiasi:
Skoring:
Traceback:
- Jalur dimulai dari tabel S
- Apabila = atau maka
pindah table namun tidak berubah indeksnya.
- Jalur yang melalui pasti naik sedangkan
yang melalui akan bergerak ke kiri.
HASIL DAN ANALISA
Metode yang disampaikan di atas memberikan
gambaran bahwa harus dilakukan penyimpanan skor di
dalam matriks lalu dilakukan traceback dari matriks
tersebut. PySSA menggunakan python untuk
mengerjakan hal tersebut karena bahasanya yang
fleksibel dan userfriendly untuk kasus ini (dynamic
programming). Program ini dapat diunduh melalui
repositori https://github.com/ridlo/PySSA.git
Program ini dilengkapi dengan beberapa command
line interface untuk mempermudah input. Program
dapat dicoba untuk mencari alignment dari dua
sequence.
Local alignment: python localAlign.py –i ACACACTA AGCACACA -m 2 -p 1
Output: Local alignment - Smith Waterman Algorithm SEQUENCE 1: ACACACTA SEQUENCE 2: AGCACACA gap : 0.0 gap penalty : -1.0 match score : 2.0 mismatch score: -1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 1.0 2.0 1.0 2.0 1.0 0.0 2.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 1.0 0.0 0.0 3.0 2.0 3.0 2.0 3.0 2.0 1.0 0.0 2.0 2.0 5.0 4.0 5.0 4.0 3.0 4.0 0.0 1.0 4.0 4.0 7.0 6.0 7.0 6.0 5.0 0.0 2.0 3.0 6.0 6.0 9.0 8.0 7.0 8.0 0.0 1.0 4.0 5.0 8.0 8.0 11.0 10.0 9.0 0.0 2.0 3.0 6.0 7.0 10.0 10.0 10.0 12.0 Maximum Value : 12.0 Maximum Position : [[8, 8]] Track Sequence 1 : A _ C A C A C T A Sequence 2 : A G C A C A C _ A Score : 12.0
Global alignment: python generalGap.py -i ACACACTA AGCACACA
Output: General Gap Penalty, Needleman-Wunch Algorithm SEQUENCE 1: ACACACTA SEQUENCE 2: AGCACACA gap : -1.0 gap penalty : -1.0 match score : 1.0 mismacth score: -1.0 -0.0 -1.0 -2.0 -3.0 -4.0 -5.0 -6.0 -7.0 -8.0 -1.0 1.0 0.0 -1.0 -2.0 -3.0 -4.0 -5.0 -6.0 -2.0 0.0 0.0 -1.0 -2.0 -3.0 -4.0 -5.0 -6.0 -3.0 -1.0 1.0 0.0 0.0 -1.0 -2.0 -3.0 -4.0 -4.0 -2.0 0.0 2.0 1.0 1.0 0.0 -1.0 -2.0 -5.0 -3.0 -1.0 1.0 3.0 2.0 2.0 1.0 0.0 -6.0 -4.0 -2.0 0.0 2.0 4.0 3.0 2.0 2.0 -7.0 -5.0 -3.0 -1.0 1.0 3.0 5.0 4.0 3.0 -8.0 -6.0 -4.0 -2.0 0.0 2.0 4.0 4.0 5.0 Sequence 1: A _ C A C A C T A Sequence 2: A G C A C A C _ A Score : 5.0
Affine alignment: python affineGap.py -i AGCATC AGTC
Output: Affine Gap Penalty, Gotoh Algorithm
SEQUENCE 1: AGCATC SEQUENCE 2: AGTC gap open : -1.0 gap extend : -0.1 gap penalty : -1.0 match score : 1.0 mismacth score: -1.0 0.0 -1.1 -1.2 -1.3 -1.4 -1.5 -1.6 -1.1 1.0 -0.1 -0.2 -0.3 -0.4 -0.5 -1.2 -0.1 2.0 0.9 0.8 0.7 0.6 -1.3 -0.2 0.9 1.0 -0.1 1.8 0.7 -1.4 -0.3 0.8 1.9 0.8 0.7 2.8 Sequence 1: A G C A T C Sequence 2: A G _ _ T C Score : 2.0
Hasil dari program ini adalah skor yang merupakan
kuantitas dari kemiripan dua sequence input. Bagian
dari sequence input yang manjadi penyumbang nilai
tersebut dapat dilihat dari sequence output.
KESIMPULAN
PySSA memberikan gambaran mengenai cara
penilaian ‘kemiripan’ suatu urutan asam amino dengan
urutan asam amino yang lain yang dilakukan oleh
saintis. Terdapat tiga pilihan metode di dalam paket
PySSA (global: general gap dan affine gap, local
alignment), dan semuanya berjalan dengan baik
(dibandingkan dengan contoh dari referensi). Kasus
lebih kompleks dan melibatkan input besar (misal: full
genome atau forensik protein asing di dalam database
protein) biasa dikerjakan dengan program yang
memasukkan paralelisasi, dikarenakan besarnya
memori yang diperlukan. Hal ini dapat menjadi acuan
pengembangan pada tahap selanjutnya.
Program ini mudah dipahami dan dikembangkan
karena menggunakan bahasa python, serta dapat
diakses publik melalui repositori.
REFERENSI
1. Mount DM. (2004). Bioinformatics: Sequence and
Genome Analysis (2nd ed.). Cold Spring Harbor
Laboratory Press: Cold Spring Harbor, NY.
2. Needleman, Saul B.; and Wunsch, Christian D. (1970). A
general method applicable to the search for similarities in
the amino acid sequence of two proteins. Journal of
Molecular Biology 48 (3): 443–53
3. Smith, Temple F.; and Waterman, Michael S. (1981).
Identification of Common Molecular Subsequences.
Journal of Molecular Biology 147: 195–197.
4. Osamu Gotoh (1982). An improved algorithm for
matching biological sequences. Journal of Molecular
Biology 162: 705.