我在生物信息学:全景一文中,阐述了生物信息学的应用领域非常广泛。但是有一点是很关键的,就是细胞内的生命活动都遵从中心法则,生物信息学很多时候就是在中心法则上做文章:
如何用计算机语言描述生物大分子,以及它们之间如何相互转换,是首先要面对的问题。
遗传信息从 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
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()是为了提高程序的健壮性,使得输入序列中含有小写字母时也能转换成功。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 .
GATGGAACTTGACTACGTAAATT
GAUGGAACUUGACUACGUAAAUU