Halo teman-teman, apa kabar? Kali ini saya ingin membahas sedikit tentang salah satu problem yang ada di web rosalind.info. Judulnya ialah "Complementing a Strand of DNA". Sebagai acuan, teman-teman bisa cek dahulu problem yang akan kita bahas (disini).
Di problem ini kita akan disajikan sebuah string yang merupakan urutan DNA. Dan tugas kita ialah mencari komplemen atau pasangan dari urutan DNA tersebut. Seperti yang kita ketahui, masing-masing molekul DNA itu memiliki pasangan: adenine (A) berpasangan dengan thymine (T), cytosine (C) berpasangan dengan guanine (G).
Bisa dibilang mencari pasangan DNA itu ibarat menyatukan kedua ujung kalung; bagian paling kanan kalung akan bertemu dengan bagian paling kiri kalung, butir kalung nomor 2 dari kanan akan bertemu dengan butir nomor 2 dari kiri, dan seterusnya (lihat gambar diatas).
Anggap saja urutan DNA tersebut adalah kalung yang kita beri nomor 1, 2, 3, 4, 5, dan 6 secara urut. Jika ujung kalungnya kita satukan, maka urutan 1 akan berpasangan dengan urutan 6, urutan 2 dengan urutan 5, urutan 3 dengan urutan 4. Jika DNA nomor 1, 2, 3 adalah A, C, G; maka pasangannya ialah nomor 6, 5, 4 yang memiliki DNA T, G, C; seperti itu.
Jadi, untuk mencari jawaban dari problem ini ialah pertama dengan me-reverse atau membalik urutan DNA. Kemudian setelah dibalik, kita akan ganti huruf-huruf DNA tersebut dengan huruf komplemen atau pasangannya: 'A' > 'T', 'T' > 'A', 'G' > 'C', dan 'C' > 'G'.
Berikut kode untuk pengerjaannya (dalam bahasa java) :
public void solve() {
String s = in.read();
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) == 'A') {
out.print('T');
}
else if (s.charAt(i) == 'T') {
out.print('A');
}
else if (s.charAt(i) == 'G') {
out.print('C');
}
else if (s.charAt(i) == 'C') {
out.print('G');
}
}
}
Seperti yang teman-teman lihat, kodenya cukup simpel. Kita cuman cukup mengurutkan DNA tersebut dari belakang sambil mengganti huruf-huruf tersebut menjadi huruf pasangannya.
Disini saya memakai fungsi in.read() untuk meng-input data string. Fungsi tersebut adalah extend dari salah satu sistem input di java, yaitu BufferedReader. Sedangkan untuk outputnya saya memakai fungsi out.println(). Fungsi tersebut adalah modifikasi dari fungsi System.out.println() yang merupakan fungsi default di java. Untuk lebih jelasnya teman-teman bisa melihat kode tambahan untuk memodifikasi fungsi tersebut di versi lengkap kode saya di github.
Sekian dari saya. Jika teman-teman ingin menanyakan sesuatu, teman-teman bisa menulisnya di kolom komentar. Semoga bermanfaat dan sampai jumpa di artikel berikutnya!
Referensi :
Sumber gambar 1 :https://www.facebook.com/ProjectRosalind/
Sumber gambar 2 :https://en.wikipedia.org/wiki/Nucleic_acid_secondary_structure
No comments:
Post a Comment