Tuesday, 14 September 2021

Translating RNA Into Protein (Rosalind)

       

rosalind


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 outputdi 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