如何更改函数以便它可以计算任何字母字符?

时间:2018-02-27 10:44:08

标签: python bioinformatics

我有一个函数可以对序列中的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循环的其余部分是什么或如何编码?请记住,他们必须单独添加?

1 个答案:

答案 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}}