我有一个函数可以对序列中的DNA碱基进行计数,并分别返回它们的计数。功能是
def baseCounts(DNA):
for base in DNA:
numofAs = DNA.count('A')
numofCs = DNA.count('C')
numofGs = DNA.count('G')
numofTs = DNA.count('T')
return numofAs, numofCs, numofGs, numofTs
现在,我需要改变功能,因此它不仅限于A,C,G和T的DNA字母表。 我知道我需要在函数
中添加字母表参数BaseCounts(DNA, alphabet):
但是,我不知道为任何字符编写for循环的其余部分是什么或如何编码?请记住,他们必须单独添加?
答案 0 :(得分:3)
您可以使用计数器:
from collections import Counter
DNA = 'ATCGBBHHTTCCGGHH'
c = Counter(DNA)
print(c)
Counter({'C': 3, 'B': 2, 'H': 4, 'A': 1, 'G': 3, 'T': 3})
将返回一个Counter对象,这是一个专门的字典,其中的键对应于序列DNA
中遇到的值,构成您的alphabet
,值是{的这些值的计数{1}}