RNAเช่นเดียวกับ DNA เป็นโมเลกุลที่พบในเซลล์ที่เข้ารหัสข้อมูลทางพันธุกรรม มันประกอบไปด้วยนิวคลีโอไทด์ซึ่งถูกแสดงโดยเบสอะดีนีน (A), ไซโตซิน (C), กัวนีน (G) และ uracil (U) * โคดอนเป็นลำดับของนิวคลีโอไทด์สามตัว
โปรตีนเป็นโมเลกุลขนาดใหญ่ที่มีฟังก์ชั่นมากมายเช่นเคราตินที่พบในเส้นผมและเล็บและเฮโมโกลบินซึ่งมีออกซิเจนในเซลล์เม็ดเลือด พวกเขาประกอบด้วยกรดอะมิโนซึ่งถูกเข้ารหัสเป็น codons ในโมเลกุล RNA บางครั้ง codons ที่แตกต่างกันอาจเข้ารหัสสำหรับกรดอะมิโนเดียวกัน โดยทั่วไปแล้วกรดอะมิโนแต่ละตัวจะแสดงด้วยตัวอักษรเดียวเช่น H หมายถึงฮิสทิดีน
ที่กำหนดลำดับของACGU
คุณสามารถแปลเป็นสตริงโปรตีนที่สอดคล้องกัน?
* DNA ประกอบด้วย ACGT โดยที่ T คือ thymine ในระหว่างการถอดรหัส DNA เป็น RNA, ไทมีนจะถูกแทนที่ด้วย uracil
อินพุต
ข้อมูลที่ป้อนจะเป็นสตริงเดียวที่ประกอบด้วยอักขระตัวACGU
พิมพ์ใหญ่เท่านั้น คุณอาจจะเขียนฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบสำหรับความท้าทายนี้
เอาท์พุต
คุณอาจเลือกที่จะแสดงผลด้วยการพิมพ์หรือส่งกลับสตริง
แปลควรเริ่มต้นที่ codon เริ่มต้น ( AUG
แสดงเป็นM
) และสิ้นสุดที่หยุด codon (หนึ่งUAA
, UAG
หรือUGA
, แสดงเป็น*
) มีสี่กรณีที่อินพุตอาจไม่ถูกต้อง:
- อินพุตไม่เริ่มต้นด้วย codon เริ่มต้น
- อินพุตไม่ได้ลงท้ายด้วยรหัสหยุด
- ความยาวของอินพุตไม่เท่ากับ 3
- อินพุตมีตัวหยุดโค้ดที่อื่นนอกเหนือจากตอนท้าย
ในทุกกรณีเหล่านี้Error
ควรได้รับผลลัพธ์ โปรดทราบว่าแตกต่างจากหยุด codons เริ่ม codons อาจปรากฏขึ้นหลังจากการเริ่มต้นของสตริง
มิฉะนั้นคุณควรแปลงโคดอนแต่ละตัวเป็นกรดอะมิโนตามลำดับผ่านตารางรหัส RNAต่อไปนี้:
* 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
... และส่งออกสตริงที่แปล
ตัวอย่าง
กรณีไม่ถูกต้อง:
<empty string> -> Error
AUG -> Error
UAA -> Error
AUGCUAG -> Error
AAAAAAA -> Error
GGGCACUAG -> Error
AUGAACGGA -> Error
AUGUAGUGA -> Error
AUGUUUGUUCCGUCGAAAUACCUAUGAACACGCUAA -> Error
กรณีที่ถูกต้อง:
AUGUGA -> M*
AUGAGGUGUAGCUGA -> MRCS*
AUGGGUGAGAAUGAAACGAUUUGCAGUUAA -> MGENETICS*
AUGCCAGUCGCACGAUUAGUUCACACGCUCUUGUAA -> MPVARLVHTLL*
AUGCUGCGGUCCUCGCAUCUAGCGUUGUGGUUAGGGUGUGUAACUUCGAGAACAGUGAGUCCCGUACCAGGUAGCAUAAUGCGAGCAAUGUCGUACGAUUCAUAG -> MLRSSHLALWLGCVTSRTVSPVPGSIMRAMSYDS*
AUGAAAAACAAGAAUACAACCACGACUAGAAGCAGGAGUAUAAUCAUGAUUCAACACCAGCAUCCACCCCCGCCUCGACGCCGGCGUCUACUCCUGCUUGAAGACGAGGAUGCAGCCGCGGCUGGAGGCGGGGGUGUAGUCGUGGUUUACUAUUCAUCCUCGUCUUGCUGGUGUUUAUUCUUGUUUUAA -> MKNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVYYSSSSCWCLFLF*
แก้ไข: เพิ่มกรณีทดสอบเพิ่มเติม
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟดังนั้นโค้ดในจำนวนไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ
หมายเหตุ: ฉันไม่มีความเชี่ยวชาญในด้านอณูชีววิทยาดังนั้นโปรดแก้ไขให้ฉันถ้าฉันทำอะไรผิดไป :)
M
*