Pengkonstruksian Bidirected Overlap Graph Untuk Dna Sequence Assembly

PENGKONSTRUKSIAN BIDIRECTED OVERLAP GRAPH
UNTUK DNA SEQUENCE ASSEMBLY

ALBERT ADRIANUS

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2014

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Pengkonstruksian
Bidirected Overlap Graph Untuk DNA Sequence Assembly adalah benar karya
saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk
apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau
dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah
disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir
skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut

Pertanian Bogor.
Bogor, Februari 2014
Albert Adrianus
NIM G64090109

ABSTRAK
ALBERT ADRIANUS. Pengkonstruksian Bidirected Overlap Graph Untuk DNA
Sequence Assembly. Dibimbing oleh WISNU ANANTA KUSUMA.
DNA sequencing technologies dapat digunakan untuk memecah gen bakteri
menjadi jutaan potongan kecil yang disebut reads. Namun demikian, reads
tersebut perlu disambung menjadi contigs agar dapat digunakan. Terdapat 2
metode untuk menyambungkan reads. Yang pertama dengan menggunakan
overlap layout consensus (OLC) dan yang lainnya dengan menggunakan de
Bruijn graph. Hal penting dalam metode OLC adalah bagian overlap dari masingmasing reads. Pada penelitian ini dikembangkan sebuah sistem untuk membuat
bidirected overlap graph yang nantinya akan menghitung berapa jumlah reads
yang saling overlap satu sama lain. Suffix array digunakan untuk menentukan
fase/bagian overlap dari setiap reads dengan mengindeks setiap suffix dari reads.
Waktu adalah parameter penting dalam DNA assembly karena DNA assembly
membutuhkan banyak waktu. Untuk mengurangi waktu dilakukan perubahan dari
masing-masing suffix dan prefix menjadi suatu nilai tertentu yang bersifat tunggal

dan mencari overlap dengan membandingkan setiap reads. Cara ini memberikan
dampak positif daripada perbandingan dengan menggunakan string. Perbandingan
waktu yang diperlukan antara perbandingan angka dan perbandingan string cukup
signifikan. Untuk 2000 dan 5000 reads, sistem dapat memberikan hasil 100%
akurat untuk jumlah node dan edge.
Kata kunci: bidirected overlap graph, DNA assembly, overlap layout consensus

ABSTRACT
ALBERT ADRIANUS. Bidirected Overlap Graph Construction For DNA
Sequence Assembly. Supervised by WISNU ANANTA KUSUMA.
High-throughput DNA sequencing technologies can be used to decipher a
bacterial genome to millions of fragments called reads. However, reads must be
assembled to contigs before it can be used. There are two methods to assemble
reads. The first one is using overlap layout consensus (OLC) methods and the
other one by using de Bruijn graph. The main thing in the OLC is the overlapping
phase. In this project, we will develop a system to build bidirected overlap graph
for counting how many reads overlapping each other. Suffix array is used to
determine overlapping phase from each reads by indexing every reads’s suffix.
Time is an important parameter for DNA assembly. To reduce time, we convert
every suffix and prefix to a unique number and search for an overlap by

comparing each reads. The method gives a positive result than the string method.
The different of time consumed by the first method and the second method is fairly
significant. For 2000 and 5000 reads, the system can give a 100% accuracy for
the total numbers of node and edge.
Keywords: bidirected overlap graph, DNA assembly, overlap layout consensus

PENGKONSTRUKSIAN BIDIRECTED OVERLAP GRAPH
UNTUK DNA SEQUENCE ASSEMBLY

ALBERT ADRIANUS

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Ilmu Komputer
pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR

BOGOR
2014

Penguji:
1 Irman Hermadi, SKom MS PhD
2 Mushthofa, SKom MSc

Judul Skripsi : Pengkonstruksian Bidirected Overlap Graph Untuk Dna Sequence
Assembly
Nama
: Albert Adrianus
NIM
: G64090109

Disetujui oleh

Dr Wisnu Ananta Kusuma, MT ST
Pembimbing

Diketahui oleh


Dr Ir Agus Buono, MSi MKom
Ketua Departemen

Tanggal Lulus:

PRAKATA
Pertama, penulis ingin mengucapkan syukur kepada Tuhan Yang Maha Esa
atas selesainya penelitian dan tugas skripsi yang berjudul Pengkonstruksian
Bidirected Overlap Graph Untuk DNA Sequence Assembly.
Penulis juga ingin berterima kasih kepada Bapak Wisnu Ananta Kusuma
selaku pembimbing skripsi yang telah membimbing dengan sabar dan senantiasa
memberi saran ketika penulis membutuhkan pertolongan. Selain itu, penulis juga
ingin berterima kasih kepada orangtua yang selalu mendukung penulis dalam
studi dan kepada saudari Nesya Nova Febriane yang membantu dalam proses
pengumpulan data. Penulis berharap agar hasil karya ini dapat bermanfaat bagi
orang lain.
Bogor, Februari 2014
Albert Adrianus


DAFTAR ISI
DAFTAR TABEL

vi

DAFTAR GAMBAR

vi

DAFTAR LAMPIRAN

vi

PENDAHULUAN

1

Latar Belakang

1


Perumusan Masalah

2

Tujuan Penelitian

2

Ruang Lingkup Penelitian

2

TINJAUAN PUSTAKA

2

DNA sequencing

2


Sequence assembly

3

OLC (Overlap Layout Consensus)

3

EDENA

4

Bidirected overlap graph

5

METODE

5


Pengumpulan data DNA sequence dan analisis kebutuhan

5

Penganalisisan Data

6

Pengevaluasian jumlah node dan edge serta waktu eksekusi
HASIL DAN PEMBAHASAN

11
13

Hasil

13

Pembahasan


15

SIMPULAN DAN SARAN

18

Simpulan

18

Saran

18

DAFTAR PUSTAKA

19

DAFTAR TABEL

1
2
3
4
5

Contoh-contoh assembler untuk setiap metode
Nilai masing-masing basa nitrogen
Proses pencarian overlap
Matriks untuk perhitungan jumlah node dan edge
Perbandingan jumlah node dan edge untuk 5000 reads (angka dan string)

3
10
11
13
13

DAFTAR GAMBAR
1
2
3
4
5
6
7
8
9
10
11

Metode overlap layout consensus
Contoh bidirected overlap graph
Contoh hasil simulasi metasim
Alur kerja sistem
Pengindeksan suffix array
Suffix array setelah diurutkan
Kode pemberian nilai suffix/prefix
Kode pemberian nilai jumlah karakter suffix/prefix
Perbandingan jumlah edge 2000 input dan
Perbandingan waktu eksekusi 2000 input dan
Perbandingan waktu eksekusi metode perbandingan angka

4
5
6
7
9
9
12
12
14
14
14

1

PENDAHULUAN
Latar Belakang
Teknologi DNA sequence assembly telah berkembang pesat dan
mempunyai peran penting dalam pembelajaran mengenai genome. Teknik DNA
sequence assembly muncul karena hingga saat ini belum ada teknologi yang dapat
memecah/menguraikan DNA suatu organisme yang menghasilkan whole genome
dalam satu kali percobaan. Sebelumnya teknologi yang digunakan untuk
memecah DNA adalah teknologi Sanger. Dengan Sanger, dihasilkan potonganpotongan reads dengan panjang 400-800 base pairs (bp) namun membutuhkan
waktu yang agak lama. Seiring berjalannya waktu, ditemukan suatu teknologi
yaitu high throughput sequencing technologies. Dengan teknologi tersebut, gen
bakteri dimungkinkan untuk diuraikan hanya dalam satu eksperimen dan dengan
biaya yang tidak tinggi (Brenner et al. 2000). Hasil dari penguraian ini berupa
jutaan potongan reads dengan panjang 35-50 bp. Namun demikian, potongan
reads tersebut baru dapat digunakan dengan menyambung reads tersebut menjadi
potongan-potongan yang lebih panjang (contigs). Karena itu diperlukan metode
untuk menyambung (assemble) reads yang ada. Secara garis besar metode yang
digunakan untuk menyambung reads ada dua yaitu metode overlap layout
consensus (OLC) dan dengan menggunakan graf de Bruijn (Kusuma et al. 2011).
Pada penelitian ini yang digunakan adalah metode OLC.
Sampai saat ini, pengembangan software untuk melakukan penyambungan
reads terus dilakukan. Salah satu software yang menggunakan metode OLC untuk
menyambung reads adalah Edena. Pada Edena, data input yang berupa potonganpotongan short reads akan diproses menjadi output yang berupa potonganpotongan contigs serta jumlah node dan edge yang terbentuk dari proses-proses
yang digunakan di dalam metode OLC. Proses-proses tersebut terdiri atas proses
penghilangan data reads yang redundan, pembuatan bidirected overlap graph,
penghilangan transitive edges, serta pembersihan graph (Hernandez et al. 2008).
Semua proses tersebut harus dilakukan secara berurutan.
Proses penghilangan data reads yang redundan dilakukan untuk membuat
proses selanjutnya menjadi lebih simple. Hal ini dikarenakan apabila jumlah reads
semakin banyak akan membuat overlap graph menjadi semakin kompleks. Hal ini
diperparah apabila ada reads yang sama karena dapat menyebabkan cycle.
Selanjutnya proses yang menjadi bahasan utama dalam penelitian ini yaitu
pembuatan bidirected overlap graph. Proses ini digunakan untuk mendeteksi
overlap dari masing-masing reads. Proses penghilangan transitive edges dan
pembersihan graph secara garis besar digunakan untuk membuat graph yang
sudah ada menjadi lebih simple.
Penelitian ini dilakukan dengan tujuan untuk mengkonstruksi bidirected
overlap graph yang merupakan salah satu proses dalam metode OLC. Proses
pembentukan bidirected overlap graph itu sendiri terdiri atas beberapa tahap.
Tahapan-tahapan tersebut adalah pengindeksan masing-masing reads dengan
menggunakan suffix array, pencarian bagian overlap dari masing-masing reads,
dan perhitungan node serta edge sebagai hasil keluaran dari penelitian ini. Pada
penelitian ini dicoba beberapa pengembangan terkait indexing dan pengenalan

2
overlap dari masing-masing reads. Adapun input yang digunakan adalah
potongan-potongan reads dengan panjang yang sama dan output yang dihasilkan
adalah jumlah node dan edge yang dihasilkan dari proses yang ada.

Perumusan Masalah
Perumusan masalah pada penelitian ini adalah untuk melihat apakah metode
yang digunakan dapat membuat bidirected overlap graph dengan ketepatan tinggi
dan memiliki waktu eksekusi yang cepat. Data keluaran dan waktu eksekusi akan
dibandingkan dengan data keluaran dan waktu eksekusi yang dihasilkan dengan
metode perbandingan string. Diharapkan dengan metode yang dipakai dapat
menghasilkan keluaran dengan ketepatan tinggi dan waktu eksekusi yang lebih
cepat.
Tujuan Penelitian
Penelitian ini bertujuan untuk mengkonstruksi bidirected overlap graph
untuk DNA sequence assembly.

Ruang Lingkup Penelitian
1
2
3
4
5
6

Ruang lingkup penelitian ini adalah:
Penelitian ini hanya sampai tahap pengkonstruksian bidirected overlap graph.
Data read yang dipakai adalah potongan Acidiphilium multivorum AIU301
plasmid pACMV4 DNA dengan panjang sama yaitu 35 bp.
Jumlah read yang dipakai adalah 2000 buah dan 5000 buah.
Data yang dipakai berekstensi txt dan data output dari software MetaSim.
Data read yang dipakai error free.
Jumlah minimum overlap yang digunakan adalah 20, 25, dan 30

TINJAUAN PUSTAKA
DNA Sequencing
Teknologi DNA sequencing/penguraian DNA telah lama berkembang. DNA
sequencing itu sendiri merupakan suatu proses penguraian/pemotongan DNA dari
suatu organisme secara acak menjadi potongan-potongan kecil berupa reads.
Pertama kali terdapat sebuah teknik penguraian DNA yang dikenal dengan teknik
sanger. Dengan teknik ini, organisme dapat diuraikan menjadi potongan-potongan
reads dengan panjang 400-800 bp. Base pairs merupakan satuan untuk satu
panjang basa nitrogen. Hasil dari teknologi Sanger dikategorikan sebagai long
reads. Kemudian tedapat teknologi yang lebih baru dan berkembang daripada
sanger yang dikenal sebagai next generation sequencer. Dengan teknologi
tersebut, DNA dapat diuraikan/dipotong menjadi reads dengan panjang yang lebih
pendek yaitu 20-400 bp dan dikategorikan sebagai short reads (Abegunde 2010).

3
Namun demikian, Sanger sequencer menghasilkan potongan/fragmen yang lebih
sedikit daripada next generation sequencer (Kusuma et al. 2011) sehingga next
generation sequencer lebih banyak digunakan dalam penelitian. Teknik DNA
sequencing secara garis besar terbagi menjadi 2 yaitu shotgun sequencing dan
map-based sequencing. Teknik shotgun sequencing lebih banyak digunakan
dalam penelitian mengenai DNA sequence (Chaisson et al. 2004). Teknik shotgun
sequencing terdiri atas Sanger sequencing, 454 sequencing, dan Illumina
sequencing (Abegunde 2010).
Sequence Assembly
DNA sequence assembly merupakan proses penyatuan/perakitan potonganpotongan reads untuk menentukan whole DNA suatu organisme. Teknik
penyatuan DNA sequence secara garis besar terbagi atas metode OLC, Eulerian
path, dan align-layout consensus. Pada metode align layout consensus, sequence
hanya dibandingkan dengan hasil sequence assembly yang sudah ada dan paling
dekat dengan sequence yang dipakai. Saat ini terdapat banyak assembler yang
dikembangkan dari metode-metode tersebut. Beberapa assembler dapat dilihat
pada Tabel 1. Namun demikian, setiap assembler walaupun dikembangkan dari
metode yang sama, tetap mempunyai pendekatan masing-masing yang berbeda
satu dengan yang lain. Selain pendekatan yang berbeda, penggunaan dari masingmasing assembler pun juga berbeda. Sebagai contoh Phrap assembler digunakan
untuk proses penyatuan dengan input berupa long reads. Berbeda halnya dengan
Edena yang digunakan untuk proses penyatuan short reads.
Tabel 1 Contoh-contoh assembler untuk setiap metode
Jenis metode
Assembler
OLC
Phrap, TIGR, Edena
Eulerian Path
Velvet, Euler
Align-layout consensus
AMOS, Mosaik
OLC
OLC merupakan salah satu metode yang digunakan untuk proses penyatuan
potongan-potongan reads DNA. OLC mendeskripsikan sequence assembly
sebagai suatu Hamiltonian path problem (Abegunde 2010). OLC sendiri terbagi
menjadi beberapa tahap yaitu tahap overlap, layout dan consensus. Pada tahap
overlap, dibentuk suatu overlap graph dengan setiap node dari graph tersebut
merepresentasikan reads dan edge dari graph tersebut merepresentasikan bagian
overlap dari node-node yang ada. Tahap selanjutnya adalah tahap layout. Pada
tahap ini dipilih overlap mana mana saja yang akan digunakan untuk disatukan
satu sama lain. Pada tahap ini reads-reads akan disatukan menjadi potongan yang
lebih panjang yaitu contigs. Tahap terakhir adalah tahap consensus. Pada tahap ini
dilakukan penyatuan terakhir dari contigs-contigs yang ada. Selain itu juga
dilakukan proses pengkoreksian potongan DNA yang error. Secara singkat
metode OLC dapat dilihat pada Gambar 1. Beberapa assembler yang digunakan
untuk proses penyatuan reads telah disebutkan sebelumnya. Salah satu assembler

4
yang dapat digunakan adalah Edena. Edena digunakan untuk menyatukan readsreads yang termasuk ke dalam short reads.

Gambar 1 Metode overlap layout consensus (Commins et al. 2009)
Jadi secara garis besar urutan metode OLC dapat diringkas sebagai berikut.
Pertama reads dimasukan sebagai input. Lalu overlapping region akan
diidentifikasi. Setelah itu akan dilakukan pembentukan suatu graph dengan
overlap direpresentasikan sebagai edge yang menghubungkan 2 node. Kemudian
akan dicari path terbaik dari graph yang terbentuk dengan Hamiltonian path.
Proses ini dilakukan secara terus menerus dan sequence yang ada digabungkan
untuk menghasilkan final consensus sequence yang merepresentasikan whole
genome suatu organisme (Commins et al. 2009).
Edena
Edena merupakan suatu assembler yang digunakan untuk menyatukan
potongan reads yang termasuk ke dalam short reads dengan pendekatan overlap
layout consensus. Secara sederhana, tahapan penting dalam Edena dapat dibagi
menjadi beberapa tahapan. Tahapan pertama adalah tahap penghilangan reads
yang redundan. Tahapan kedua adalah tahapan pembentukan suatu bidirected
overlap graph. Overlap graph tersebut terdiri dari node yang berupa potonganpotongan reads dan edge yang berupa overlap dari masing-masing reads yang ada.
Namun demikian overlap yang didata hanya overlap yang melebihi panjang
minimum overlap yang telah diberlakukan. Tahap ketiga adalah tahap
pembersihan graph yang dilakukan dengan penghilangan transitive edge dan
pembersihan bubbles. Tahap terakhir adalah proses penyatuan contigs sebagai
output (Hernandez et al. 2008).

5
Bidirected Overlap Graph
Bidirected overlap graph merupakan suatu graph dengan node dan edge
yang ada merepresentasikan reads yang saling overlap satu sama lain. Setiap edge
dalam bidirected overlap graph mempunyai tanda panah di kedua ujung dari edge
tersebut. Karena itu, terdapat 4 cara untuk menghubungkan dua node berdasarkan
perpaduan dari tanda panah di kedua ujung edge (Hernandez et al. 2008). Contoh
bidirected overlap graph dapat dilihat pada Gambar 2.

Gambar 2 Contoh bidirected overlap graph (Kundeti et al. 2010)

METODE
Pada penelitian ini akan dilakukan beberapa tahap yang akan dilakukan.
Tahap-tahapan tersebut antara lain pengumpulan data DNA sequence dan analisis
kebutuhan, penganalisisan data, dan pengevaluasian jumlah node dan edge pada
graph yang dihasilkan serta waktu eksekusi yang diperlukan.
Pengumpulan Data DNA Sequence dan Analisis Kebutuhan
Data yang digunakan merupakan potongan-potongan reads dengan panjang
35 bp berjumlah 2000 dan 5000 reads yang diambil dari simulasi dengan software
MetaSim. Setiap reads merupakan kombinasi dari basa-basa nitrogen yang terdiri
dari Adenine, Cytosine, Guanine dan Thymine. Data yang diperlukan merupakan
data yang bebas dari redundan. Organisme yang dipakai pada penelitian ini adalah
Acidiphilium multivorum AIU301 plasmid pACMV4 DNA dengan panjang
sequence asli 40 588 bp.
Dalam simulasi menggunakan MetaSim, digunakan error model dengan
pilihan exact. Hal tersebut dilakukan agar data yang dihasilkan nantinya
merupakan data yang bebas kesalahan (error free). Data yang error free itu
sendiri merupakan data dimana setiap basa-basa nitrogen dalam fragmen-fragmen
hasil tidak digantikan oleh basa nitrogen lainnya sehingga hasil akhirnya

6
merupakan potongan-potongan yang sama dengan organisme aslinya. Namun
demikian hasil simulasi dari software MetaSim masih memungkinkan memiliki
data yang redundan. Data redundan yang dimaksud adalah adanya reads yang
sama persis satu dengan yang lain. Pada penelitian ini data masukan yang
dibutuhkan merupakan data yang tidak redundan. Hal tersebut diperlukan agar
graph yang akan dibentuk tidak kompleks. Contoh hasil dari simulasi dengan
menggunakan software MetaSim dapat dilihat pada Gambar 3.

Gambar 3 Contoh hasil simulasi MetaSim
Data yang akan diambil hanyalah bagian reads saja. Bagian keterangan
tidak akan dibaca oleh sistem. Contoh bagian data reads yang akan dibaca oleh
sistem adalah “ATCCTCGACGAACAGCCAGTCGCGCAGGTTGGAGC”. Data
yang digunakan nantinya bukan saja reads yang merupakan input, namun
demikian juga reverse complement dari setiap reads yang ada. Reverse
complement itu sendiri merupakan reade yang urutannya dibalik lalu ditukar
dengan komplemennya. Dalam hal ini basa nitrogen A diganti dengan basa
nitrogen T, basa nitrogen T diganti dengan basa nitrogen A, basa nitrogen C
diganti basa nitrogen G, dan basa nitrogen G diganti dengan basa nitrogen C.
Akhirnya data yang digunakan oleh sistem adalah reads yang tidak redundan dan
reverse complement dari setiap reads yang tidak redundan itu.
Dari hasil analis yang telah dilakukan, diperoleh kebutuhan perangkat lunak
yang digunakan dalam pengembangan sistem. Perangkat lunak yang digunakan
untuk mengembangkan sistem ini adalah Dev-C++ 5.4.1. Sedangkan perangkat
keras yang digunakan untuk mengembangkan sistem ini adalah notebook bertipe
Asus A42J series, CPU Intel Core i3-380M 2.53 GHz dengan memori 4 GB.
Penganalisisan Data
Penganalisisan data dilakukan dengan beberapa tahapan dan proses. Proses
tersebut terdiri atas pembacaan reads, pembersihan reads yang redundan,

7
pembuatan reverse complement, pengindeksan dengan menggunakan suffix array,
pencarian overlap antar reads dan reverse complement, serta perhitungan node
dan edge sebagai hasil keluaran dari sistem. Alur kerja sistem secara ringkas dapat
dilihat pada Gambar 4.

Gambar 4 Alur kerja sistem
Pembacaan input reads
Pertama-tama sistem akan membaca data masukan yang berupa potonganpotongan reads hasil simulasi dari software MetaSim. Data yang akan dibaca oleh
sistem hanyalah data input yang merupakan potogan dari DNA, sedangkan data
yang berupa keterangan tidak dibaca oleh sistem. Potongan-potongan reads
tersebut mempunyai panjang 35 bp. Data yang digunakan sebanyak 2000 dan
5000 buah.
Pembersihan input reads redundan
Reads yang telah dibaca oleh sistem akan diperiksa satu persatu. Apabila
ada reads identik yang berjumlah lebih dari satu maka sistem hanya akan
mengambil salah satu reads. Hal ini agar data input yang akan digunakan untuk
proses selanjutnya bebas dari data yang redundan. Data yang bebas redundan
tersebut kemudian akan dimasukan ke dalam sebuah vector untuk digunakan pada
proses selanjutnya.
Pembuatan reverse complement
Setelah itu sistem akan membuat reverse complement dari masing-masing
reads yang menjadi masukan. Reverse complement itu sendiri merupakan reads
yang isinya ditukar menurut pasangan basa nitrogennya (A menjadi T, C menjadi
G, G menjadi C, dan T menjadi A) dan setelah itu urutan dari basa-basa nitrogen
tersebut diurutkan terbalik. Hal ini dikarenakan high throughput sequencing
technologies menguraikan DNA dari 2 sisi, dari sisi kiri dan sisi kanan. Karena itu,
hasil potongan-potongan reads tidak diketahui apakah merupakan potongan dari
rantai primer atau merupakan bagian dari rantai sekunder.

8
Penentuan jumlah minimum overlap
Poin penting dalam penelitian ini adalah jumlah minimum overlap, karena
akan menentukan banyaknya jumlah reads overlap satu sama lain (node) dan
jumlah overlap secara keseluruhan (edge). Hal ini juga dikarenakan apabila
jumlah minimum overlap terlalu sedikit akan membuat graph yang dibentuk
menjadi semakin kompleks. Graph yang terbentuk semakin kompleks karena
semakin kecil jumlah minimum overlap maka jumlah reads yang saling overlap
satu sama lain akan semakin banyak. Hal tersebut akan membuat jumlah node dan
edge yang dihasilkan akan semakin banyak. Sedangkan apabila jumlah minimum
overlap terlalu besar, maka akan menyebabkan semakin sedikit reads yang saling
overlap. Hal tersebut akan menyebabkan terjadinya dead end path pada graph
ketika proses penyambungan kumpulan reads yang saling overlap. Karena jumlah
minimum overlap menjadi penting maka selanjutnya sistem akan meminta jumlah
minimum overlap yang diharapkan oleh user. Jumlah minimum overlap yang
digunakan dalam rentang 20 sampai 30.
Pengindeksan dengan suffix array
Tahap selanjutnya yaitu masing-masing reads akan diindeks dengan
menggunakan suffix array. Suffix array merupakan perkembangan dari suffix tree.
Suffix array adalah sebuah list terurut dari semua suffix suatu kata (Manber dan
Myers 1993). Misalkan terdapat sebuah string “abracadabra”. Hal pertama yang
akan dilakukan adalah proses pemasangan indeks ke masing-masing karakter dari
string tersebut. Sebagai contoh pada string “abracadabra”, a akan diberi indeks 1,
b diberi indeks 2, r diberi indeks 3, a diberi indeks 4, c diberi indeks 5, a diberi
indeks 6, d diberi indeks 7, a diberi indeks 8, b diberi indeks 9, r diberi indeks 10,
dan a diberi indeks 11. Setelah pemasangan indeks terhadap masing-masing
karakter dari string tersebut kemudian dibuat suffix dari string tersebut sesuai
dengan indeks yang diberikan. Dalam kasus dengan string “abracadabra” maka
akan terdapat 11 suffix sesuai indeks yang ada yaitu “abracadabra”, “bracadabra”,
“racadabra”, “acadabra”, “cadabra”, “adabra”, “dabra”, “abra”, “bra”, “ra”, dan
“a”. Untuk lebih jelasnya dapat dilihat pada Gambar 5. Setelah didapatkan indeks
seperti di atas maka kemudian akan diurutkan secara lexicographical atau
berdasarkan abjad seperti pada Gambar 6.
Karena itu suffix array untuk string “abracadabra” adalah {10 7 0 3 5 8 1 4
6 9 2}. Pada penelitian ini, suffix array digunakan untuk mendata overlap dari
masing-masing reads menurut nilai jumlah minimum overlap yang telah
ditetapkan oleh user sebelumnya. Bagian suffix yang tidak memenuhi jumlah
minimum overlap akan langsung dihilangkan agar tidak terproses ke tahap
selanjutnya. Selain itu dilakukan juga hal yang sama pada setiap reverse
complement dari masing-masing reads. Pada tahap yang sama juga dilakukan
pengindeksan prefix dari masing-masing reads dan reverse complement yang ada.
Sehingga pada akhirnya didapat prefix dan suffix dari masing-masing reads dan
reverse complement untuk diproses pada tahap selanjutnya.

9

Gambar 5 Pengindeksan suffix array

Gambar 6 Suffix array setelah diurutkan
Pembuatan prefix
Pada tahap ini akan dicari prefix dari setiap reads dan reverse complement
yang ada. Prefix yang dicari juga mempunyai ketentuan tertentu. Prefix akan
didata apabila memiliki jumlah karakter lebih besar dari jumlah minimum overlap
yang dimasukan oleh user sebelumnya. Proses yang dilakukan sebenarnya sama
dengan proses pencarian suffix, namun demikian bedanya pada tahap ini yang
dicari adalah bagian prefix.
Pemberian nilai pada suffix dan prefix
Setelah masing-masing reads dan reverse complement telah memiliki prefix
dan suffix, maka setiap prefix dan suffix diubah menjadi angka. Adapun
pengubahan ini dilakukan untuk membuat waktu yang dibutuhkan pada proses

10
selanjutnya menjadi lebih singkat. Proses pengubahan dari string menjadi double
dilakukan dengan ketetapan tertentu. Aturan pertama adalah dengan cara
membuat angka tertentu bagi masing-masing huruf dari basa nitrogen yang ada.
Penentuan nilai bagi masing-masing basa nitrogen dapat dilihat pada Tabel 2.
Tabel 2 Nilai masing-masing basa nitrogen
Basa nitrogen
Nilai
A
1.000000
T
0.110000
G
0.111100
C
0.111111
Setelah itu dari masing-masing nilai dari huruf basa nitrogen yang ada
dikalikan dengan posisinya dan dengan suatu nilai tertentu. Lalu semua nilai
tersebut dijumlahkan hingga menjadi sebuah nilai tunggal yang merepresentasikan
suffix dan prefix dari masing-masing reads dan reverse complement yang ada
(aturan pertama). Nilai hasil tersebut memungkinkan adanya suatu collision yang
yaitu keadaan dimana ada dua suffix/prefix yang memiliki nilai yang sama namun
bentuk fisik yang berbeda, karena itulah diperlukan nilai kedua yaitu nilai jumlah
karakter suatu suffix/prefix (aturan kedua). Nilai suatu suffix/prefix (nilai suatu
overlap) dapat dicari dengan formula seperti berikut:
Basa nitrogen “A”:
Nilai suatu suffix/prefix =
Basa nitrogen “T”:
Nilai suatu suffix/prefix =

max
i=1 i

max
i=1 i

• a • 0.11
• a • 0.1111

Basa nitrogen “G”:
Nilai suatu suffix/prefix =

max
i=1 i

• a • 0.111111

Basa nitrogen “C”:
Nilai suatu suffix/prefix =

max
i=1 i

• a • 0.11111111

Keterangan:
i
: posisi suatu variabel
a
: nilai variabel pada posisi i
max
: jumlah maksimal variabel suatu suffix atau prefix
Aturan kedua digunakan untuk mengetahui jumlah tiap basa nitrogen pada
masing-masing suffix dan prefix. Pencarian nilai tiap jenis basa nitrogen berbeda.
Setiap basa nitrogen “A” akan menambah nilai sebesar 1, basa nitrogen “T” akan
menambah nilai jumlah karakter suffix/prefix sebelumnya sebesar 0.11, basa
nitrogen “G” akan menambah nilai jumlah karakter suffix/prefix sebelumnya
sebesar 0.1111, dan basa nitrogen “C” akan menambah nilai jumlah karakter
suffix/prefix sebelumnya sebesar 0.111111. Secara ringkas dapat dilihat pada
formula- formula berikut :

11
max

Nilai jumlah karakter suffix/prefix =

a
i=1

Keterangan:
a
: nilai variabel pada posisi i
max
: jumlah maksimal variabel suatu suffix atau prefix
Cuplikan kode program untuk pemberian nilai suatu suffix/prefix dan nilai
jumlah karakter suffix dan prefix dapat dilihat pada Gambar 7 dan Gambar 8.
Pencarian bagian overlap
Setelah didapatkan nilai dari tiap prefix dan suffix menurut aturan pertama
dan kedua, maka akan dilakukan proses pencarian overlap. Proses pencarian
overlap dilakukan dengan membandingkan nilai dari masing-masing prefix dan
suffix dari reads serta reverse complement satu sama lain.
Proses perbandingan dilakukan dengan mengurangkan nilai dari masingmasing suffix yang ada dengan nilai dari masing-masing prefix yang ada. Suffix
yang digunakan bukan hanya berasal dari bagian reads saja tetapi juga dari bagian
reverse complement. Demikian juga prefix yang digunakan merupakan prefix dari
bagian reads dan bagian reverse complement. Hal ini menyebabkan adanya 4
proses perbandingan yang dilakukan oleh sistem untuk menemukan bagian
overlap dari masing-masing reads. Dalam hal ini, apabila nilai aturan pertama dan
aturan kedua bernilai 0 maka reads/reverse complement dengan suffix tersebut
memiliki overlap dengan reads/reverse complement dengan prefix yang
bersangkutan. Untuk lebih jelasnya dapat dilihat pada Tabel 3.

Jenis
S reads reads
S reads RC
S RC reads
S RC RC

P
P
P
P

Tabel 3 Proses pencarian overlap
Keterangan
Nilai suffix dari masing-masing read dikurangkan dengan nilai
prefix dari masing-masing reads
Nilai suffix dari masing-masing read dikurangkan dengan nilai
prefix dari masing-masing reverse complement
Nilai suffix dari masing-masing reverse complement dikurangkan
dengan nilai prefix dari masing-masing reads
Nilai suffix dari masing-masing reverse complement dikurangkan
dengan nilai prefix dari masing-masing reverse complement

Pengevaluasian jumlah node dan edge serta waktu eksekusi
Pada tahap ini dilakukan proses evaluasi pada jumlah node dan edge yang
dihasilkan oleh sistem serta waktu yang dibutuhkan untuk memprosesnya. Setelah
semua reads (termasuk reverse complement) yang saling overlap telah terdata,
maka dilakukan proses selanjutnya yaitu proses perhitungan node dan edge yang
merupakan output dari sistem ini. Node merupakan perwakilan dari jumlah reads
yang saling overlap satu sama lain sedangkan edge merupakan perwakilan dari
jumlah overlap yang ada.

12

Gambar 7 Kode pemberian nilai suffix/prefix

Gambar 8 Kode pemberian nilai jumlah karakter suffix/prefix
Setelah proses pencarian overlap dilakukan maka setiap reads yang saling
overlap akan dimasukan ke dalam suatu matriks yang mempunyai ukuran n × n.
Huruf n merupakan perwakilan dari jumlah reads keseluruhan. Pada sistem ini
digunakan 2 matriks. Matriks pertama digunakan untuk menandai bagian overlap
pada reads dan matriks kedua digunakan untuk menampung bagian overlap dari
reverse complement. Pada matriks 1, apabila reads i overlap dengan reads j maka
matriks 1 baris i dan kolom j akan berisi nilai integer 1. Apabila reads i overlap
dengan reverse complement j maka matriks 1 baris i dan kolom j akan berisi nilai
integer 1. Sedangkan apabila reads i overlap dengan reads j dan reverse
complement j maka nilainya akan menjadi 3. Hal yang sama juga diberlakukan
pada matriks 2. Apabila reverse complement i overlap dengan reads j maka
matriks 2 baris i dan kolom j akan berisi nilai integer 1. Apabila apabila reverse
complement i overlap dengan reverse complement j maka matriks 2 baris i dan
kolom j akan berisi nilai integer 1. Sedangkan apabila reverse complement i
overlap dengan reads j dan reverse complement j maka nilainya akan menjadi 3.
Setelah semua matriks terisi maka dicari jumlah node dan edge dari kedua matriks
tersebut. Secara ringkas dapat dilihat pada Tabel 4.

13
Selain jumlah node dan edge, salah satu hal yang diperhatikan dalam
penelitian ini adalah waktu eksekusi yang diperlukan oleh metode perbandingan
angka dan metode perbandingan string untuk jumlah input yang sama. Waktu
eksekusi dihitung setelah user memasukan input berupa nilai panjang minimum
overlap yang diinginkan. Waktu ekseskusi digunakan untuk membandingkan
antara metode perbandingan angka dan metode perbandingan string. Satuan waktu
yang digunakan adalah detik (s).
Tabel 4 Matriks untuk perhitungan jumlah node dan edge
Keterangan
Matriks
Baris i
Kolom j
overlap
Matriks 1
reads i
reads j
ya
reads i
reverse
ya
complement j
reads i
reads j dan
ya
reverse
complement j
Matriks 2
reverse
reads j
ya
complement i
reverse
reverse
ya
complement i
complement j
reverse
reads j dan
ya
complement i
reverse
complement j

Nilai
1
2
3
1
2
3

HASIL DAN PEMBAHASAN
Hasil
Pada penelitian ini jumlah minimum overlap yang digunakan adalah 20, 25,
dan 30. Hasil penelitian yang dicari adalah jumlah node dan edge dan waktu
eksekusi yang dibutuhkan. Perbandingan jumlah node dan edge antara
penggunaan metode perbandingan angka dan metode perbandingan string dapat
dilihat pada Tabel 5.
Tabel 5 Perbandingan jumlah node dan edge untuk 5000 reads (angka dan string)
Perbandingan angka
Minimum
overlap
20
25
30

Perbandingan string

Jumlah node

Jumlah edge

4 704
4 436
3 469

19 872
13 234
6 606

Minimum
overlap

Jumlah node
20
25
30

4 704
4 436
3 469

Jumlah
edge
19 872
13 234
6 606

Perbandingan hasil jumlah edge antara input 2000 dan 5000 reads dapat
dilihat pada Gambar 9. Warna abu-abu mewakili jumlah input 5000 dan warna

14
hitam mewakili jumlah input 2000. Garis vertikal merupakan jumlah edge
sedangkan garis horizontal merupakan jumlah minimum overlap yang digunakan
yaitu 20, 25, dan 30.

Jumlah edge

25000

2000 input

19872

20000

13234

15000

5000 input

10000

5000

6606
3372

2356

0

1222

Pembahasan

20

25

30

Minimum
overlap
Series1
Series2
Gambar 9 Perbandingan jumlah edge 2000 input dan
5000 input
18

Waktu (s)

20

2000 input

15

12

5000 input

10
5

6
3

2

1

0
20

25

30

Minimum
Series1 overlap
Series2
Gambar 10 Perbandingan waktu eksekusi 2000 input dan
5000 input
114

Waktu (s)

120

Perbandingan angka

100

67

80

Perbandingan string

60
40
20

30

18

12

6

0
20

25

30

Minimum
overlap
Series1
Series2
Gambar 11 Perbandingan waktu eksekusi metode perbandingan angka
dan perbandingan string untuk 5000 input reads
Perbandingan waktu eksekusi antara 2000 dan 5000 reads untuk metode
perbandingan angka dapat dilihat pada Gambar 10. Sedangkan perbandingan
waktu eksekusi antara metode perbandingan angka dan metode perbandingan

15
string untuk 5000 reads dapat dilihat pada Gambar 11. Perhitungan waktu dimulai
ketika user telah memasukan nilai jumlah minimum overlap sebagai input yang
dibutuhkan oleh sistem.
Pembahasan
Beberapa hal yang akan dibahas adalah mengenai jumlah node, edge, dan
waktu. Pada pembahasan ini akan dicoba untuk menjawab apakah metode yang
dipakai mempunyai ketepatan yang baik dan waktu eksekusi yang lebih cepat dari
metode perbandingan string.
Ketepatan hasil node dan edge
Hasil node dan edge yang dihasilkan oleh sistem akan dibandingkan dengan
hasil node dan edge yang dihasilkan dengan metode perbandingan string.
Perbandingan dilakukan dengan jumlah reads 5000 buah. Dapat dilihat pada
Tabel 5, perbandingan antara jumlah node dan edge dari metode perbandingan
angka (metode sistem) dan metode perbandingan string. Dari hasil yang didapat,
hasil sistem mempunyai ketepatan 100% dibandingkan dengan metode
perbandingan string untuk jumlah reads 5000 buah. Hal ini menyatakan bahwa
metode yang digunakan pada sistem (perbandingan angka) berhasil memberikan
hasil yang maksimal. Ketepatan dari sistem ini tak lepas dari nilai suatu
suffix/prefix dan nilai jumlah karakter overlap yang digunakan. Nilai dari suatu
suffix/prefix diharapkan mempunyai nilai yang unik. Unik yang dimaksud adalah
bahwa nilai suatu suffix/prefix dari suatu suffix atau prefix sama satu sama lain
apabila suffix dan prefix tersebut mempunyai karakter yang terdiri dari basa-basa
nitrogen dengan jumlah yang sama dan dengan urutan yang sama. Namun
demikian karena hasil suffix dan prefix yang dihasilkan dari reads dan reverse
complement sangat banyak maka dapat menyebabkan ada beberapa nilai yang
tidak unik. Maksud tidak unik disini adalah bahwa ada suffix atau prefix yang
mempunyai nilai suatu suffix/prefix yang sama tetapi sebenarnya mempunyai
karakter penyusun yang berbeda baik urutan maupun jumlahnya. Karena itulah
nilai kedua digunakan. Nilai kedua (nilai jumlah karakter overlap) digunakan
ketika sistem menemukan dua nilai suatu suffix/prefix yang sama. Jadi setiap
suffix dan prefix dibandingkan dengan menggunakan 2 nilai dengan harapan
bahwa hasil yang didapat maksimal. Untuk jumlah reads input 5000 buah, sistem
dapat memberikan ketepatan 100%.
Jumlah edge antara input 2000 dan 5000 reads
Hal kedua yang akan dibahas adalah jumlah edge yang dihasilkan sistem
dengan jumlah input yang berbeda. Dari Gambar 9 dapat dilihat jumlah edge yang
dihasilkan oleh sistem untuk input 2000 buah dengan jumlah minimum 20, 25,
dan 30 dan jumlah edge yang dihasilkan oleh sistem untuk input 5000 buah
dengan jumlah minimum yang sama. Dari hasil terdapat perbedaan yang sangat
mencolok antara keduanya. Jumlah edge pada input 5000 jauh lebih banyak
daripada jumlah edge dengan input 2000. Hal tersebut dikarenakan semakin
banyak input yang dimasukan ke dalam sistem maka jumlah reads dan reverse
complement juga akan semakin banyak. Hal ini kemudian akan berdampak pada
semakin banyaknya kemungkinan overlap antara satu reads dengan reads yang

16
lain. Karena edge merupakan perwakilan dari jumlah overlap maka dengan
semakin banyaknya input maka akan membuat jumlah edge semakin banyak.
Karena itulah semakin banyak jumlah input yang dimasukan maka akan membuat
jumlah edge dan node semakin banyak yang akhirnya akan berdampak pada
kekompleksan dari graph yang terbentuk dan waktu eksekusi yang diperlukan
lebih lama.
Namun demikian terdapat sebuah hal penting yang perlu diperhatikan dalam
penggunaan data dari MetaSim yaitu pemilihan organisme, jumlah reads, serta
panjang reads. Misalnya dipilih suatu organisme dengan panjang 2000 bp maka
apabila dipilih panjang potongan reads 35 dengan jumlah 2000 buah, akan
membuat graph yang dihasilkan menjadi sangat kompleks. Hal ini dikarenakan
setiap reads akan saling overlap satu sama lain, tidak ada satupun reads yang
tidak overlap. Sehingga diperlukan pemilihan yang benar untuk panjang reads
dan jumlah hasil agar tidak membuat graph menjadi kompleks.
Evaluasi waktu
Waktu merupakan esensi penting dalam penelitian ini. Hal ini dikarenakan
metode perbandingan angka diharapkan selain memiliki ketepatan tinggi tetapi
juga memberikan waktu eksekusi yang lebih cepat daripada perbandingan string.
Waktu eksekusi mulai dihitung tepat saat user telah memasukan nilai jumlah
minimum overlap yang diharapkan. Sebelumnya akan dibahas perbedaan waktu
eksekusi antara pemprosesan input 2000 dan 5000 buah. Dari Gambar 10 dapat
dilihat perbedaan waktu eksekusi dengan jumlah input berbeda yaitu 2000 dan
5000 buah. Waktu eksekusi untuk input dengan jumlah data yang lebih kecil
(2000 buah) lebih cepat daripada waktu eksekusi untuk jumlah data yang lebih
besar (5000 buah). Hal ini dikarenakan semakin banyaknya jumlah input data
maka proses pengindeksan dan pencarian overlap akan semakin lama. Jumlah
suffix dan prefix yang dibuat semakin banyak sehingga akan menambah waktu
untuk perbandingan suffix dan prefix. Selain itu nilai jumlah minimum overlap
yang dipilih juga menentukan waktu eksekusi yang diperlukan. Semakin besar
nilai jumlah minimum overlap maka jumlah suffix dan prefix yang dihasilkan
dalam pengindeksan akan semakin sedikit dan juga sebaliknya apabila nilai
jumlah minimum overlap semakin kecil maka jumlah suffix dan prefix yang
dihasilkan akan semakin banyak. Hal ini dikarenakan suffix akan diindeks mulai
dari panjang reads (35 bp) – 1 sampai dengan nilai jumlah minimum overlap yang
dimasukan oleh user. Sebagai contoh antara nilai jumlah minimum overlap 25 dan
30. Ketika user memasukan nilai jumlah minimum overlap 25 maka suffix dan
prefix yang terbentuk akan memiliki panjang dari 34, 33, 32, … , 27, 26, 25
sehingga setiap 1 reads akan menghasilkan 10 suffix dan 10 prefix. Beda halnya
dengan ketika user memasukan nilai minimum overlap 30. Ketika user
memasukan nilai minimum overlap 30 maka panjang suffix dan prefix yang
dihasilkan akan memiliki panjang mulai dari 34 sampai 30. Dengan demikian 1
reads hanya akan menghasilkan 5 suffix dan 5 prefix. Semakin banyaknya jumlah
suffix dan prefix akan membuat waktu eksekusi semakin lama sehingga jumlah
minimum overlap 30 akan memiliki waktu eksekusi yang lebih cepat daripada
nilai minimum overlap 25.
Selain perbedaan waktu eksekusi untuk perbedaan jumlah reads dan
perbedaan jumlah minimum overlap, hal penting mengenai evaluasi waktu adalah

17
perbandingan waktu eksekusi antara kedua metode (metode perbandingan angka
dan metode perbandingan string). Untuk perbedaan waktu eksekusi akan dipakai
jumlah input 5000 buah yang diproses oleh kedua metode yang ada. Dari Gambar
11 dapat dilihat perbedaan yang signifikan antara waktu eksekusi yang diperlukan
antara kedua metode. Waktu eksekusi yang digunakan untuk metode
perbandingan angka secara keseluruhan jauh lebih cepat daripada waktu eksekusi
metode perbandingan string. Bahkan dapat dilihat secara keseluruhan waktu yang
digunakan metode perbandingan string 5 kali lipat daripada waktu eksekusi
dengan metode perbandingan angka. Hal ini dapat terjadi karena metode proses
perbandingan angka menggunakan proses pengurangan sedangkan metode
perbandingan string menggunakan proses penyamaan karakter dari masingmasing prefix dan suffix. Proses pengurangan membutuhkan waktu yang lebih
cepat daripada proses penyamaan masing-masing string suffix-prefix dan hal itu
telah dibuktikan dari hasil yang telah didapat dari penelitian ini. Hal tersebut
kemudian memberikan hasil positif pada penelitian ini karena dapat membentuk
bidirected overlap graph dengan waktu yang lebih cepat dan ketepatan 100%.
Metode perbandingan angka menghasilkan output lebih cepat daripada
perbandingan string dikarenakan untuk membandingkan 2 buah string, komputer
akan merubahnya dahulu menjadi angka yang kemudian akan dibandingkan satu
sama lain. Dengan metode perbandingan angka, waktu yang diperlukan untuk
mengubah string menjadi angka dapat dihemat. Sistem ini mempunyai
kompleksitas O(n2). Hal tersebut dikarenakan sistem menggunakan nested loop
sebanyak 2.
Pembuktian ketepatan metode perbandingan angka
Metode perbandingan angka merupakan ide dari penulis. Karena itu perlu
dibuktikan apakah metode ini dapat menghasilkan ketepatan yang sama ataukah
justru menghasilkan hasil yang salah. Karena itu metode ini dibuktikan secara
empiris. Dengan input data berjumlah 1000 buah, metode ini dapat menghasilkan
ketepatan jumlah node dan edge yang saling overlap hingga 100%. Data hasil
dapat dilihat pada lampiran. Namun demikian dengan semakin banyaknya data
input yang digunakan dapat menyebabkan suatu collision. Pada penelitian ini akan
dicari error collision rate sebagai acuan sampai jumlah data input berapakah
metode ini dapat digunakan dan tetap menghasilkan output dengan ketepatan yang
tinggi. Error collision rate ini dicari dengan membandingkan antara jumlah edge
yang dihasilkan oleh metode perbandingan angka dan jumlah edge yang
dihasilkan oleh metode perbandingan string. Untuk itu dilakukan pengujian untuk
nilai ketepatan metode perbandingan angka sampai dengan jumlah input/masukan
80 000 reads dengan panjang setiap string yang dibandingkan satu sama lain
memiliki panjang maksimum 34 bp dan panjang minimum adalah 30 bp. Hal ini
dikarenakan untuk pengujian yang dilakukan digunakan panjang minimum
overlap 30 bp. Jumlah input yang dimasukkan berjumlah 80 000 buah, namun
demikian sistem menemukan bahwa jumlah reads yang tidak redundan berjumlah
69 936 buah. Karena setiap reads akan memiliki suffix berjumlah 5 yaitu dengan
panjang 34, 33, 32, 31, dan 30 bp, maka secara keseluruhan jumlah string dari
reads berjumlah 349 680 buah. Sedangkan karena sistem juga memakai reverse
complement yang memiliki jumlah yang sama dengan jumlah reads uniqe yang
ada sehingga jumlah string total yang dibandingkan satu sama lain berjumlah 699

18
360 buah. Untuk jumlah masukan tersebut, metode perbandingan angka
menghasilkan jumlah edge yang sama persis dengan metode perbandingan string
yaitu berjumlah 336 414 buah. Sehingga, sampai dengan jumlah input 80 000,
metode perbandingan angka yang digunakan mempunyai nilai ketepatan 100%
dan nilai error collision rate sampai dengan jumlah input 80 000 adalah 0%.

SIMPULAN DAN SARAN
Simpulan
Penelitian ini telah berhasil menghasilkan suatu sistem yang dapat
membentuk bidirected overlap graph. Dari hasil dan pembahasan dapat
disimpulkan bahwa semakin banyak jumlah input yang dimasukan maka waktu
eksekusi akan semakin banyak. Demikian pula dengan semakin kecilnya nilai
jumlah overlap yang dimasukan maka akan membuat waktu eksekusi semakin
lama. Namun demikian dari penelitian ini didapatkan suatu sistem yang dapat
menghemat waktu eksekusi yang diperlukan dengan ketepatan hasil 100% pada
jumlah input 5000 buah. Hal ini dikarenakan metode yang digunakan dalam
sistem adalah metode perbandingan angka yang ternyata memerlukan waktu yang
lebih cepat daripada perbandingan string dalam pencarian overlap.

Saran
Namun demikian setiap sistem mempunyai kekurangan. Karena itu untuk ke
depannya, sistem ini dapat dikembangkan lagi. Beberapa saran yang dapat
diberikan oleh penulis:
1 Menambah ragam organisme yang dipakai sebagai input dari sistem
2 Menambah jumlah input reads yang digunakan sehingga dapat melihat sejauh
mana metode perbandingan angka dapat digunakan.
3 Menambah atau mengembangkan aturan-aturan yang digunakan dalam
perbandingan angka sehingga ketepatan yang dihasilkan oleh sistem tetap
mencapai 100% walaupun jumlah input yang digunakan semakin banyak.

19

DAFTAR PUSTAKA
Abegunde T. 2010. Comparison of DNA sequence assembly algorithms using
mixed data sources [tesis]. Saskatoon (CA): University of Saskatchewan.
Brenner S, Johnson M, Bridgham J, Golda G, Lloyd DH, Johnson D, Luo SJ,
McCurdy S, Foy M, Ewan M, et al. 2000. Gene expression analysis by
massively parallel signature sequencing (MPPS) on microbead arrays. Nat
Biotechnol. 18:630-634.
Chaisson M, Pevzner P, Tang H. 2004. Fragment assembly with short reads.
Bioinformatics. 20(13):2067-2074.
Commins J, Toft C, Fares MA. 2009. Computational biology methods and their
application to the comparative genomics of endocellular symbiotic bacteria
of insects. Biol Proced Online. 11:52-78. doi: 10.1007/s12575-009-9004-1.
Hernandez D, François P, Farinelli, Østerås M, Schrenzel J. 2008. De novo
bacterial genome sequencing: millions of very short reads assembled on a
desktop computer. Genome Res. 18(5):802-9. doi: 10.1101/gr.072033.107.
Kundeti VK, Rajasekaran S, Dinh H, Vaughn M, Thapar V. 2010. Efficient
parallel and out of core algorithms for constructing large bi-directed de
Bruijn graphs. BMC Bioinformatics. 11:560. doi: 10.1186/1471-2105-11560.
Kusuma WA, Ishida T, Akiyama Y. 2011. A combined approach for de novo
DNA sequence assembly of very short reads. IPSJ Transaction on
Bioinformatics. 3(10):21-33. doi: 10.2197/ipsjtbio.4.21.
Manber U, Myers EW. 1993. Suffix arrays: a new method for on-line string
searches. SICOMP. 22(5):935-948.

20
Lampiran 1 Pembuktian empiris untuk 1000 reads dengan minimum overlap 30
Read 1

Read 2

Overlap

CCTGGCGGAATTGCGTCA
GCGCCTTGCTGCGGGCG
GCGCCGGAAAGAGCACAT
CCGCCGTCATCCTTGCC
TGTCGCCAATCTTGTCGCG
CTCGGGGCGCACCATC
CTGTCTCACGCGTTAACCT
CCCCTCGATTTCGGCG
TGGGTGATCGTGATGTAT
GTGCCAGCAGCTATATT
GCTCCAGTCGTCGGTAAC
GATCAGCGATCCGGGAG
CTCCCGGATCGCTGATCG
TTACCGACGACTGGAGC
CGTCTGTGGTCCCGACGA
TCCGTCCCGCAGTCCCG
AGTAGAGAGATCGCGAAC
GCATCAATGAGCCAGAG
AGTAGAGAGATCGCGAAC
GCATCAATGAGCCAGAG
GCGGCACCAACTTTATAG
GCGCTGCAAGCCAGCCT
TCTTGATCTGGGGGTATC
GCAGACCAAGGCGCTGA
CCCTGACAGCAGGAGTGC
CACCCATGACCATCACC
GGTGATGGTCATGGGTGG
CACTCCTGCTGTCAGGG
TGCGCTGTCAGTGGACAT
CCGGGGGCGGGTGGAGC
AGGACGAAGGTGCCGGTG
ATGTTGGTGTCGATGAA
GCCGGGACTGCGGGACGG
ATCGTCGGGACCACAGA
TCGTGCCCAAGGGATTAC
AGCTATCGCAAACATTT
CTGAGAACGGCGTTCACG
TTCTCAAGACACGTCTT
CAGAAATGTTTGCGATAG
CTGTAATCCCTTGGGCA
CGCATACACCACCATTTTT
TGGTGTTGCACGCTGG
GCACCCTCTAGCGGAACG
GTTTCTGTGCCCACACT
CGAAGCGATCTGCGCGCG
CTATCTCGACAGTCCGT
CACCCCCTACGACCCGCG
CAGCCCCTATGCCGCCA
CTATCTCGAAAGCGCCCG
CTGGAATGGAGGGTTCG
CGAACCCTCCATTCCAGC
GGGCGCTTTCGAGATAG

GCGGAATTGCGTCAGCGC
CTTGCTGCGGGCGATGT
CGCCGGAAAGAGCACATC
CGCCGTCATCCTTGCCA
GTCGCCAATCTTGTCGCG
CTCGGGGCGCACCATCC
TGTCTCACGCGTTAACCT
CCCCTCGATTTCGGCGA
GTGATCGTGATGTATGTG
CCAGCAGCTATATTCGT
TCCAGTCGTCGGTAACGA
TCAGCGATCCGGGAGCA
CGGATCGCTGATCGTTAC
CGACGACTGGAGCGGCT
TCTGTGGTCCCGACGATC
CGTCCCGCAGTCCCGGC
GAGAGATCGCGAACGCAT
CAATGAGCCAGAGCAAG
GTAGAGAGATCGCGAACG
CATCAATGAGCCAGAGC
CACCAACTTTATAGGCGC
TGCAAGCCAGCCTGTGC
GATCTGGGGGTATCGCAG
ACCAAGGCGCTGAACCG
CTGACAGCAGGAGTGCCA
CCCATGACCATCACCAC
TGATGGTCATGGGTGGCA
CTCCTGCTGTCAGGGGC
CTGTCAGTGGACATCCGG
GGGCGGGTGGAGCAGCG
GAAGGTGCCGGTGATGTT
GGTGTCGATGAAATCGC
CGGGACTGCGGGACGGAT
CGTCGGGACCACAGACG
TGCCCAAGGGATTACAGC
TATCGCAAACATTTCTG
AACGGCGTTCACGTTCTC
AAGACACGTCTTCATGA
AAATGTTTGCGATAGCTG
TAATCCCTTGGGCACGA
TACACCACCATTTTTTGGT
GTTGCACGCTGGACCG
CCCTCTAGCGGAACGGTT
TCTGTGCCCACACTGTT
AGCGATCTGCGCGCGCTA
TCTCGACAGTCCGTATG
CCCCCTACGACCCGCGCA
GCCCCTATGCCGCCAGC
TCGAAAGCGCCCGCTGGA
ATGGAGGGTTCGCCTGC
ACCCTCCATTCCAGCGGG
CGCTTTCGAGATAGGCG

GCGGAATTGCGTCAGCG
CCTTGCTGCGGGCG
CGCCGGAAAGAGCACAT
CCGCCGTCATCCTTGCC
GTCGCCAATCTTGTCGCG
CTCGGGGCGCACCATC
TGTCTCACGCGTTAACCT
CCCCTCGATTTCGGCG
GTGATCGTGATGTATGTG
CCAGCAGCTATATT
TCCAGTCGTCGGTAACGA
TCAGCGATCCGGGAG
CGGATCGCTGATCGTTAC
CGACGACTGGAGC
TCTGTGGTCCCGACGATC
CGTCCCGCAGTCCCG
GAGAGATCGCGAACGCA
TCAATGAGCCAGAG
GTAGAGAGATCGCGAAC
GCATCAATGAGCCAGAG
CACCAACTTTATAGGCGC
TGCAAGCCAGCCT
GATCTGGGGGTATCGCA
GACCAAGGCGCTGA
CTGACAGCAGGAGTGCC
ACCCATGACCATCACC
TGATGGTCATGGGTGGC
ACTCCTGCTGTCAGGG
CTGTCAGTGGACATCCGG
GGGCGGGTGGAGC
GAAGGTGCCGGTGATGT
TGGTGTCGATGAA
CGGGACTGCGGGACGGA
TCGTCGGGACCACAGA
TGCCCAAGGGATTACAG
CTATCGCAAACATTT
AACGGCGTTCACGTTCTC
AAGACACGTCTT
AAATGTTTGCGATAGCTG
TAATCCCTTGGGCA
TACACCACCATTTTTTGG
TGTTGCACGCTGG
CCCTCTAGCGGAACGGTT
TCTGTGCCCACACT
AGCGATCTGCGCGCGCT
ATCTCGACAGTCCGT
CCCCCTACGACCCGCGCA
GCCCCTATGCCGCCA
TCGAAAGCGCCCGCTGG
AATGGAGGGTTCG
ACCCTCCATTCCAGCGGG
CGCTTTCGAGATAG

21
Lampiran 1 Lanjutan
TTTGTTCCATCGAAAAAA
TTCCTAAATTATTTAAA
GTGGTGATGGTCATGGGT
GGCACTCCTGCTGTCAG
GTGGTGATGGTCATGGGT
GGCACTCCTGCTGTCAG
GGCGGGATCGAAGACGGA
GACGGTGCGGGTTTCGT
GGCGGGATCGAAGACGGA
GACGGTGCGGGTTTCGT
GGCAGCCGCGATTACCAG
GCGTTCGAGACCTATCT
GGCAGCCGCGATTACCAG
GCGTTCGAGACCTATCT
CCCAGAACCAAGTCGACA
GCGGCGTGTGACTGCGT
CATGCCGTGCTCACCGCG
ATCGCTCTCGACCTGTC
CCTATCCGGTTGT