0
긴 바이너리 문자열에서 바이너리 5-mers 수를 찾으려고합니다. 즉, say : seq = '000111100101101'의 문자열이 주어지면 각 5-mer가 몇 번 나타나는지 계산하려고합니다. 내가 충분히 쉽게 모든 32 반복의 목록을 생성 :파이썬 문자열에서 중첩되는 kmers 찾기
import re
from itertools import product
combo = [ ''.join(x) for x in product('01', repeat=5) ]
지금 중복에 각 조합의 발행 수를 세고 내 문제. (즉, 길이 5 : 0 : 4, 1 : 5, 2 : 6, 3 : 7 ... (총 시퀀스 길이 4 창)의 겹치는 창을 체크하고 싶습니다. . 중첩 윈도우를 계산하는 방법으로 그렇게 (콤보를 [내가] = seq.count (i)는 작동하지 않는 것)
덕분에 주어진 서열에 대한
예 원하는 OUPUT :.!
defaultdict
와
seq: '11111101'
Combos: (11111 :2 , 11101 :1 , 11110 :1)
'code'd [s [i : i + 5]]는 정확히 무엇을합니까? (왜 겹치는 부분을 잡을 수 있는지 이해하고 싶습니다. 여러 반복을 키로 사용할 것입니까? (카운트/값뿐만 아니라) – GrimSqueaker
's [i : i + 5]'는 문자열's'의 부분 문자열입니다. 'd'는 key가 매핑되지 않은 경우 디폴트 값 (0)을 갖는 사전과 같은 defaultdict 객체입니다. 그래서'd'는 길이가 다른 각 부분 문자열의 발생 횟수를 계산합니다 5. – Ante