, . more_itertools, . , pip install more_itertools.
>>> from collections import Counter
>>> import more_itertools
>>> s = "GATCCAGATCCCCATAC"
>>> Counter(more_itertools.windowed(s, 2))
Counter({('A', 'C'): 1,
('A', 'G'): 1,
('A', 'T'): 3,
('C', 'A'): 2,
('C', 'C'): 4,
('G', 'A'): 2,
('T', 'A'): 1,
('T', 'C'): 2})
, windowed Counter.
"" k=2 (, step=1). Counter. . Counter .
, . , k-:
>>> from collections import Counter
>>> import more_itertools
>>> def count_mers(seq, k=1):
... """Return a counter of adjacent mers."""
... return Counter(("".join(mers) for mers in more_itertools.windowed(seq, k)))
>>> s = "GATCCAGATCCCCATAC"
>>> count_mers(s, k=2)
Counter({'AC': 1,
'AG': 1,
'AT': 3,
'CA': 2,
'CC': 4,
'GA': 2,
'TA': 1,
'TC': 2})