题目:
统计核苷酸数目(Counting DNA Nucleotides)
Given: A DNA string ss of length at most 1000 nt.
所给:一条被命名为ss的DNA链,长度至少为1000个碱基。
Return: Four integers (separated by spaces) counting the respective number of times that the symbols ‘A’, ‘C’, ‘G’, and ‘T’ occur in ss.
需得:四个以空格分隔的整数,分别为ss中A、C、G、T的数量。
测试数据
AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC
测试输出
20 12 17 21
生物背景
细胞是生命活动的主要承担者,早在一百多年前,人们就意识到细胞核在调节细胞生命活动中起着中心作用。细胞核中充满着被称为染色质(分裂期凝缩为染色体)的生物大分子,核酸是染色质的重要组成部分,由单体核苷酸聚合形成。核苷酸又由五碳糖、核酸基团和碱基组成。对DNA分子来说,碱基有四种,分别为腺嘌呤(adenine,A)、鸟嘌呤(guanine,G)、胞嘧啶(cytosine,C)和胸腺嘧啶(thymine,T)。遗传信息就包含在碱基序列中。
Python知识点
DNA序列是一个字符串,Python中针对字符串提供了大量方法可直接调用,其中“.count()”方法可用于计数。
将文件保存在与.py文件相同的路径下可以很方便地读入和编辑,参数’r’代表读入;’a’代表添加到文件已有内容之后;’w’代表写入文件,覆盖原有内容。
准备:要在相对路径下创建一个rosalind_dna.txt文件,把测试数据存进去
代码:
#s="AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"
f = open('rosalind_dna.txt','r')#直接读入序列文件
s=f.read()
print("%d %d %d %d" %(s.count('A'),s.count('C'),s.count('G'),s.count('T')))
作者:wshjlxt
https://www.bilibili.com/read/cv1977551
出处: bilibili