所以我试图做这个问题,我必须在python的某些行中找到最频繁的6个字母的字符串,所以我意识到一个人可以做这样的事情:

>>> from collections import Counter
>>> x = Counter("ACGTGCA")
>>> x
Counter({'A': 2, 'C': 2, 'G': 2, 'T': 1})

现在,我正在使用的数据是DNA文件,文件格式如下所示:
> name of the protein
ACGTGCA ... < more sequences>
ACGTGCA ... < more sequences>
ACGTGCA ... < more sequences>
ACGTGCA ... < more sequences>

> another protein
AGTTTCAGGAC ... <more sequences>
AGTTTCAGGAC ... <more sequences>
AGTTTCAGGAC ... <more sequences>
AGTTTCAGGAC ... <more sequences>

我们可以一次只使用一种蛋白质,但是然后如何修改上面的代码块以搜索最频繁的6个字符的字符串模式?谢谢。

最佳答案

我认为最简单的方法就是这样做:

>>> from collections import Counter
>>> protein = "AGTTTCAGGAC"
>>> Counter(protein[i:i+6] for i in range(len(protein)-5))
Counter({'TTCAGG': 1, 'AGTTTC': 1, 'CAGGAC': 1, 'TCAGGA': 1, 'GTTTCA': 1, 'TTTCAG': 1})

关于python - 使用python查找频繁的字符串模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8281119/

10-12 21:42