擅长:python、mysql、java
<p>您可以先定义一个函数来获取字符串中的所有k-mer:</p>
<pre><code>def get_all_k_mer(string, k=1):
length = len(string)
return [string[i: i+ k] for i in xrange(length-k+1)]
</code></pre>
<p>然后可以使用<code>collections.Counter</code>来计算每个k-mer的重复次数:</p>
^{pr2}$
<p>输出:</p>
<pre><code>Counter({'AC': 1,
'AG': 1,
'AT': 3,
'CA': 2,
'CC': 4,
'GA': 2,
'TA': 1,
'TC': 2})
</code></pre>
<p>另一个例子:</p>
<pre><code>>>> s = "AAAAAA"
>>> Counter(get_all_k_mer(s, k=3))
</code></pre>
<p>输出:</p>
<pre><code>Counter({'AAA': 4})
# Indeed : AAAAAA
^^^ -> 1st time
^^^ -> 2nd time
^^^ -> 3rd time
^^^ -> 4th time
</code></pre>