RNA , seperti DNA, adalah molekul yang ditemukan dalam sel yang mengkode informasi genetik. Ini terdiri dari nukleotida , yang diwakili oleh basa adenin (A), sitosin (C), guanin (G) dan urasil (U). * Kodon adalah urutan dari tiga nukleotida.
Protein adalah molekul besar yang melakukan beragam fungsi, seperti keratin yang ditemukan pada rambut dan kuku serta hemoglobin yang membawa oksigen dalam sel darah. Mereka terbuat dari asam amino , yang dikodekan sebagai kodon dalam molekul RNA. Terkadang kodon yang berbeda dapat dikodekan untuk asam amino yang sama. Setiap asam amino biasanya diwakili oleh satu huruf, misalnya H berarti histidin.
Dengan urutan ACGU
, dapatkah Anda menerjemahkannya ke dalam string protein yang sesuai?
* DNA terdiri dari ACGT, di mana T adalah timin. Selama transkripsi DNA ke RNA, timin digantikan oleh urasil.
Memasukkan
Input akan berupa string tunggal yang hanya terdiri dari karakter ACGU
dalam huruf besar. Anda dapat menulis fungsi atau program lengkap untuk tantangan ini.
Keluaran
Anda dapat memilih untuk mencetak melalui pencetakan atau pengembalian string (pilihan terakhir hanya tersedia dalam kasus fungsi).
Penerjemahan harus dimulai dengan kodon awal ( AUG
, direpresentasikan sebagai M
) dan berakhir pada kodon berhenti (salah satu UAA
, UAG
atau UGA
, diwakili sebagai *
). Ada empat kasus di mana input mungkin tidak valid:
- Input tidak dimulai dengan kodon start
- Input tidak diakhiri dengan kodon stop
- Panjang input bukan kelipatan 3
- Input berisi kodon stop di tempat lain selain di akhir
Dalam semua kasus ini, Error
harus dikeluarkan. Perhatikan bahwa, tidak seperti stop kodon, kodon start dapat muncul setelah dimulainya string.
Jika tidak, Anda harus mengubah setiap kodon menjadi asam amino masing-masing melalui tabel kodon RNA berikut :
* UAA UAG UGA
A GCU GCC GCA GCG
C UGU UGC
D GAU GAC
E GAA GAG
F UUU UUC
G GGU GGC GGA GGG
H CAU CAC
I AUU AUC AUA
K AAA AAG
L UUA UUG CUU CUC CUA CUG
M AUG
N AAU AAC
P CCU CCC CCA CCG
Q CAA CAG
R CGU CGC CGA CGG AGA AGG
S UCU UCC UCA UCG AGU AGC
T ACU ACC ACA ACG
V GUU GUC GUA GUG
W UGG
Y UAU UAC
... dan tampilkan string yang diterjemahkan.
Contohnya
Kasus tidak valid:
<empty string> -> Error
AUG -> Error
UAA -> Error
AUGCUAG -> Error
AAAAAAA -> Error
GGGCACUAG -> Error
AUGAACGGA -> Error
AUGUAGUGA -> Error
AUGUUUGUUCCGUCGAAAUACCUAUGAACACGCUAA -> Error
Kasus yang valid:
AUGUGA -> M*
AUGAGGUGUAGCUGA -> MRCS*
AUGGGUGAGAAUGAAACGAUUUGCAGUUAA -> MGENETICS*
AUGCCAGUCGCACGAUUAGUUCACACGCUCUUGUAA -> MPVARLVHTLL*
AUGCUGCGGUCCUCGCAUCUAGCGUUGUGGUUAGGGUGUGUAACUUCGAGAACAGUGAGUCCCGUACCAGGUAGCAUAAUGCGAGCAAUGUCGUACGAUUCAUAG -> MLRSSHLALWLGCVTSRTVSPVPGSIMRAMSYDS*
AUGAAAAACAAGAAUACAACCACGACUAGAAGCAGGAGUAUAAUCAUGAUUCAACACCAGCAUCCACCCCCGCCUCGACGCCGGCGUCUACUCCUGCUUGAAGACGAGGAUGCAGCCGCGGCUGGAGGCGGGGGUGUAGUCGUGGUUUACUAUUCAUCCUCGUCUUGCUGGUGUUUAUUCUUGUUUUAA -> MKNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVYYSSSSCWCLFLF*
Sunting: Menambahkan lebih banyak kasus uji
Mencetak gol
Ini adalah kode golf, jadi kode dalam byte paling sedikit menang.
Catatan: Saya bukan ahli dalam biologi molekuler, jadi jangan ragu untuk mengoreksi saya jika saya salah menyatakan :)
M
dan diakhiri dengan *
.