我在生物信息学:全景一文中,阐述了生物信息学的应用领域非常广泛。但是有一点是很关键的,就是细胞内的生命活动都遵从中心法则,生物信息学很多时候就是在中心法则上做文章:
分子生物学中心法则:DNA --> RNA --> 蛋白质 --> 细胞表型
基因组中心法则:基因组 --> 转录组 --> 蛋白质组 --> 细胞表型
如何用计算机语言描述生物大分子,以及它们之间如何相互转换,是首先要面对的问题。
问题描述
遗传信息从 DNA 流向 RNA 的过程,称为转录。DNA 有 4 张不同的扑克牌,RNA 也有 4 张,唯一的区别是 DNA 中的 T,在 RNA 中变成了 U,因此 RNA 的 4 张牌是:A、U、C、G。因此,给定一条与编码链相同的 DNA 序列,要转录成 RNA 只需要将 T 替换成 U 就可以了。
给定:一条长度至多 1000bp 的 DNA 序列。
应得:其转录的 RNA 序列。
示例数据
GATGGAACTTGACTACGTAAATT
示例结果
GAUGGAACUUGACUACGUAAAUU
Python 实现
Transcribing_DNA_into_RNA.py
import sys
def transcript(dna):
return dna.upper().replace('T', 'U')
def test():
dna = 'GATGGAACTTGACTACGTAAATT'
return transcript(dna) == 'GAUGGAACUUGACUACGUAAAUU'
if __name__ == '__main__':
if not test():
print("transcript: Failed")
sys.exit(1)
with open('rosalind_rna.txt') as fh:
dna = fh.read()
rna = transcript(dna)
print(rna)
只需要将
T
替换成U
就可以了;替换前先用 upper()是为了提高程序的健壮性,使得输入序列中含有小写字母时也能转换成功。
Problem
An RNA string is a string formed from the alphabet containing 'A', 'C', 'G', and 'U'.
Given a DNA string corresponding to a coding strand, its transcribed RNA string is formed by replacing all occurrences of 'T' in with 'U' in .
Given: A DNA string having length at most 1000 nt.
Return: The transcribed RNA string of .
Sample Dataset
GATGGAACTTGACTACGTAAATT
Sample Output
GAUGGAACUUGACUACGUAAAUU
Rosalind 刷题计划:
生物信息学算法之 Python 实现|Rosalind 刷题笔记:001 碱基统计
生物信息学算法之 Python 实现|Rosalind 刷题笔记:002 中心法则:转录
生物信息学算法之 Python 实现|Rosalind 刷题笔记:003 中心法则:翻译
如果你喜欢这篇文章,请点个“赞”吧!或者点击“在看”让更多朋友看到,点击“阅读原文”可以在知乎专栏上给我留言