Saya adalah Ika Zahara, panggil aja Ika ato Zahara, hehe..

Sabtu, 23 April 2011

Sekilas tentang Bioinformatika

Bioinformatika adalah disiplin ilmu yang merupakan perpaduan dari (i) ilmu biologi molekuler, (ii) ilmu komputasional seperti matematika, statistika dan ilmu komputer, dan (iii) teknologi informasi yang bertujuan untuk memecahkan problema yang terdapat di biologi molekuler. Contoh topik utama bidang ini meliputi basis data untuk mengelola informasi biologis, penyejajaran sekuens (sequence alignment), prediksi struktur untuk meramalkan bentuk struktur protein maupun struktur sekunder RNA, analisis filogenetik, dan analisis ekspresi gen.

Sejarah

Istilah bioinformatics mulai dikemukakan pada pertengahan era 1980-an untuk mengacu pada penerapan komputer dalam biologi. Namun demikian, penerapan bidang-bidang dalam bioinformatika (seperti pembuatan basis data dan pengembangan algoritma untuk analisis sekuens biologis) sudah dilakukan sejak tahun 1960-an.
Kemajuan teknik biologi molekular dalam mengungkap sekuens biologis dari protein (sejak awal 1950-an) dan asam nukleat (sejak 1960-an) mengawali perkembangan basis data dan teknik analisis sekuens biologis. Basis data sekuens protein mulai dikembangkan pada tahun 1960-an di Amerika Serikat, sementara basis


Trend Bioinformatika Dunia

Ledakan data/informasi biologi itu yang mendorong lahirnya Bioinformatika. Karena Bioinformatika adalah bidang yang relatif baru, masih banyak kesalahpahaman mengenai definisinya. Komputer sudah lama digunakan untuk menganalisa data biologi, misalnya terhadap data-data kristalografi sinar X dan NMR (Nuclear Magnetic Resonance) dalam melakukan penghitungan transformasi Fourier, dsb. Bidang ini disebut sebagai Biologi Komputasi. Bioinformatika muncul atas desakan kebutuhan untuk mengumpulkan, menyimpan dan menganalisa data-data biologis dari database DNA, RNAmaupun protein tadi. Untuk mewadahinya beberapa jurnal baru bermunculan (misalnya Applied Bioinformatics), atau berubah nama seperti Computer Applications in the Biosciences (CABIOS) menjadi BIOInformatic yang menjadi official journal dari International Society for Computational Biology (ICSB) (nama himpunan tidak ikut berubah). Beberapa topik utama dalam Bioinformatika dijelaskan di bawah ini.

Keberadaan database adalah syarat utama dalam analisa Bioinformatika. Database informasi dasar telah tersedia saat ini. Untuk database DNA yang utama adalah GenBank di AS. Sementara itu bagi protein, databasenya dapat ditemukan di Swiss-Prot (Swiss) untuk sekuen asam aminonya dan di Protein Data Bank (PDB) (AS) untuk struktur 3D-nya. Data yang berada dalam database itu hanya kumpulan/arsip data yang biasanya dikoleksi secara sukarela oleh para peneliti, namun saat ini banyak jurnal atau lembaga pemberi dana penelitian mewajibkan penyimpanan dalam database. Trend yang ada dalam pembuatan database saat ini adalah isinya yang makin spesialis.

Setelah informasi terkumpul dalam database, langkah berikutnya adalah menganalisa data. Pencarian database umumnya berdasar hasil alignment/pensejajaran sekuen, baik sekuen DNA maupun protein. Metode ini digunakan berdasar kenyataan bahwa sekuen DNA/protein bisa berbeda sedikit tetapi memiliki fungsi yang sama. Misalnya protein hemoglobin dari manusia hanya sedikit berbeda dengan yang berasal dari ikan paus. Kegunaan dari pencarian ini adalah ketika mendapatkan suatu sekuen DNA/protein yang belum diketahui fungsinya maka dengan membandingkannya dengan yang ada dalam database bisa diperkirakan fungsi daripadanya. Algoritma untuk pattern recognition seperti Neural Network, Genetic Algorithm dll telah dipakai dengan sukses untuk pencarian database ini. Salah satu perangkat lunak pencari database yang paling berhasil dan bisa dikatakan menjadi standar sekarang adalah BLAST (Basic Local Alignment Search Tool).

Bioinformatika di Indonesia

Di Indonesia Bioinformatika masih belum dikenal oleh masyarakat luas. Di kalangan peneliti sendiri, mungkin hanya para peneliti biologi molekuler yang sedikit banyak mengikuti perkembangannya karena keharusan menggunakan perangkat-perangkat Bioinformatika untuk analisa data. Sementara itu di kalangan TI masih kurang mendapat perhatian.
Saat ini mata ajaran bioinformatika maupun mata ajaran dengan muatan bioinformatika sudah diajarkan di beberapa perguruan tinggi di Indonesia. Sekolah Ilmu dan Teknologi Hayati (http://www.sith.itb.ac.id) ITB menawarkan mata kuliah "Pengantar Bioinformatika" untuk program Sarjana dan mata kuliah "Bioinformatika" untuk program Pascasarjana. Fakultas Teknobiologi Universitas Atma Jaya, Jakarta menawarkan mata kuliah "Pengantar Bioinformatika". Mata kuliah "Bioinformatika" diajarkan pada Program Pascasarjana Kimia Fakultas MIPA Universitas Indonesia (UI), Jakarta. Mata kuliah "Proteomik dan Bioinformatika" termasuk dalam kurikulum program S3 bioteknologi Universitas Gadjah Mada (UGM), Yogyakarta. Materi bioinformatika termasuk di dalam silabus beberapa mata kuliah untuk program sarjana maupun pascasarjana biokimia,biologi, dan bioteknologi pada Institut Pertanian Bogor (IPB). Selain itu, riset-riset yang mengarah pada bioinformatika juga telah dilaksanakan oleh mahasiswa program S1 Ilmu Komputer maupun program pascasarjana biologi serta bioteknologi IPB.

sumber1
sumber2
sumber3

Sabtu, 02 April 2011

Kinerja Komputasi dengan Parallel Processing

Parallel processing atau pemrosesan parallel merupakan penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.

Kinerja Komputasi

Untuk mempersingkat waktu perhitungan ini, ada dua cara umum yakni:

1. Membuat prosesor yang lebih cepat.
2. Melakukan kalkulasi secara paralel dengan banyak prosesor.

Untuk cara pertama, jalur elektronik prosesor harus diperkecil agar sinyal mengalir makin pendek dan arus makin kecil. Sayangnya, teknologi manufaktur semikonduktor saat ini masih memakai teknik litografi dan sudah mendekati limitnya. Sebagai informasi, chip prosesor terkini (Intel i7) telah mencapai skala 45 nano meter. Jika diperkecil lagi, kemungkinan kesalahan dalam proses manufaktur membesar sehingga keandalannya makin turun.

Dengan demikian, harapan mempercepat komputasi yang masih terbuka lebar hanyalah dengan cara paralelisme. Pada paradigma ini, algoritma program harus dipecah menjadi beberapa lajur (thread) yang bisa dikerjakan secara bersamaan. Masing-masing lajur akan dikerjakan oleh satu prosesor, dan nanti hasil akhirnya dikumpulkan kembali. Secara teoritis, jika sebuah beban mampu diselesaikan oleh satu prosesor dalam waktu T, maka N buah prosesor akan mampu menyelesaikannya dalam waktu T/N.

Untuk mewujudkan komputasi paralel, diperlukan dukungan perangkat keras yang menyediakan banyak prosesor, dan juga sistem operasi untuk membagi beban komputasi ke seluruh prosesor tersebut. Sistem ini ternyata tidak mudah, sehingga pada awalnya, komputasi paralel hanya bisa dinikmati oleh sistem yang mahal dan besar seperti komputer super. Untunglah dengan berkembangnya jaman, komputasi paralel mulai bisa ditemukan pada komputer biasa.

Multiprocessor dan Multicore
Pada pasar PC, implementasi awal paralelisme adalah dengan memasang banyak CPU dalam satu komputer (multi-processor) (misal komputer dengan dual Pentium Pro). Kini, hal ini juga dicapai dengan memperbanyak jumlah prosesor dalam satu CPU (multi-core), mulai dari dual core dan kini quad core (misal Intel Xeon, Intel i7, AMD Phenom). Untuk komputer multi-processor atau multi-core ini, sistem operasi modern menyediakan fasilitas multithreading, atau symetric multi processing (SMP). Linux telah mendukung hal ini dari awal, sementara Windows memilikinya sejak Windows NT. Untuk melakukan pemrograman paralel pada sistem ini, bisa digunakan OpenMP.

Kluster komputer
Cara lebih kolosal untuk memperbanyak jumlah prosesor adalah dengan membangun komputer kluster. Pada sistem ini beberapa komputer dikoneksikan melalui jaringan, sehingga dapat bergotong royong menghitung beban komputasi. Salah satu model adalah sistem Beowulf, yang dapat dibangun dari komputer biasa dan dikoordinasi dengan sistem operasi Linux. Sebuah kluster Beowulf bisa memiliki hingga 1024 node, sehingga secaar teoritis, contoh kasus simulasi molekular sebelumnya bisa dihitung dalam waktu sekitar 1 minggu. Kekurangannya, sistem kluster ini besar, mahal dan sulit pembangunan maupun pemeliharaannya. Untuk sistem kluster, sistem operasi biasanya harus dilengkapi dengan perangkat madya (middle ware) yang menyediakan komunikasi antar proses melalui jaringan. Beberapa perangkat madya terkenal adalah Parallel Virtual Machine (PVM) atau Message Passing Interface (MPI).

GPGPU
Sementara itu dari jalan lain, berkembang teknologi Graphics Processing Unit (GPU) yang aslinya bertugas membantu CPU (sebagai co-processor) untuk mempercepat tampilan 3 dimensi (3D). GPU memiliki arsitektur khusus guna memproses pixel-pixel grafik secara parallel. Di dorong oleh kebutuhan KKT, maka GPU didorong menjadi General Purpose Graphics Processing Unit (GPGPU) yang juga dapat melakukan perhitungan matematis secara umum. Saat ini, GPU termaju (misal NVIDIA GTX 285) memiliki 240 core, dan dapat digabung hingga 3 buah GPU dalam satu komputer (3 way SLI). Jelas bahwa GPU merupakan cara memperbanyak core yang lebih murah dan ringkas dibanding dengan komputer kluster. Dukungan perangkat lunak untuk GPU paling hangat saat ini adalah CUDA, namun dalam waktu dekat, nampaknya akan muncul OpenCL.

sumber1
sumber2