Rosalind 008 Translating RNA into Protein

背景:

正如核酸是核苷酸聚合物一样,蛋白质是 称为氨基酸的较小分子;20种氨基酸通常出现在每个物种中。 就像给出核酸一级结构一样 根据其核苷酸的顺序,蛋白质的主要结构是 其氨基酸。一些蛋白质由几个称为多肽的亚链组成,而另一些则由单个多肽形成; 参见图1

蛋白质为细胞执行的所有实际功能提供动力,因此推测, 理解生命的关键在于解释氨基酸链之间的关系 以及这条氨基酸链最终构建的蛋白质的功能。蛋白质组学是专门研究蛋白质的领域。

蛋白质是如何产生的?遗传密码,在整个过程中发现 1950年代后期的巧妙实验数量,详细介绍了一种称为信使RNA(mRNA)的RNA分子转化为蛋白质氨基酸 创造。翻译的明显困难在于,必须以某种方式将 4 个 RNA 碱基翻译成 20 个氨基酸的语言; 为了创建每个可能的氨基酸,我们必须将3-核碱基(称为密码子)翻译成氨基酸。 请注意,有43=6443=64可能的密码子,以便多个密码子可以编码相同的氨基酸。 两种特殊类型的密码子是起始密码子(AUG),它编码氨基酸蛋氨酸 总是指示翻译的开始,以及三个终止密码子(UAA,UAG,UGA), 它不编码氨基酸并导致翻译结束。

蛋白质总是由RNA产生的概念,而RNA又总是由RNA产生 DNA,构成了分子生物学的核心教条。像所有教条一样,它并不总是成立; 但是,它提供了对真相的极好近似。

称为核糖体细胞器通过以下方式产生肽 使用称为转移RNA(tRNA)的辅助分子。 单个tRNA分子在一端具有一串三个RNA核苷酸(称为反密码子)和一个氨基 另一端是酸。核糖体从DNA转录的RNA分子(参见“将DNA转录成RNA”),称为信使RNA(mRNA),并一次检查一个密码子。 在每一步中,tRNA在该位置具有与mRNA互补的反密码子键, 并且在tRNA的另一端发现的氨基酸被添加到生长的肽中 在tRNA的剩余部分被喷射到细胞中之前链,核糖体看起来 对于下一个tRNA分子。

并非每个RNA碱基最终都会被翻译成蛋白质,因此RNA的间隔 (或翻译成RNA的DNA间隔),编码蛋白质 具有很大的生物学意义;这样的DNA或RNA间隔称为基因。因为蛋白质的产生 驱动细胞过程,基因区分生物并作为基础 遗传,或遗传特征的过程。

https://rosalind.info/problems/prot/

问题:

给出一个核糖核酸串 对应于一条mRNA链(长度最多为10kbp)。

返回编码的蛋白质串

代码:

proteins = {
        'AUA':'I', 'AUC':'I', 'AUU':'I', 'AUG':'M',
        'ACA':'T', 'ACC':'T', 'ACG':'T', 'ACU':'T',
        'AAC':'N', 'AAU':'N', 'AAA':'K', 'AAG':'K',
        'AGC':'S', 'AGU':'S', 'AGA':'R', 'AGG':'R',
        'CUA':'L', 'CUC':'L', 'CUG':'L', 'CUU':'L',
        'CCA':'P', 'CCC':'P', 'CCG':'P', 'CCU':'P',
        'CAC':'H', 'CAU':'H', 'CAA':'Q', 'CAG':'Q',
        'CGA':'R', 'CGC':'R', 'CGG':'R', 'CGU':'R',
        'GUA':'V', 'GUC':'V', 'GUG':'V', 'GUU':'V',
        'GCA':'A', 'GCC':'A', 'GCG':'A', 'GCU':'A',
        'GAC':'D', 'GAU':'D', 'GAA':'E', 'GAG':'E',
        'GGA':'G', 'GGC':'G', 'GGG':'G', 'GGU':'G',
        'UCA':'S', 'UCC':'S', 'UCG':'S', 'UCU':'S',
        'UUC':'F', 'UUU':'F', 'UUA':'L', 'UUG':'L',
        'UAC':'Y', 'UAU':'Y', 'UAA':'*', 'UAG':'*',
        'UGC':'C', 'UGU':'C', 'UGA':'*', 'UGG':'W',
    }
coded = 'AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUGA'
decoded = ''
for i in range(0, len(coded)-3, 3):
    if  proteins[coded[i:i+3]] == '*':
            break
    decoded += proteins[coded[i:i+3]]
print(decoded)

"""
MAMAPRTEINSTRING
"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值