计算文件中某个三联体的数量(DNA密码子分析)

Run*_*ner 2 python shell bioinformatics

这个问题实际上是用于DNA密码子分析,用简单的方式来说,假设我有一个这样的文件:
atgaaaccaaag ...
而且我想计算这个文件中存在的'aaa'三元组的数量.重要的是,三元组从一开始就开始(这意味着atg,aaa,cca,aag,......)因此在这个例子中结果应该是1而不是2'aaa'.
有没有Python或Shellscript方法来做到这一点?谢谢!

Jor*_*ley 7

首先阅读文件

with open("some.txt") as f:
    file_data = f.read()
Run Code Online (Sandbox Code Playgroud)

然后把它分成3个

codons = [file_data[i:i+3] for i in range(0,len(file_data),3)]
Run Code Online (Sandbox Code Playgroud)

然后算上他们

print codons.count('aaa')
Run Code Online (Sandbox Code Playgroud)

像这样

>>> my_codons = 'atgaaaccaaag'
>>> codons = [my_codons[i:i+3] for i in range(0,len(my_codons),3)]
>>> codons
['atg', 'aaa', 'cca', 'aag']
>>> codons.count('aaa')
1
Run Code Online (Sandbox Code Playgroud)