我在生物信息学:全景一文中,阐述了生物信息学的应用领域非常广泛。但是有一点是很关键的,就是细胞内的生命活动都遵从中心法则,生物信息学很多时候就是在中心法则上做文章:
- 分子生物学中心法则:DNA –> RNA –> 蛋白质 –> 细胞表型
- 基因组中心法则:基因组 –> 转录组 –> 蛋白质组 –> 细胞表型
如何用计算机语言描述生物大分子,以及它们之间如何相互转换,是首先要面对的问题。
问题描述
中心法则涉及3种生物序列,在计算机中,以字符串的形式表示:
-
DNA序列:由4种字母{A, T, G, C}形成单链DNA(其对应链可通过碱基互补配对原则推测出来);
-
RNA序列:由4种字母{A, U, G, C}形成RNA链;
-
蛋白序列:由20种英文字母(除开B, J, O, U, X和Z)组成形成多肽链。
遗传密码是三联体的,有4 x 4 x 4共64种可能,但是只编码20种氨基酸。说明有的密码并不编码氨基酸(终止密码子),而有的多个密码子共同决定一个氨基酸。所谓遗传翻译,就是把三联体密码对应到其代表的氨基酸的过程。
**给定:**一条单链的mRNA序列(最长不超过10kb)。
**需得:**其编码的蛋白质序列。
示例数据
|
|
示例结果
|
|
Python实现
Translating_RNA_into_Protein.py
|
|
- 用一个字典来保存密码子表。Python的字典就是用来保存各种“键=值”对的。
- 习题中的密码子表是很简单的,事实上不同物种,不同细胞器,其密码子表可能不一样。比如起始密码子并不是只有常见的ATG,而终止密码子在生物界也不止三个。
BioPython
中的密码子表搜集得比较全面,是很好的参考。 - 翻译过程中循环的退出条件是:出现错误密码子(只有一个碱基,或两个碱基等),或者遇到终止密码子。
学生信欢迎关注我的知乎,请“点赞”为爱发电,只“收藏”不点赞都是耍流氓。