1 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
也許你應(yīng)該看看python 的 itertools 庫(kù),其中包括product
它使用可迭代的每個(gè)組合創(chuàng)建一個(gè)可迭代,因此:
from itertools import product
cutsequencequery = "GAANNNNTTC"
nseq = ["A", "C", "G", "T"]
size = cutsequencequery.count('N')
possibilities = product(*[nseq for i in range(size)])?
# = ('A', 'A', 'A', 'A'), ... , ('T', 'T', 'T', 'T')?
# len(list(possibilities)) = 256 = 4^4, as expected
s = set()
for n in possibilities:
? ? print(''.join(n)) # = 'AAAA', ..., 'TTTT'
? ? new_sequence = cutsequencequery.replace('N' * size, ''.join(n))
? ??
? ? s.add(new_sequence)
? ? print(new_sequence) # = 'GAAAAAATTC', ..., 'GAATTTTTTC'
print(len(s)) # 256 unique sequences
添加回答
舉報(bào)