Halo teman-teman, apa kabar? Kali ini saya ingin membahas sedikit tentang salah satu problem yang ada di web rosalind.info. Judulnya ialah "Translating RNA into Protein". Sebagai acuan, teman-teman bisa cek dahulu problem yang akan kita bahas (disini).
Di problem ini kita akan disajikan sebuah string RNA yang menggunakan format FASTA. Tugas kita ialah menerjemahkan atau men-translate string RNA tersebut ke bahasa protein. Untuk menerjemahkan string tersebut kita perlu menggunakan kamus penerjemah yang kita sebut tabel kodon RNA.
Berikut kode untuk pengerjaannya (dalam bahasa java) :
static void solve() {
HashMap<String, String> vocab = new HashMap<>();
vocab.put("AUU", "I");
vocab.put("AUC", "I");
vocab.put("AUA", "I");
vocab.put("AUG", "M");
vocab.put("ACU", "T");
vocab.put("ACC", "T");
vocab.put("ACA", "T");
vocab.put("ACG", "T");
vocab.put("AAU", "N");
vocab.put("AAC", "N");
vocab.put("AAA", "K");
vocab.put("AAG", "K");
vocab.put("AGU", "S");
vocab.put("AGC", "S");
vocab.put("AGA", "R");
vocab.put("AGG", "R");
vocab.put("UUU", "F");
vocab.put("UUC", "F");
vocab.put("UUA", "L");
vocab.put("UUG", "L");
vocab.put("UCU", "S");
vocab.put("UCC", "S");
vocab.put("UCA", "S");
vocab.put("UCG", "S");
vocab.put("UAU", "Y");
vocab.put("UAC", "Y");
vocab.put("UAA", "Stop");
vocab.put("UAG", "Stop");
vocab.put("UGU", "C");
vocab.put("UGC", "C");
vocab.put("UGA", "Stop");
vocab.put("UGG", "W");
vocab.put("CUU", "L");
vocab.put("CUC", "L");
vocab.put("CUA", "L");
vocab.put("CUG", "L");
vocab.put("CCU", "P");
vocab.put("CCC", "P");
vocab.put("CCA", "P");
vocab.put("CCG", "P");
vocab.put("CAU", "H");
vocab.put("CAC", "H");
vocab.put("CAA", "Q");
vocab.put("CAG", "Q");
vocab.put("CGU", "R");
vocab.put("CGC", "R");
vocab.put("CGA", "R");
vocab.put("CGG", "R");
vocab.put("GUU", "V");
vocab.put("GUC", "V");
vocab.put("GUA", "V");
vocab.put("GUG", "V");
vocab.put("GCU", "A");
vocab.put("GCC", "A");
vocab.put("GCA", "A");
vocab.put("GCG", "A");
vocab.put("GAU", "D");
vocab.put("GAC", "D");
vocab.put("GAA", "E");
vocab.put("GAG", "E");
vocab.put("GGU", "G");
vocab.put("GGC", "G");
vocab.put("GGA", "G");
vocab.put("GGG", "G");
String s = ns();
for (int i = 0; i < s.length(); i += 3) {
String nowProt = vocab.get(s.substring(i, i + 3));
if (nowProt == "Stop") return;
out.print(nowProt);
}
}
Seperti yang teman-teman lihat, kodenya cukup simpel. Untuk awalnya kita cuma membuat "map" dari tabel kodon RNA. Kemudian, kita mulai terjemahkan string tersebut per-tiga huruf (char).
Disini saya memakai fungsi ns() untuk meng-input data string. Fungsi tersebut adalah extend dari salah satu sistem input di java, yaitu BufferedReader. Sedangkan untuk output-nya saya memakai fungsi out.print() . Fungsi tersebut adalah modifikasi dari fungsi System.out.print() yang merupakan fungsi default di java. Untuk lebih jelasnya teman-teman bisa melihat kode tambahan untuk memodifikasi fungsi tersebut (input maupun output) 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://www.abbexa.com/mRNA-cancer-treatment
No comments:
Post a Comment